Prerequisites & Installation
Everything you need to prepare your development environment and target servers for epd.
Local System Requirements
epd runs on your local development machine or inside a CI runner (such as GitHub Actions).
- Operating System: macOS, Linux, or Windows (via WSL2).
- Runtime:
- Tools:
- OpenSSH client (
ssh). - Docker Desktop or Docker Engine (required if using
mode: docker). rsync(required if usingmode: process).
- OpenSSH client (
Server Requirements
epd communicates over standard SSH. No custom agent daemons or background control planes need to run on the server.
- Operating System: Any 64-bit Linux distribution:
- Ubuntu 20.04 / 22.04 / 24.04 LTS (recommended)
- Debian 11 / 12
- Fedora 39+ / AlmaLinux / Rocky Linux
- Arch Linux / Alpine Linux
- SSH Access:
- Open SSH port (default: 22).
- User with
rootprivileges or passwordlesssudo. - SSH public key authentication configured.
- Firewall & Ports:
- Port 80 (HTTP): Required for Let's Encrypt HTTP-01 challenge and HTTP traffic redirection.
- Port 443 (HTTPS): Required for encrypted TLS/SSL traffic.
- Port 22 (SSH): Required for deployment and server management.
Automatic Server Provisioning
epd setup automatically installs Docker, Traefik, curl, and necessary host utilities. You only need a clean server with SSH access!
Installing EPD
Option 1: Bun (Recommended)
bun install -g @fabioplunser/epdOption 2: NPM / PNPM / Yarn
npm install -g @fabioplunser/epdpnpm add -g @fabioplunser/epdyarn global add @fabioplunser/epdOption 3: Standalone Linux Binary (No Node/Bun Required)
If you are running in CI or want a single standalone binary:
curl -fsSL https://github.com/FabioPlunser/epd/releases/latest/download/epd-linux-x64 -o /usr/local/bin/epd
chmod +x /usr/local/bin/epdOption 4: Run via npx / bunx Without Installation
npx @fabioplunser/epd deploy
# or
bunx @fabioplunser/epd deployConfiguring SSH Access
epd connects to servers using your system's SSH configuration.
1. Test Direct Connection
Before running epd setup, verify you can connect without entering a password:
ssh root@203.0.113.102. Copy SSH Key to Server
If you need to copy your local SSH key to the remote server:
ssh-copy-id root@203.0.113.103. Custom SSH Keys & Ports
If your server uses a non-standard port or specific key, specify them in epd.yml:
ssh:
user: ubuntu
port: 2222
key: ~/.ssh/id_ed25519
proxy_jump: bastion.example.comNext Step
Once prerequisites are in place, proceed to the Getting Started Guide or explore the Architecture & Flow.