5 ms·
I miss the days where app installation was just "unzip, edit the config file, upload to your web server and hit up the install page". Now it's all Docker and gu
by dmje 4y ago
I miss the days where app installation was just "unzip, edit the config file, upload to your web server and hit up the install page". Now it's all Docker and gulp and build and urgh soooo complicated.
- smlacy 4y agoCouldn't agree more! The real irony is that usually it's sold as "Docker makes installing, upgrading and maintaining easier."
- daedric7 4y agoI'm sorry, but it does. Docker compose at least.
- Kwpolska 4y agoRunning an arbitrary thing in Docker is far easier than without it. If I want to run the PHP/MySQL-based Matomo, I can just grab the ready-made docker-compose.yml [0] and tell my main nginx to proxy_pass onto it. I don’t need to figure out how to configure MySQL/MariaDB/PHP-FPM and what hacks did my distro introduce to it (at least I’m not using Debian/Ubuntu, so there shouldn’t be that many). Similarly, I can get Zulip in Docker [1] (even if it’s apparently in alpha state) and not mess with the Python packaging trainwreck, and also setting up all of Redis, PostgreSQL, RabbitMQ and memcached. [0]: https://github.com/matomo-org/docker/tree/master/.examples/nginx https://github.com/matomo-org/docker/tree/master/.examples/n... [1]: https://github.com/zulip/docker-zulip https://github.com/zulip/docker-zulip
- deleted 4y ago[deleted]
- fgrsnau 4y agoIn this specific case it is not very complicated and actually pretty close to unzip, edit config and run. I have deployed it on a Raspberry running FreeBSD, so Docker is not an option. The backend server is written in Go and after building it only a single binary has to be deployed. A second repository contains the frontend (HTML, JS) which you copy to a path that you make available via your webserver. That's basically it.
- flo123456 4y agoIf you run NixOS you get a similar experience because it’s often just services.foo.enable = true; edit a couple options to your needs and you‘re good to go. :-)
- aaviator42 4y agoSome of us still write code like that :P https://github.com/aaviator42/izi https://github.com/aaviator42/izi
- layer8 4y agoI miss the days when you could install most things via apt-get and thus have security updates automated, documentation in a standard location, and so on.
- tryfinally 4y agoI 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).
- feanaro 4y agoI miss the days when app installation had nothing to do with web servers.
- bioemerl 4y agoDocker is crazy simple, I love it.
- anthropodie 4y agoWhat I don't like about Docker is it does not respect the firewall rules that I setup using something like ufw.
- stjohnswarts 4y agoDocker doesn't change iptables as set up by ufw. do you have more info on your issue?
- bananadonkey 4y agoDocker does add iptables rules by default, which bypass other rules such as those you might set with ufw. https://github.com/chaifeng/ufw-docker https://github.com/chaifeng/ufw-docker has a good overview and ufw-specific solution (I use it on my rpi).
- DrewADesign 4y agoDocker is crazy simple if everything works as it should. Otherwise it can be crazy not-simple.
- rizky05 4y ago[dead]
- reachableceo 4y agoNow it’s docker pull and editing a compose file or setting env variables. Essentially exactly the same process as LAMP deployment of yesteryear . I mean, yes you can make it complicated/enterprise with k8s and such. I found cloudron to be a good middle balance. I say this as someone running about 250 applications or so. One cloudron vm , one bare Ubuntu server vm with nothing but docker installed.
- chazeon 4y agoNowadays, if databases are involved, I actually prefer docker. At least there is a standard way to manage them. I have portainer installed, now everything is just managed through a web interface. It is okay.