Installation
Install the EZKeel CLI and deploy the self-hosted platform on your infrastructure.
Prerequisites
Before installing EZKeel, make sure you have the following:
| Requirement | Details |
|---|---|
| VPS or server | A Linux machine with Docker and Docker Compose (e.g. Hetzner CX22, 2 vCPU, 4 GB RAM) |
| Domain name | Two subdomains pointed at your server (e.g. git.example.com, secrets.example.com) |
| DNS records | A records pointing both subdomains to your server's public IP |
| Go 1.22+ | Required to build the CLI from source (or download the pre-built binary) |
Install the CLI
From Source (Go)
If you have Go installed, this is the fastest path:
terminal
$ go install github.com/ezkeel/ezkeel/cmd/ezkeel@latest
$ ezkeel version
ezkeel v0.1.0
From Binary
Download a pre-built binary for your platform:
terminal
$ curl -fsSL https://github.com/ferax564/ezkeel/releases/latest/download/ezkeel-linux-amd64 \
-o /usr/local/bin/ezkeel
$ chmod +x /usr/local/bin/ezkeel
$ ezkeel version
ezkeel v0.1.0
Deploy the Platform
The ezkeel platform install command sets up all services on your server with a single command. It generates secrets, writes configuration files, and starts everything with Docker Compose.
terminal
$ ezkeel platform install \
--dir /opt/ezkeel \
--forgejo-domain git.example.com \
--infisical-domain secrets.example.com
Written /opt/ezkeel/.env
EZKeel platform installed at /opt/ezkeel
Forgejo: https://git.example.com
Infisical: https://secrets.example.com
Admin password stored in /opt/ezkeel/.env
Flags
| Flag | Default | Description |
|---|---|---|
--dir |
/opt/ezkeel |
Directory to install the platform into |
--forgejo-domain |
git.ezkeel.com |
Domain for the Forgejo Git instance |
--infisical-domain |
secrets.ezkeel.com |
Domain for the Infisical secrets instance |
Verify Installation
After installation completes, verify that all services are running:
terminal
$ docker compose -f /opt/ezkeel/docker-compose.yml ps
NAME STATUS PORTS
postgres Up 5432/tcp
redis Up 6379/tcp
forgejo Up 3000/tcp
infisical Up 8080/tcp
caddy Up 80/tcp, 443/tcp
runner Up
Then visit your domains in a browser:
- Forgejo:
https://git.example.com— you should see the Forgejo login page - Infisical:
https://secrets.example.com— you should see the Infisical dashboard
What's Running
The platform install creates a Docker Compose stack with the following services:
| Service | Image | Purpose |
|---|---|---|
| Forgejo | codeberg/forgejo:latest |
Git hosting, code review, CI/CD via Forgejo Actions |
| Infisical | infisical/infisical:latest |
Secrets management with environment-scoped access |
| PostgreSQL | postgres:16-alpine |
Shared database for Forgejo and Infisical |
| Redis | redis:7-alpine |
Cache and session store for Infisical |
| Caddy | caddy:2-alpine |
Reverse proxy with automatic HTTPS via Let's Encrypt |
| Runner | forgejo/runner:latest |
CI/CD runner for Forgejo Actions workflows |
Next: See Platform Setup for architecture details, resource requirements, and backup procedures.