Plant
Server panel to easily self-host Fusio and other apps on your own infrastructure with one click.
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.
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 |
|---|---|
| /docker | All projects, each with a docker-compose.yml file |
| /opt/plant | The executor which receives commands from the Plant container through a pipe and runs them on the host |
| /cache | Used in case Nginx content caching is activated |
| /backup | Daily database backups for each project |
a388a1662009d07810c278241a0a80fb709d724e