12 ms·
There is something to be said about NixOS, it really is a matter of setting `services.immich.enable = true;` in a configuration file. I find this really powerfu
by trizic 10mo ago
There is something to be said about NixOS, it really is a matter of setting `services.immich.enable = true;` in a configuration file. I find this really powerful and simpler than docker and docker-compose. But don't get me wrong, I am all for containerization when it comes to other OS/distros. Yes, there is a learning curve for the Nix language and creating your own packages. But anyone who can install a distro can install NixOS. Instead of running your apt/dnf/pacman commands, you edit a file with your package names and services you want to enable, and run `nixos-rebuild switch`. Though, you might find standalone binaries such as uv and its portable Python bundles don't work out the box, there is a a few lines configuration to get it working. Having a single language for configuring all services/applications (neovim,nginx,syncthing,systemd, etc) is refreshing. And of course combined with generative AI, you can set up a lot quickly.
Immich is one of the only apps on iOS that properly does background sync. There is also PhotoSync which is notable for working properly with background sync. I'll take a wild guess that Ente may have got this working right too (at least I'd hope). This works around the limitation that iOS apps can't really run as background apps (appears to me that the app can wake up on some interval, run/sync for a little and try again on the next interval). This is much more usable then for example, the Synology apps for photo sync, which is, the last time I tried, for some reason insanely slow and the phone needs to have the app open and screen on for it fully sync.
Some issues I ran into is the Immich iOS app updating and then being incompatible with the older version of the server installed on my machine. You'd have to disable app updates for all apps, as iOS doesn't support disabling updates for individual apps.
In my specific scenario, the latest version of Immich for NixOS didn't perform a certain migration for my older version of Immich. I had to track down the specific commit that contained the version of Immich which had the migration, apply that, then I was able to get back to the latest version. Luckily, even though I probably applied a few versions before getting the right one, it didn't corrupt the Immich install.
- behnamoh 10mo agoBut what's the performance of NixOS compared to other distros? Also, I imagine CUDA installation is not as simple as changing a few lines of config file?
- edoloughlin 10mo agohttps://nixos.wiki/wiki/CUDA https://nixos.wiki/wiki/CUDA It’s not too bad. As others have said, AI makes it easy to get right.
- embedding-shape 10mo agoIt's confusing, but bear in mind that nixos.wiki is an unofficial wiki, the official one is at: https://wiki.nixos.org/wiki/CUDA https://wiki.nixos.org/wiki/CUDA
- kalaksi 10mo agoI'm running NixOS on some of my hosts, but I still don't fully commit to configuring everything with nix, just the base system, and I prefer docker-compose for the actual services. I do it similarly with Debian hosts using cloud-init (nix is a lot better, though). The reason is that I want to keep the services in a portable/distro-agnostic format and decoupled from the base system, so I'm not tied too much to a single distro and can manage them separately.
- quag 10mo agoHow do you update the software in the containers when new versions come out or vulnerabilities are actively being exploited? My understanding is that when using containers updating is an ordeal and you avoid the need my never exposing the services to the internet.
- wwarek 10mo ago> How do you update the software in the containers when new versions come out or vulnerabilities are actively being exploited? You build new image with updated/patched versions of packages and then replace your vulnerable container with a new one, created from new image
- teekert 10mo agoAm I the only one surprised that this is a serious discussion in 2025?
- Dedime 10mo agoMy problem with NixOS is the second you try to go "outside the guardrails", the difficulty increases 100x
- ivanjermakov 10mo agoKind of the same for docker? Plopping a docker compose file and setting up few environment vars vs writing dockerfiles from scratch.
- cromka 10mo agoNot really. No. You can easily checkout repo containing the Dockerfile, add a Dockerfile override, change most of the stuff while maintaining the original Dockerfile instact and the ability to use git to update it. Then you change one line in docker-compose.yaml (or override it if it's also hosted by the repo) and build the container locally. Can't imagine easier way to modify existing docker images, I do this a lot with my self-hosted services.
- Ambroisie 10mo agoI'll be honest, that does not sound "easy". It is straightforward, but so is the NixOS module system, and I could describe writing a custom module the same way you described custom Docker images.
- maccard 10mo agoIf that’s not easy I don’t know what is.
- Xraider72 10mo agoThis is a familiarity problem. I've never used NixOS and all your posts telling me how simple it is sounds like super daunting challenges to me versus just updating a Dockerfile or a one liner in compose that I am already familiar with, I suspect its the inverse for you.
- 10mo ago
- globular-toast 10mo ago> There is something to be said about NixOS, it really is a matter of setting `services.immich.enable = true;` in a configuration file. Assuming someone has added it to NixOS, yeah. There are plenty of platforms even easier than that where you can click "install" on "apps" that have already been configured.
- embedding-shape 10mo ago> There are plenty of platforms even easier than that where you can click "install" on "apps" that have already been configured. Yeah, like TrueNAS, where they've decided it was good entire to run Kubernetes on NAS hardware, with all the fun and speed that comes with. You just hit "Install", wait five minutes, and you get something half-working but integrated with the rest of their "product". I'll stick with configuration I can put in git, patch when needed and is easy to come back to after 6 months when you've forgotten all about the previous context you had.
- iamtedd 10mo agoNit: TrueNAS migrated away from Kubernetes in 2024.
- Vinnl 10mo agoImmich was my gateway into NixOS. It did a really good job of showing how well it can work. I'm only a couple of months in, so we'll see if it sticks, but I'm also running it on my laptop now.
- conradev 10mo agoThis is my favorite use of CLI AI coding tools: updating my nix config. I can just ask my computer to configure services for me!
- fijiaarone 10mo agoI remember when people claimed to use NixOs in order to have a deterministic, repeatable setup.
- lillecarl 10mo agoAI generated Nix is equally deterministic and repeatable. The deterministic behavior makes Nix well suited for AI yolo code, either it evaluates and builds or it doesn't, and if the result isn't functional you revert back to the previous generation.
- 12345hn6789 10mo agoThat is the use case for NixOS yes, can you clarify how it is no longer deterministic? I have been using it for a few months and was not aware of this change
- conradev 10mo agomy setup is SO deterministic and repeatable that it hurts sometimes
- black_knight 10mo agoIndeed! This morning I needed a service to port forward ssh from my server to a firewalled machine, to access stuff while I work from a mountain cabin over the next few days. ChatGPT gave me a nice nix config snippet, and it just worked! Auto reconnecting and everything.
- black_knight 10mo agoI would of course have thrown up a port forward manually today, and maybe even spent the time to add a service later, but now it was fixed once and “forever” in two minutes!
- DeepSeaTortoise 10mo agoRegarding NixOS, I'm mostly afraid of them going on a user purge after their developer purge. You just never know who this group of people will come after next, especially after they started defining "Fascism" as "anyone asking for how they define Fascism". And the jump of getting rid of people you hate who contribute to your project and you can do little harm to, to getting rid of people you hate who are of no use to you and you can do genuine damage to (e.g. by installing a tor exit node) is a step down if you think you could get away with it.
- aacid 10mo agoNixOS is open-source, if needed it can be forked anytime and continued to work on with new maintainers.
- JamesSwift 10mo agoAnd flakes make that viable
- embedding-shape 10mo ago> Regarding NixOS, I'm mostly afraid of them going on a user purge after their developer purge ... Why? I don't know what developer purge you're talking about, but getting rid of people running a project almost never means suddenly they'll start to get rid of users, I'm not sure why that assumption is there. Not to mention that they couldn't even "purge users" if they wanted to, unless they make the download URLs private and start including some licensing schema which, come on, hardly is realistic to be worried about...
- HauntedDrum 10mo agoHonestly one of the funniest things I've read on HN in a while. Would you call yourself anti-anti-fascist?
- slater 10mo agoThey're likely just doing the ol' "what opinions, mfer" goose meme.
- yomismoaqui 10mo agoNix can be easy,but it's not simple. Obligatory link: https://youtube.com/watch?v=SxdOUGdseq4 https://youtube.com/watch?v=SxdOUGdseq4
- prmoustache 10mo ago> But anyone who can install a distro can install NixOS. Instead of running your apt/dnf/pacman commands, you edit a file with your package names and services you want to enable, and run `nixos-rebuild switch`. You can do the same with any configuration manager such as puppet, salt or chief.
- zenlot 10mo ago[dead]
- mk12 10mo agoI hope someone will create a Debian package for Immich. I’m running a bunch of services and they are all nicely organized with user foo, /var/lib/foo, journalctl -u foo, systemctl start foo, except for Immich which is the odd one out needing docker compose. The nix package shows it can be done but it would probably be a fair amount of work to translate to a Debian package.
- bayindirh 10mo agoI'll try to install in a short-ish while, and look into its installation in a detailed manner. I may try to package it, and if it proves to be easy to maintain, I might file an ITP.
- stryan 10mo agoYou could try setting it up as a Podman Quadlets, those hook into systemd so you can treat them like a normal service.
- newsoftheday 10mo ago> There is something to be said about NixOS OK, I'll stick with Ubuntu + KDE (so Kubuntu really) on all my machines.
- windexh8er 10mo agoI've hosted Immich since it came out and all my photos have been migrated to it at this point. I would never host Immich on NixOS (and I do use it for certain things). The reason? It's not simpler than a container option and creates a single point of issue. The container option is tested and supported by Immich, they recommend it. So everything I need is part of that. I moved servers midway through the year and the storage for my Immich implementation is NAS hosted and the mount is simply exposed to the Immich container. It took me less than 15 minutes to move Immich. And while that would have likely been the same with NixOS it's actually more of a chore to roll back with Nix. My Compose file is locked to major/minor and I choose when to do upgrades. But rollbacks are actually simpler IMO. I just stop the container, tar the operational directory, flip the bits in the Compose file and restart. I've not actually had an issue with Immich ever while doing it this way and I manage about 10TB of photos and videos currently in Immich. I actually thought about doing this with NixOS last year, but it seemed counterproductive compared to how I self-host, I don't want to manage configurations in multiple places. If I switched everything it would likely be just as much work and then I'm reliant on Nix. Over the years I've gone from the OS being a mix of Arch and Ubuntu to mostly just Debian for my self hosting LXC or VMs. I already have the deployments templated so there's nothing for me to do other than map an IP, give it a hostname and start it. To each their own, but I don't want to be beholden to NixOS for everything. I like the container abstraction on LXC and VMs and it's been very good to minimize the work of self-hosting over 40+ services both in my home lab and in the bare metal server I lease from Hetzner.
- hombre_fatal 10mo agoA few thoughts. > It's not simpler than a container option and creates a single point of issue. The container option is tested and supported by Immich, they recommend it. I don't want to be beholden to NixOS for everything. I think there's a misunderstanding here. You aren't beholden to NixOS here. You don't have to use nixpkgs nor home-manager modules. You can make your own flakes and you can use containers, but the benefit is still that you set it up declaratively in config. It's not incompatible with anything you've said, it's just cool that it has default configurations for things if you aren't opinionated. > I don't want to manage configurations in multiple places. I've accumulated one big Nix config that configures across all my machines. It's kind of insane that this is possible. Of course, it would seem complicated looking at the end result, but I iterated there over time. Example: https://github.com/johnae/world https://github.com/johnae/world -- fully maintained by a clanker (https://github.com/johnae/world/pulls?q=is%3Apr+is%3Aclosed https://github.com/johnae/world/pulls?q=is%3Apr+is%3Aclosed)