| This looks incredible! Has some serious offerings against the current Self-Hosted PaaS scene, hope I can check it out over the weekend. I have used Dokku[0] in production, and played with CapRover[1] on hobby projects. Flynn was like a better Dokku, before development died.[2] CapRover is a great experience, and it's not a toy IMO. It nails the role of "I want to press a button and have a self-hosted Heroku, with a nice dashboard, auto-provisioned HTTPS domains, and be able to deploy a bunch of Docker images or Buildpack apps." A single-node $10 box can run a good number of services. This looks well-positioned and closer to something like Nomad, but going through the readme I had a few questions: "Apollo requires a manager- or control-node. We call this manager-0. This node runs the entire controlplane and monitoring stack for a cluster and should be sized appropriately (8GB Memory, 2-4 vCPUs)."
Is there a way to run this single-node and disable some of the peripherals for cheap/play $5-10 instances (disregarding best-practices)? An 8GB mem + 4vCPU DO droplet is $40/mo. Not an arm and a leg, but if you have to add at least a secondary server, seems like minimum would be ~$50/mo? "Your space has been created. Now let's cd to its directory: cd $HOME/.apollo/.spaces/demo-1.space"
Are the Apollo Spaces not meant to be checked in to version control and used for infra + shared between people on your team?And final question (sorry if this is dumb): Automated infrastructure (currently only DigitalOcean and HETZNER Cloud supported)
Does this mean I can still deploy to AWS/GCP, I just need to do it manually, or are these infrastructure templates required?[0] https://github.com/dokku/dokku [1] https://github.com/caprover/caprover [2] https://github.com/flynn/flynn |
author of apollo here. Thanks for the feedback and questions, I'll try my best to shed a little light here.
- Yes, you can run apollo even on nodes with only 512MB RAM and 1 core. There's no programmatically imposed limit - it's just an advice to bring beefy infrastructure to production setups as metric-collection/logging consumes quite a lot of memory. You can just use apollo with a 2GB HETZNER node (2,98€/m) and you're good to go. Additionally, you can switch of metrics, logs and analytics in your Spacefile.yml - these are the main memory-hogs. Without them, you still have a nice docker swarm or k3s.
- apollo spaces are totally meant to be checked into version control for collaboration and CI/CD. Once created, just enter you space directory and hook it up to any git-repo like you would to with any other code (`git init` etc). We're planning to implement this workflow into the CLI for 2.1.0 to improve UX, but basically apollo config lives in a directory which you can do with as you please in terms of git.
- The infrastructure templates aren't required. As my company is not using other providers than hcloud/digitalocean, we have no ready-made templates for them. But you can provide your own Terraform code to spin up infrastructure. You only need to work in the `output.tf` code that saves a special formatted Nodesfile.yml as an artifact of your TF code. Additionally, you can of course write up your Nodesfile.yml manually.
Hope this helps :)