DeploySphere
Automate deployment of various apps including WordPress, JitsiMeet, Zimbra, and many more to Proxmox and OVH. This project is particularly useful for Homelab use case.
Made with Terraform, Bash, Ansible, Golang and Python
DeploySphere is an exciting open-source project that aims to simplify and automate the deployment of various applications like WordPress, JitsiMeet, Zimbra, and more. As someone who manages a small infrastructure, I was intrigued by the promise of hassle-free app setup.
The Problem
Setting up apps can be tedious and time-consuming. You typically have to spin up the infrastructure, install dependencies, configure everything properly, and more. This complex process often deters individuals and small teams from deploying apps, even if they could benefit tremendously from them.
DeploySphere tries to eliminate these friction points with automation using Infrastructure-as-Code (IaC) practices.
How It Works
The core functionality relies on a Golang service that exposes a JSON API. Users can send HTTP requests describing the app they want to deploy and the necessary infrastructure specifications.
DeploySphere then automatically:
- Translates the request body into a Terraform configuration
- Applies the config to spin up infrastructure on platforms like Proxmox or OVH
- Leverages provisioning scripts to install apps on the new infrastructure
So in just one API call, your app gets fully deployed!
The project focuses especially on support for Proxmox since that is a popular self-hosted virtualization solution. But the plan is to eventually support other platforms like AWS, GCP, and Azure.
Current State
As of November 2023, DeploySphere is still in early development. So far, the framework to...
- Accept API calls
- Generate Terraform configs
- Deploy to Proxmox and Create Domain on OVH
- Reverse Proxy using Nginx Proxy Manager
While functionally limited, this foundation has been incredibly valuable for testing the feasibility of the idea and platform.
Over the next few months, we plan to prioritize:
- Support for auto-scaling and load balancing
- Support Trafik
- Monitoring and metrics collection
- Additional apps integration
We welcome anyone who is interested to contribute to these efforts!
Platform Integration
In addition to app deployment, we also want DeploySphere to handle inter-platform configurations automatically.
For example:
-
Setting up LDAP federation between identity management solutions like FreeIPA and Authentik is typically complex and manual. DeploySphere will be able to configure trust and sync settings across upgrades.
-
SSO configuration is also challenging when connecting multiple apps. DeploySphere aims to provide automatic OpenID Connect integration for platforms like:
- WikiJS
- Moodle
- Nextcloud
- And more
Using identity providers like Authentik or Keycloak.
This will further simplify management of infrastructure composed of diverse components.
Web Server
- Golang
- Gin
Infrastructure As Code
- Terraform
- Ansible
- Bash
- Packer
Persistence tools
- Gorm
Languages
- Golang
- Python
- Yaml
- Typescript
Message broker
- Redis