3 ms·
I host tens of self-hosted apps for various purposes, including ones similar to this one, all via docker-compose. Setting up new ones is a breeze (thanks to Tra
by tryfinally 4y ago
I host tens of self-hosted apps for various purposes, including ones similar to this one, all via docker-compose. Setting up new ones is a breeze (thanks to Traefik), backing up the configuration and data is trivial, upgrading to the latest version takes a few minutes at most. I’m confident my workflow is simpler and more convenient than yours. Granted, the initial investment to learn and understand the tools is pretty large.
- schemescape 4y agoAny chance you could outline your process? E.g. if you had to start from a new VM, what all would you need to do? I've always just set everything up via the command line, and it's tedious/not repeatable (and there's also no isolation). I'm sure there's a better way, but usually the solutions I see involve gluing together a bunch of different tools--possibly even more work than I'm already doing (although there are benefits!).
- tryfinally 4y agoSure! My requirements are very simple, so my setup isn’t very complicated. The process isn’t precisely repeatable because each self-hosted app has different requirements, some require multiple containers, and so on. I start with a template docker-compose yaml that contains the barebones: network settings, labels for Traefik (eg. Let’s Encrypt config), placeholders for the image/container name, volumes, env variables, etc. I fill this in based on the container I want to setup. Many self-hosted apps provide example docker-compose configurations - I often just merge them with my template by hand. It’s usually just a couple of lines. I edit the files in vscode (but directly over ssh). Not a huge fan of editing YAML in the terminal. Then, I execute an aliased command that goes something like this: docker-compose down ; docker-compose pull && docker-compose up -d && docker-compose logs -f to see if the container stands up, and tweak if necessary.
- sally_glance 4y agoCan't speak for the parent but since I also use a docker-compose & traefik based setup I can describe my migration process (executed by ansible in my case, could easily be done manually though): 1. Copy docker-compose.yml (for my private stuff there is a single one containing all services + traefik) and config files (host-mounted into services from a config dir) to new host. 2. Start services (docker-compose up). 3. Restore runtime data (in my case I mostly pull some db dumps from my restic repos and load them into the db containers).