Self-hosting Apito gives you complete control over your API platform with unlimited projects, no license fees, and the ability to run on your own infrastructure using production-ready Docker images. This guide covers two methods: Apito CLI (recommended) and manual Docker Compose.
Apito CLI is required for both methods. Even if you use manual Docker Compose (Method 2), you must run apito init first—it creates the ~/.apito/bin/.env file. Without this .env file, the engine will not start.
Follow the CLI Getting Started guide. Quick options:
Homebrew (macOS and Linux):
brew tap apito-io/tap
brew install apito-cli
Quick Install (Linux & macOS):
curl -fsSL https://get.apito.io/install.sh | bash
Verify installation:
apito --version
Initialize the Apito system. Select Docker when prompted (recommended):
apito init
This creates:
~/.apito directory~/.apito/bin/.env — environment configuration (required by the engine)~/.apito/docker-compose.yml — engine and console services~/.apito/config.yml — CLI configurationExample output:
$ apito init
[STEP] 🚀 Initializing Apito CLI System
[INFO] Step 0: Select run mode (Docker recommended)...
✔ Docker (recommended, stable)
✔ Yes
[SUCCESS] Saved preference to ~/.apito/config.yml
[INFO] Creating system configuration file...
[SUCCESS] System configuration file created
[INFO] added docker-compose.yml to ~/.apito
[SUCCESS] Run mode: docker
[INFO] Step 0.5: Checking for latest component versions...
[SUCCESS] Engine version set to v1.5.1
[SUCCESS] Console version set to v0.2.3
[INFO] Step 3: Validating system database configuration...
[INFO] System database engine: coreDB
[SUCCESS] System database configuration validated
[INFO] Step 4: Validating environment configuration...
[INFO] Generating BRANKA_KEY...
[SUCCESS] BRANKA_KEY generated successfully
[SUCCESS] Environment configuration validated
[SUCCESS] 🎉 Apito CLI system initialization completed successfully!
[INFO] You can now start apito studio using : apito start
After running apito init, start Apito with a single command.
apito start
This pulls the Docker images (if needed) and starts the engine and console:
$ apito start
[STEP] 🚀 Starting Apito Engine and Console
[INFO] Run mode: docker
[INFO] Checking for component updates...
[SUCCESS] All components are up to date
[STEP] 🐳 Starting Docker Services
[INFO] Engine version: v1.5.1
[INFO] Console version: v0.2.3
[INFO] Pulling Docker images...
[+] Pulling 2/2
✔ console Pulled
✔ engine Pulled
[INFO] Starting containers...
[+] Running 3/3
✔ Network apito_default Created
✔ Container apito-console Started
✔ Container apito-engine Started
[SUCCESS] Docker services started (engine:5050, console:4000)
[SUCCESS] 🎉 Apito is now running!
[INFO] Engine: http://localhost:5050
[INFO] Console: http://localhost:4000
[INFO] Press Ctrl+C to stop all services
The default admin credentials are displayed in the engine logs on first run only. Run:
apito logs engine
Look for the credential box in the output:
apito-engine | ╔══════════════════════════════════════════════════════════════════════╗
apito-engine | ║ DEFAULT ADMIN CREDENTIALS ║
apito-engine | ║ ║
apito-engine | ║ Email: [email protected] ║
apito-engine | ║ Password: u8X0pHIVXKBRpIN9 ║
apito-engine | ║ ║
apito-engine | ║ Please login with these credentials and change the password! ║
apito-engine | ╚══════════════════════════════════════════════════════════════════════╝
Important: Credentials are shown only on the first run. If you miss them, see Resetting Admin Credentials.
[email protected] and the Password from the logsapito stop
After running apito init (mandatory), you can use your own docker-compose.yml instead of apito start. The engine requires ~/.apito/bin/.env and ~/.apito/db — both are created by apito init.
Create or use this configuration:
services:
console:
image: ghcr.io/apito-io/console:v0.2.3
container_name: apito-console
environment: []
ports:
- 4000:8080
volumes: []
restart: unless-stopped
engine:
image: ghcr.io/apito-io/engine:v1.5.1
container_name: apito-engine
environment: []
ports:
- 5050:5050
volumes:
- ~/.apito/bin/.env:/app/.env
- ~/.apito/db:/app/db
restart: unless-stopped
volumes: {}
Requires
apito initfirst — the engine mounts~/.apito/bin/.envand~/.apito/db. Without the.envfile, the engine will not run.
docker compose up -d
docker logs apito-engine
The default admin credentials appear in the logs on first run. Login at http://localhost:4000 and change your password.
docker compose down
| Service | URL |
|---|---|
| Console UI | http://localhost:4000 |
| Engine API | http://localhost:5050 |
If you missed the credentials on first run, see Resetting Admin Credentials in the Advanced Setup Guide.