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

Check it out

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 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