this post was submitted on 24 Nov 2023
2 points (100.0% liked)

Self-Hosted Main

515 readers
1 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

For Example

We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.

Useful Lists

founded 1 year ago
MODERATORS
 

Hi,

I've written some microservices and am looking to deploy them. Since I am not very confident in cloud pricing (= too expensive right now), I am looking into ways of operating a very small server setup.

Lets say I have 5 services, one is the database, 3 should be run as jobs every minute, one service should be scaled based on load.

I am aware that basically described tasks that k8s or nomad would be very good at it. The issue with them is: While I am going to update the services, etc, I do not need a large cluster. I am very sure that I can start with one pod/node and maybe get a second one, if needed.

For this setup, k8s (or other flavors) is just overkill (learning and maintaining it). Nomad from hashicorp looks totally cool for that, but it is recommended to have 3 servers with crazy specs for each of them (doing quorum, leader follower, replication, etc.) Which is overkill when I plan to have 1 worker node in total :D

Nomad has `-dev` option running server and agent on the same node, but in production? I don't know. Nomads server also uses his ip and other things for identity. When they change, the server instance is basically dead and loses its data. That's why a quorum of 3 servers is recommended as a minimal prod setup.

Docker compose is not ideal, because I would like to update single containers without tearing everything down.

Also, cron for my periodic tasks is not part of docker or docker swarm except plugins, workarounds, or configuring a container running `cron` but then meddling with `flock`, etc.

I am aware that it actually does not sound like I need an orchestrator, but monitoring all the jobs and restarting a container manually sounds not optimal for me and maybe there is something out there, that helps me.

Since the tech community knows more than me, I would love to get some other opinions or point of views.

Thanks!

you are viewing a single comment's thread
view the rest of the comments
[–] subven1@alien.top 1 points 11 months ago (2 children)

How about some software for server management and app hosting like cloudron.io ? It is a complete and easy solution to host your own (docker based) apps or you can just install free apps from the build in app store. You can use Cloudrons base image to make use of addons (services) that are already build into Cloudron like: graphite, mailserver, mongodb, mysql, nginx, postgresql, sftp, turn, redis, ldap, oidc, recvmail, scheduler (cron), sendmail and tls or build an app on top of the LAMP app.

Everything is automated from OS updates, plattform + app based backups (with persistence if needed) to proxy setup and certificates. Besides the webUI, Cloudron also provides a RESTful API to manage apps, users, groups, domains and other resources. It also has its own Build Service and Image Registry or you could host your own Gitlab/Gitea with just one click.

Instead of real orchestration you maybe could use automation tools like n8n or Ctfreak to archive what you need.

Cloudron is free for up to 2 apps so keep that in mind but it runs well on a VPS with as low as 2GB RAM and 25GB of disk space.

[–] HosonZes@alien.top 1 points 11 months ago (1 children)

k space. You could rent 2 small servers, one for development and one to

This is a new option. Thanks for this. Did you used this in production? I know I will have custom and tailored images running, because each of my containers (besides the database) will be my own services, and cloudron looks like it was rather designed to pick a ready solution, am I understanding it correctly?

It also says, it keeps the systems up to date, which again is very high level, usually it is some sort of terraform to provision or ansible to configure the machine and abstracting those details makes it hard for me as a tech guy to understand, what they actually are doing.

[–] subven1@alien.top 1 points 11 months ago

Did you used this in production?

I run 3 Cloudron servers for many years and administer another 4 with some just beeing used inside a LAN.

cloudron looks like it was rather designed to pick a ready solution, am I understanding it correctly?

Most users will just pick apps from the store but others like myself use Cloudron to host their own services and custom app packages. It is actually pretty easy and there is a lot of help and templates at the Cloudron app packaging forum if you just start.

It also says, it keeps the systems up to date, which again is very high level

Cloudron uses neither Ansible nor Terraform and relies on scripts and crons. It uses automatic Ubuntu security updates, firewall and a bit of OS hardening to secure the plattform. You can take a look at the sources if you are curious.