Installation

Install the EZKeel CLI, add your own VPS, and deploy any repo in one command. The hosted dashboard is optional beta access.

Prerequisites

Before installing EZKeel, make sure you have the following:

Requirement Details
VPS or server A Debian 12 or Ubuntu 22.04+ server with SSH access, 4 GB RAM or more, and ports 80/443/22 open. EZKeel can bootstrap Docker and the agent for you.
Domain name A domain or subdomain you can point at your server, such as apps.example.com
DNS records An A record for the app domain, plus wildcard DNS such as *.apps.example.com when you want app subdomains
Go 1.22+ Only required when building from source. The quick installer downloads a pre-built binary.

Install the CLI

Quick Install (Recommended)

One command to download the right binary for your platform:

terminal
$ curl -fsSL https://ezkeel.com/install.sh | sh Detecting latest EZKeel release... Downloading EZKeel for your platform... EZKeel installed to /usr/local/bin/ezkeel

Supports Linux and macOS on both x86_64 and ARM64.

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 latest

From Binary

Download a pre-built binary for your platform:

terminal
$ curl -fsSL https://github.com/ferax564/ezkeel-cli/releases/latest/download/ezkeel-linux-amd64 \ -o /usr/local/bin/ezkeel $ chmod +x /usr/local/bin/ezkeel $ ezkeel version ezkeel latest

Deploy Your First Repo

The launch path is CLI-first: add a server, point DNS at it, and deploy a repo. No hosted dashboard account or checkout is required for this flow.

terminal
$ ezkeel server add \ user@203.0.113.10 \ --domain apps.example.com Bootstrapping Docker, Caddy, and ezkeel-agent... Server "production" ready. $ ezkeel up github.com/user/my-app ✓ Detected framework ✓ Built image ✓ Deployed to server Live at https://my-app.apps.example.com

Optional: Deploy the Full Platform

The ezkeel platform install command sets up Forgejo, Infisical, Caddy, and supporting services on your server. Use this when you want the full self-hosted development platform, not just repo-to-VPS deploys.

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

After the optional platform install 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:

What's Running

The platform install creates a Docker Compose stack with the following services:

Service Image Purpose
Forgejo codeberg.org/forgejo/forgejo:9 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.