Live data from Hacker News

Self-Hosting Dozens of Web Applications and Services on a Single Server

cprimozic.net

261–270 of 285 posts

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#261

Earlier quoted context omitted.

Some sources, not very recent but with great links to more detailed studies: https://css.umich.edu/factsheets/green-it-factsheet https://www.fcgov.com/climatewise/pdf/computers.pdf Arguably, none of these account for the pollution due to extraction/refinement of materials, which is another concern raised with building more stuff. Recycling is also a polluting process (usually less so than new extraction) but unfortun…

have you come across Harun Šiljak's fantastic piece in the Science for the People magazine titled 'Opening This Article Voids Warranty' ? "Repair is not an auxiliary, optional part of the economy. Repair is care, at every stage of the supply chain, and at every scale. Those in dire need of repair for their devices are, just like Terry Pratchett’s Theory of Economic Injustice predicts, in the crosshairs of widening ec…

Wow, that's a great resource. Thank you very much for the link!

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#262

Earlier quoted context omitted.

How do you deal with backing up the data/“disaster” recovery? (I out disaster in quotes because we’re talking a about home servers so not mission critical data but still pretty annoying to lose.

If you have OP's level of control over the hardware (ie; you have a dedicated server on which you can access the hypervisor), then taking incremental backups of the entire VM is the best way to ensure you can hit the big undo button if anything goes wrong. The most important, and neglected, part of backup & restore, is the restore. If resources permit, this is where I like to use a battle tested solution instead of r…

> (...) taking incremental backups of the entire VM is the best way to ensure you can hit the big undo button if anything goes wrong.

What if your server is already compromised? Doesn't that approach ensure your server remains compromised after you pressed the big undo button?

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#263
post #87
post #51

Earlier quoted context omitted.

As someone running something similar, I thought it was quite easy when I first set it up: I used the similar setup of a friend as a baseline to get through the configuration. It took about 1 hour to setup the base things to have the infrastructure running. It sounds more complicated than it is.

I always hear about the easy setups, but never about total (man-hours included) cost of ownership through a couple release cycles on each component.

> I always hear about the easy setups, but never about total (man-hours included) cost of ownership through a couple release cycles on each component.

I run about half a dozen web apps on a single node on Hetzner with Docker swarm mode + traefik ingress + whatever the web apps need.

Any app I have is deployed in seconds as a docker stack. I treat my Docker swarm node as cattle, and I have an Ansible script to be used in case of emergencies that deploys everything from scratch. The Ansible script takes, from start to finish, only a couple of minutes to get everything up and running. I can do this with zero downtime as I have an elastic IP I can point at any node at will.

If I wanted, I could optimize everything even further, but it's already quite fast. In fact, I can get a new deployment on my Hetzner setup up and running faster than I can get an EC2 instance available in AWS.

Proponents of big cloud providers as the only viable option typically have absolutely no idea what they are talking about regarding availability, redundancy, and disaster recovery. It's mostly resume-driven development seasoned with a dash of "you don't get fired for picking IBM".

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#264

Earlier quoted context omitted.

How do you deal with backing up the data/“disaster” recovery? (I out disaster in quotes because we’re talking a about home servers so not mission critical data but still pretty annoying to lose.

Not OP, but I've been tinkering with the idea of having a raspberry pi w/ an ext hdd stashed at a friends or parents place and do something like an rsync over wireguard for super important stuff.

I'm not doing it remotely, but have an Odroid HC2 set up as a sort of single-drive personal NAS on my home network. Restic backing up to there is absolutely stellar, including being able to mount a snapshot for selective recovery if needed.

The HC2 is discontinued now, but the HC4 looks like a nice, current option. https://www.hardkernel.com/shop/odroid-hc4-oled/ Maybe I should get one of these to take to my daughter's place.

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#265
post #143

Earlier quoted context omitted.

> there is some small downtime when I deploy new versions of things Some time ago I was looking for an easier way to fix this. It seemed to me that a good way would be to have the reverse proxy (e.g. nginx or similar) hold the requests into the app restarts. Fit the user, this would mean a ~10s hiccup rather than 504 errors. I didn't find an easy way to do it with nginx though and was sort of disappointed. Maybe othe…

> [edit: one app I host can only be run single-instance as it keeps some state in-process. It can outsource it to Redis, but that seems overkill if it's only needed during upgrades, 10s/week or so] Not exactly the same, but couldn't you serve a 425 Too Early with a meta refresh of 10s to achieve exactly the same goal? So change your nginx config to serve this "updating, your browser will refresh automatically" page,…

That might work for HTML pages, API routes would need a different configuration. Then every app consuming the API needs to be updated to support the 425 code gracefully. In addition, I have to manually do this switch in nginx before and after the update...

I would rather a system that holds requests for 20s max if the backend refuses connections.

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#266
post #106
post #70

Earlier quoted context omitted.

I would tend to disagree. First, because not everyone is on AWS. Second, because even for people on AWS, some of a company's infra isn't on AWS (e.g. gmail). Third because not every infra setup work has an AWS tool. To take a personal example, we use multiple infra providers. Some of our infra is gmail (currently working on automating it with terraform). Some of it is other infrastructure providers that aren't US-bas…

Can you elaborate on the terraform automation for gmail?

When we first built our user account system, we had to create a google user and add it to relevant groups in admin console whenever we hired someone, before the automation could kick in.

We're tired of that so we're looking into using a terraform provider [1], so that we can declare new users and instantiate their resources with a simple PR.

[1]: https://registry.terraform.io/providers/hashicorp/googlework...

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#267
post #70

Earlier quoted context omitted.

I would tend to disagree. First, because not everyone is on AWS. Second, because even for people on AWS, some of a company's infra isn't on AWS (e.g. gmail). Third because not every infra setup work has an AWS tool. To take a personal example, we use multiple infra providers. Some of our infra is gmail (currently working on automating it with terraform). Some of it is other infrastructure providers that aren't US-bas…

What’s the “automating gmail with terraform” angle? G-suite automation? Or GCP?

g-suite.

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#268
post #13

Easy setup with: - traefik (nginx proxy with auto letscencrypt) - portainer (docker container management) - fail2ban (basic security) - logwatch (server / security stats by mail) - munin (server stats) - restic (cloud backup) - unattended-upgrades (auto install security updates) - apticron (weekly info) - n8n (automatisation for e.g. quick info via telegram, if something not work) Run every app that you want in your…

Have you ever looked at nginx proxy manager? I find it much easier to use than traefik since everything can be done through a UI.

https://nginxproxymanager.com/

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#269
post #268
post #13

Easy setup with: - traefik (nginx proxy with auto letscencrypt) - portainer (docker container management) - fail2ban (basic security) - logwatch (server / security stats by mail) - munin (server stats) - restic (cloud backup) - unattended-upgrades (auto install security updates) - apticron (weekly info) - n8n (automatisation for e.g. quick info via telegram, if something not work) Run every app that you want in your…

Have you ever looked at nginx proxy manager? I find it much easier to use than traefik since everything can be done through a UI. https://nginxproxymanager.com/

Yeah but once you figure out Traefik, it’s just 3 extra lines in your deployment files for every new service. And I inevitably have to redeploy again, and I hate doing the same boring thing twice, so it’s nice being able to bake complete orchestration into a repo.

(And it’s also nice for being able to try things because your repo has a complete full snapshot of your setup that you can diff.)

Re: Self-Hosting Dozens of Web Applications and Services on a Single Server

#270
post #38

Earlier quoted context omitted.

Out of interest, what is the email server? Your server's EHLO wasn't very revealing.

It's an old thing that I should probably not mention for opsec reasons since, honestly, it probably can get pwned (I would be surprised if no intelligence agency has a 0-day for it), and I keep thinking I should switch to linux-based solutions, but it just never floats to the top of my todo list. It's also a fairly big operation since I'd have to coordinate the switchover with some people and I have no idea how to go…

I guess mailcow would suit your needs. Two years ago I replaced an old OpenXchange setup with mailcow and it was fairly easy to switch over. It also support IMAP copy from the admin UI.
Post reply on HN