avidamoeba

joined 2 years ago
[–] avidamoeba@lemmy.ca 2 points 2 hours ago

All-in, I wanted something on the order of 1MB for client app, server, all dependencies, everything.

Okay that's gotta be radically different!

[–] avidamoeba@lemmy.ca 1 points 7 hours ago (1 children)

Well, you gotta start it somehow. You could rely on compose'es built-in service management which will restart containers upon system reboot if they were started with -d, and have the right restart policy. But you still have to start those at least once. How'd you do that? Unless you plan to start it manually, you have to use some service startup mechanism. That leads us to systemd unit. I have to write a systemd unit to do docker compose up -d. But then I'm splitting the service lifecycle management to two systems. If I want to stop it, I no longer can do that via systemd. I have to go find where the compose file is and issue docker compose down. Not great. Instead I'd write a stop line in my systemd unit so I can start/stop from a single place. But wait 🫷 that's kinda what I'm doing isn't it? Except if I start it with docker compose up without -d, I don't need a separate stop line and systemd can directly monitor the process. As a result I get logs in journald too, and I can use systemd's restart policies. Having the service managed by systemd also means I can use aystemd dependencies such as fs mounts, network availability, you name it. It's way more powerful than compose's restart policy. Finally, I like to clean up any data I haven't explicitly intended to persist across service restarts so that I don't end up in a situation where I'm debugging an issue that manifests itself because of some persisted piece of data I'm completely unaware of.

[–] avidamoeba@lemmy.ca 1 points 11 hours ago (1 children)

Let me know how the search performs once it's done. Speed of search, subjective quality, etc.

[–] avidamoeba@lemmy.ca 8 points 11 hours ago (2 children)

Why start anew instead of forking or contributing to Jellyfin?

[–] avidamoeba@lemmy.ca 1 points 12 hours ago* (last edited 12 hours ago)

I think I lost neurons reading this. Other commenters in this thread had the resilience to explain what the problems with it are.

[–] avidamoeba@lemmy.ca 3 points 20 hours ago* (last edited 20 hours ago) (1 children)

I use a fixed tag. 😂 It's more a simple way to update. Change the tag in SaltStack, apply config, service is restarted, new tag is pulled. If the tag doesn't change, the pull is a noop.

[–] avidamoeba@lemmy.ca 1 points 21 hours ago (3 children)

Let me know how inference goes. I might recommend that to a friend with a similar CPU.

[–] avidamoeba@lemmy.ca 2 points 1 day ago

Yup. Everything is in one place and there's no hardcoded paths outside of the work dir making it trivial to move across storage or even machines.

[–] avidamoeba@lemmy.ca 2 points 1 day ago (8 children)

Because I clean everything up that's not explicitly on disk on restart:

[Unit]
Description=Immich in Docker
After=docker.service 
Requires=docker.service

[Service]
TimeoutStartSec=0

WorkingDirectory=/opt/immich-docker

ExecStartPre=-/usr/bin/docker compose kill --remove-orphans
ExecStartPre=-/usr/bin/docker compose down --remove-orphans
ExecStartPre=-/usr/bin/docker compose rm -f -s -v
ExecStartPre=-/usr/bin/docker compose pull
ExecStart=/usr/bin/docker compose up

Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
[–] avidamoeba@lemmy.ca 1 points 1 day ago (5 children)

Did you run the Smart Search job?

[–] avidamoeba@lemmy.ca 2 points 1 day ago* (last edited 1 day ago) (9 children)

That's a Celeron right? I'd try a better AI model. Check this page for the list. You could try the heaviest one. It'll take a long time to process your library but inference is faster. I don't know how much faster it is. Maybe it would be fast enough to be usable. If not usable, choose a lighter model. There's execution times in the table that I assume tell us how heavy the models are. Once you change a model, you have to let it rescan the library.

[–] avidamoeba@lemmy.ca 6 points 1 day ago* (last edited 1 day ago)

Yes, it depends on how you're managing the service. If you're using one of the common patterns via systemd, you may be cleaning up everything, including old volumes, like I do.

E: Also if you have any sort of lazy prune op running on a timer, it could blow it up at some point.

 

Your ML model cache volume is getting blown up during restart and the model is being re-downloaded during the first search post-restart. Either set it to a path somewhere on your storage, or ensure you're not blowing up the dynamic volume upon restart.

In my case I changed this:

  immich-machine-learning:
    ...
    volumes:
      - model-cache:/cache

To that:

  immich-machine-learning:
    ...
    volumes:
      - ./cache:/cache

I no longer have to wait uncomfortably long when I'm trying to show off Smart Search to a friend, or just need a meme pronto.

That'll be all.

 

Corporate VPN startup Tailscale secures $230 million CAD Series C on back of “surprising” growth

Pennarun confirmed the company had been approached by potential acquirers, but told BetaKit that the company intends to grow as a private company and work towards an initial public offering (IPO).

“Tailscale intends to remain independent and we are on a likely IPO track, although any IPO is several years out,” Pennarun said. “Meanwhile, we have an extremely efficient business model, rapid revenue acceleration, and a long runway that allows us to become profitable when needed, which means we can weather all kinds of economic storms.”

Keep that in mind as you ponder whether and when to switch to self-hosting Headscale.

 

Hey gang, I'm considering using DNS4EU in Canada. My ping to their servers is ~130ms. That's way longer than anything local which is on the order of 1-5ms. Apart from resolving uncached entries taking longer, is there any contraindication to using a DNS server with high latency?

 

cross-posted from: https://lemmy.ca/post/40385572

If you're getting "Untrusted device" on your Chromecast today, you're not alone. It looks like an expired cert.

 

If you're getting "Untrusted device" on your Chromecast today, you're not alone. It looks like an expired cert.

 

cross-posted from: https://lemmy.ca/post/37686963

To celebrate the release of the Pixelfed Mobile app going live on the Apple App Store & Google Play Store, we’re proud to be launching our first Kickstarter campaign. All funds raised will go toward continued development and support of the core Pixelfed Foundation applications and the ActivityPub ecosystem at large.

The Pixelfed Team builds open source and ethical social networks for the masses. We aim to be the first Fediverse app with a billion people by taking on the worlds biggest players using open source standards. Designed and built for a better society, to bring us closer together without tracking or surveillance.

Edit: They're already at 95% of their funding goal!

Get on it!

 

“He believes in the promise of robust, innovative capital markets that are responsive to the needs of Investors, & that provide capital to make our Economy the best in the World. He also recognizes that digital assets & other innovations are crucial to Making America Greater than Ever Before,” Trump wrote on Truth Social.

view more: next ›