Apollo
Linux provisioning scripts + application deployment tools. Suitable for self-hosting and hobby-scale application deployments.
Philosophy
- Linux-native: Apollo tools delegate logic to native Linux programs as much as possible.
- Small and easy to understand: As a collary, apollo tools are small, have minimal logic, and are easy to understand.
- Modular: Apollo tools can each be used standalone and run independently.
- Collaborating: Apollo tools can also collaborate via small, well-defined and Linux-native interfaces.
- Automation tools, not a platform: Apollo tools automate what human operators would do in a Linux environment. It's not a platform that exceeds operators' "expectations" and do extra things.
- Single-tenant: Apollo tools, even collaborating, only host one logical application per machine. Projects such as Dokku and CapRover focuses on hosting multiple applications per machine, which I think makes their tools more complex, their applications more resource-competing and less fault-tolerant.
- Self-hosted software friendly: By basing on Linux instead of higher level of abstractions such as Kubernetes, apollo tools are more suitable for self-hosted software which sometimes does not provide Kubernetes or even Docker deployment options.
- Open for customization: By basing on Linux, it is also easier to make ad-hoc customizations to your machines and applications if needed.
Features
- Linux Provisioning and Security Setup (one-time)
- Linux Monitoring (continuous)
- Application Deployment (one-time)
- Continuous Deployment (continuous)
- Application types
- Private non-Docker workload
- Public Docker workload
- Public non-Docker workload
- Workload types
- Web
- Pre-deploy
- Background
- Application types
- Environment and Secret Injection (continuous)
- Logging (continuous)
- Database Provisioning
- Types
- MongoDB
- Postgres
- Redis
- ElasticSearch
- Tasks
- Provisioning (one-time)
- Auto injection (continuous)
- Backup (continuous)
- Restore (one-time)
- Types
- Reverse Proxy Provisioning
- Types
- Caddy
- Nginx
- Tasks
- Provisioning (one-time)
- Types
- Application Monitoring (continuous)