Plant

Server panel to easily self-host Fusio and other apps on your own infrastructure with one click.

Deployment

Self-host your apps on your own server

Fusio Plant is an open-source server panel to easily self-host Fusio and other apps on your own infrastructure. It can be seen as a modern, lightweight alternative to cPanel or Plesk with a simple, performant and clean tech stack.

Plant installs only Nginx, Docker and a small executor on your server. Everything else, including Plant itself, runs as a Docker container. You manage and monitor all apps through a web-based admin panel or control your server programmatically through a REST API.

Installation (as root on Ubuntu)
curl -s https://raw.githubusercontent.com/apioo/fusio-plant/refs/heads/main/install.sh -o ./install.sh
chmod +x ./install.sh
./install.sh

The script asks for the domain of your server, make sure the DNS A/AAAA record already points to it. Afterwards the panel is available at /apps/plant with the generated credentials.

Goals

Plant focuses on running multiple apps on a single host. If you need to run apps across multiple hosts, take a look at Kubernetes.

Cost efficient

Run multiple apps on a single server instead of paying for a managed service per app.

Admin panel

A web-based panel to create, manage and monitor all projects on your server.

REST API

Every action of the panel is available through a REST API, so you can automate your server.

Automatic SSL

SSL certificates are obtained automatically through certbot for every domain.

One-click presets

Select a preset, i.e. for WordPress, to launch a fully configured app. New presets are a single PHP class.

Daily backups

Plant automatically creates daily backups of every MySQL database used by your projects.

Deploy images, not builds

One important concept of Plant is that your server only runs existing Docker images, it does not contain any tools to build them. This keeps your host clean from build tools and the build process.

To run your own app, build an image i.e. with a GitHub action and push it to the GitHub container registry. Then simply use the image ghcr.io/[user]/[repository]:main in your project. The Framework starter repository already includes such an action.

Folder Purpose
/dockerAll projects, each with a docker-compose.yml file
/opt/plantThe executor which receives commands from the Plant container through a pipe and runs them on the host
/cacheUsed in case Nginx content caching is activated
/backupDaily database backups for each project
SHA1 a388a1662009d07810c278241a0a80fb709d724e