- Centered SVG banner with terminal prompt icon - shields.io badges (license, release, bash, docker, stars) - Feature highlights, project table with upstream links - Project structure diagram, requirements table - Contributing guide for adding new projects |
||
|---|---|---|
| .github | ||
| filesuite | ||
| forgejo | ||
| minecraft | ||
| nextcloud | ||
| tailscale | ||
| teamspeak | ||
| uptime-kuma | ||
| .gitignore | ||
| automa | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
Self-hosted Docker Compose deployer
Interactive CLI to deploy Forgejo, Nextcloud, Minecraft, and more in seconds.
Quick Start
curl -fsSL https://raw.githubusercontent.com/m1ngsama/automa/main/install.sh | bash
cd ~/automa
./automa deploy
That's it. The CLI walks you through everything interactively.
What is automa?
automa is a single bash script that turns a collection of Docker Compose projects into a deploy-ready toolkit. No YAML editing, no manual docker compose commands — just answer a few questions and your services are live.
- Zero config — sensible defaults for every project, secrets auto-generated
- Interactive — guided setup with hints, validation, and color-coded output
- Non-interactive —
automa -y deployfor CI/scripts, accepts all defaults - Self-contained — each project is an independent directory, no shared dependencies
- Portable — pure bash, works on any Linux with Docker
Available Projects
| Project | Description | Upstream |
|---|---|---|
| Forgejo | Self-hosted Git service (Gitea fork) | forgejo.org |
| Nextcloud | Private cloud with MariaDB + Redis | nextcloud.com |
| Uptime Kuma | Uptime monitoring dashboard | GitHub |
| Tailscale | Mesh VPN client + optional DERP relay | tailscale.com |
| Filesuite | Cloudreve cloud storage + qBittorrent | cloudreve.org |
| Minecraft | Fabric server (itzg/minecraft-server) | Docs |
| TeamSpeak | Voice communication server | teamspeak.com |
Adding your own project? Just create a directory with
compose.yamland.env.example— automa discovers it automatically.
Usage
automa deploy # interactive project selection
automa deploy forgejo nextcloud # deploy specific projects
automa -y deploy forgejo # non-interactive (CI/scripts)
automa status # overview dashboard
automa logs minecraft # follow container logs
automa stop forgejo # stop a project
automa restart nextcloud # restart a project
automa update nextcloud # pull latest images & recreate
automa config tailscale # reconfigure .env
automa list # list all projects
How It Works
~/automa/
├── automa # CLI entry point (single script)
├── install.sh # curl-pipe-bash installer
├── forgejo/
│ ├── compose.yaml # Docker Compose definition
│ ├── .env.example # Template with metadata + defaults
│ └── .env # Your config (gitignored, created by CLI)
├── nextcloud/
│ └── ...
└── ...
Each project directory is fully self-contained:
compose.yaml— production-ready with health checks, resource hints, and security hardening.env.example— annotated template with@name,@desc,@url,@portmetadata that the CLI reads.env— your configuration, auto-generated with safe defaults and random secrets
Requirements
| Dependency | Minimum |
|---|---|
| Docker | 20.10+ |
| Docker Compose | v2 (plugin) |
| Bash | 4.0+ |
| Git | any |
The installer checks all prerequisites automatically.
Uninstall
cd ~/automa
./automa stop <each-project> # stop running containers
cd ~ && rm -rf ~/automa # remove automa
Data volumes are stored inside each project's data/ directory and will be removed with the above command. Back up first if needed.
Contributing
Contributions are welcome! To add a new project:
- Create a new directory:
mkdir myproject - Add a
compose.yamlwith health checks - Add a
.env.examplewith metadata headers:# @name My Project # @desc Short description shown in CLI # @url https://project-homepage.com # @port PORT_VAR_NAME - Open a pull request