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.

Back to Projects
Made with Terraform, Bash, Ansible, Golang and PythonView Live

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:

  1. Translates the request body into a Terraform configuration
  2. Applies the config to spin up infrastructure on platforms like Proxmox or OVH
  3. Leverages provisioning scripts to install apps on the new infrastructure

So in just one API call, your app gets fully deployed!

DeploySphere Architecture

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 Capabilities

DeploySphere currently provides the framework to:

  • Accept API calls
  • Generate Terraform configs
  • Deploy to Proxmox and create domains on OVH
  • Reverse proxy using Nginx Proxy Manager

This foundation has been valuable for testing the feasibility of the idea and platform.

The roadmap includes:

  • Support for auto-scaling and load balancing
  • Support for Traefik
  • Monitoring and metrics collection
  • Additional app integrations

Contributions are welcome!

Platform Integration

In addition to app deployment, DeploySphere also handles inter-platform configurations automatically.

For example:

  • Setting up LDAP federation between identity management solutions like FreeIPA and Authentik is typically complex and manual. DeploySphere can 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 further simplifies 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
Connect
Let's get in touch