π Apito CLI is a powerful command-line tool for managing projects, plugins, functions, and deployments on the Apito platform. It provides a seamless development experience from local development to cloud deployment with enhanced database management, plugin hot-reload system, and Docker integration.
Website Β· Documentation Β· Discord
apito start:latest for consistent deploymentsapito plugin add <name> from the official registry or any GitHub URLapito-system-{engine} and apito-project-{engine} patternsenv.go with comprehensive environment variable operations~/.apito/bin/.env--db system and --db project flags for granular controlinit to dedicated start --db commands--db flag across start, stop, and restart commandsapito status commandapito logs command for service and database logsapito admin password reset [email] with engine URL (default http://localhost:5050) and reset-token promptapito init update merges new default env keys into ~/.apito/bin/.env so existing users get new vars without re-running full apito initbrew tap apito-io/tap
brew install apito-cli
curl -fsSL https://get.apito.io/install.sh | bash
# Download the installer
wget -O install.sh https://get.apito.io/install.sh
# Make it executable
chmod +x install.sh
# Run the installer
./install.sh
apito --version
apito init
This command will:
~/.apito (e.g., bin/, db/, logs/, run/)~/.apito/bin/.env with default system configuration~/.apito/config.ymlapito start --db system or apito start --db projectapito create project -n my-awesome-app
This interactive command will:
apito start [--db system|project]
This command will (based on run mode stored in ~/.apito/config.yml):
~/.apito/docker-compose.yml exists (engine + console)~/.apito/db -> /app/db and ~/.apito/bin/.env -> /app/.envdocker compose -f ~/.apito/docker-compose.yml up -d--db system or --db project to start specific database types~/.apito/bin/engine~/.apito/console~/.apito/bin/caddyinit - Initialize Apito CLI SystemInitializes and validates the Apito CLI system configuration.
Usage:
apito init
Features:
~/.apito directory if it doesnβt existapito start --db commandsWhat it checks:
Examples:
# First-time setup
apito init
# Re-run to validate configuration
apito init
init update - Merge New Env Keys Into System .envAdds any missing default env keys to your existing ~/.apito/bin/.env without overwriting existing values. Use this after upgrading the CLI when new env vars (e.g. APITO_ADMIN_RESET_SECRET) are introduced.
Usage:
apito init update
Behavior:
~/.apito/bin/.env and compares it to the current default key set.When to use:
.env variables.Examples:
apito init update
# Output (if keys were added):
# [SUCCESS] Updated ~/.apito/bin/.env
# [INFO] Added: APITO_ADMIN_RESET_SECRET
# Output (if already up to date):
# [INFO] Nothing to change.
Default Configuration:
The init command creates a .env file with these default values:
ENVIRONMENT=local
COOKIE_DOMAIN=localhost
CORS_ORIGIN=http://localhost:4000
PLUGIN_PATH=plugins
PUBLIC_KEY_PATH=keys/public.key
PRIVATE_KEY_PATH=keys/private.key
APITO_SYSTEM_DB_ENGINE=embed
BRANKA_KEY=<auto-generated-32-character-key>
APITO_ADMIN_RESET_SECRET=<auto-generated-12-char-secret>
BRANKA_KEY Behavior:
admin password reset - Reset User Password by EmailResets the password for a system user by email. The engine must be running. You provide the engine/API URL (or accept the default), paste the reset token (admin secret), and set a new password.
Usage:
apito admin password reset [email]
apito admin password reset -u <engine-url> [email]
Options:
--url, -u - Engine/API base URL. If omitted, you are prompted; default is http://localhost:5050.Flow:
-u/--url, or prompt (default http://localhost:5050).APITO_ADMIN_RESET_SECRET in the engineβs .env).Examples:
# Interactive: URL prompt (default localhost:5050), then email, token, password
apito admin password reset
# With email on the command line
apito admin password reset [email protected]
# Specify engine URL (no URL prompt)
apito admin password reset -u https://api.myhost.com [email protected]
Note: The reset token is not read from your local env; you paste it when prompted (it must match the engineβs APITO_ADMIN_RESET_SECRET).
status - Show Service and Database StatusShows whether services are running and displays database status when available.
Usage:
apito status [engine|console]
Features:
db-compose.yml existsExamples:
# Show all services and database status
apito status
# Show specific service status
apito status engine
apito status console
Output Example:
[INFO] Database Status:
[SUCCESS] apito-system-postgres: Running
[SUCCESS] apito-project-postgres: Running
[WARNING] engine (docker) is not running
[WARNING] console (docker) is not running
logs - View Service and Database LogsView logs for Apito services (engine/console) and databases with real-time following and tail control.
Usage:
apito logs [engine|console] [--db system|project] [--follow] [--tail N]
Options:
--db system|project - Show logs for specific database type--follow, -f - Follow log output in real-time--tail N, -n N - Show last N lines (default: 100)Features:
--follow flag--tail flagExamples:
# Database logs
apito logs --db system --tail 10
apito logs --db project --follow
apito logs --db system -f -n 5
# Service logs
apito logs engine --tail 50
apito logs console --follow
apito logs engine -f -n 100
# Default behavior (engine logs, last 100 lines)
apito logs
Output Examples:
# Database logs
[INFO] Showing logs for system database (apito-system-postgres):
2025-08-14 05:48:09.188 UTC [1] LOG: database system is ready to accept connections
# Service logs (when services are running)
[INFO] Showing logs for engine service:
# Log output from the engine container
start --db - Start Database ServicesStart system or project databases with interactive configuration and Docker integration.
Usage:
apito start --db system # Start system database
apito start --db project # Start project database
Features:
apito-{dbType}-{engine} patternDatabase Engines Supported:
Configuration Options:
apito user, generated password, and apito databaseExamples:
# Start system database with interactive setup
apito start --db system
# Start project database with interactive setup
apito start --db project
# Start services without database (default behavior)
apito start
Volume Naming Convention:
apito-system-{engine}_data (e.g., apito-system-postgres_data)apito-project-{engine}_data (e.g., apito-project-mysql_data)stop --db - Stop Database ServicesStop specific database services while keeping other services running.
Usage:
apito stop --db system # Stop system database
apito stop --db project # Stop project database
Examples:
# Stop only the system database
apito stop --db system
# Stop only the project database
apito stop --db project
# Stop all services (default behavior)
apito stop
restart --db - Restart Database ServicesRestart specific database services while keeping other services running.
Usage:
apito restart --db system # Restart system database
apito restart --db project # Restart project database
Examples:
# Restart only the system database
apito restart --db system
# Restart only the project database
apito restart --db project
# Restart all services (default behavior)
apito restart
Apito CLI provides a comprehensive plugin management system that allows you to create, deploy, update, and manage HashiCorp-based plugins with hot reload capabilities.
config - Manage CLI ConfigurationConfigure accounts, server URLs, cloud sync keys, and other CLI settings for plugin management.
Usage:
apito config <command> [options]
Commands:
set <key> <value> - Set a configuration valueset <url|key> <value> - Set account-specific configuration with interactive selectionset -a <account> <url|key> <value> - Set account-specific configuration with account flagset account <account-name> <url|key> <value> - Set account-specific configurationget [key] - Get configuration value(s)init - Initialize configuration interactivelyreset - Reset configuration to defaultsConfiguration Keys:
timeout - Request timeout in seconds (default: 30)default_plugin - Default plugin for operationsmode - CLI run mode (docker or manual)default_account - Default account for plugin operationsAccount Configuration:
url - Apito server URL for the accountkey - Cloud sync key for the accountInteractive Account Selection:
When setting url or key without specifying an account, the CLI will show an interactive menu to choose from configured accounts:
# Interactive account selection (shows list of accounts)
apito config set key AQAAAABo3Wov1s_uv6RndWxE...
# Output:
# π Select Account
# 1. local (default)
# 2. staging
# 3. production
# ? Choose account: [Use arrows to select]
# Direct account specification with flag
apito config set -a production key abc123...
apito config set --account staging url https://staging-api.apito.io
# Auto-selects if only one account exists
# Shows error if no accounts configured
Examples:
# Interactive configuration setup (creates accounts)
apito config init
# Interactive account selection for setting values
apito config set key abc123... # Shows account selection menu
apito config set url https://api.apito.io # Shows account selection menu
# Set account-specific values with -a flag (recommended)
apito config set -a production key abc123...
apito config set -a staging url https://staging-api.apito.io
# Set account-specific values (existing patterns still work)
apito config set account production url https://api.apito.io
apito config set production key abc123...
# Set default account
apito config set default_account production
# View all configuration including accounts
apito config get
# View specific setting
apito config get default_account
# View all accounts
apito config get account
# Reset all configuration
apito config reset
account - Manage Multiple AccountsManage multiple Apito accounts for different environments (production, staging, local, etc.).
Usage:
apito account <command> [options]
Commands:
create <account-name> - Create a new account with interactive setuplist - List all configured accountsselect <account-name> - Set default account for plugin operationstest <account-name> - Test account connection and credentialsdelete <account-name> - Delete an account configurationExamples:
# Create a new account
apito account create production
# List all accounts
apito account list
# Test account connection
apito account test production
# Set default account
apito account select production
# Delete an account
apito account delete staging
Account Workflow:
# 1. Create accounts for different environments
apito account create production
apito account create staging
apito account create local
# 2. Configure each account (multiple ways)
# Method A: Using -a flag (recommended)
apito config set -a production url https://api.apito.io
apito config set -a production key prod-key-123
apito config set -a staging url https://staging-api.apito.io
apito config set -a staging key staging-key-456
apito config set -a local url http://localhost:5050
apito config set -a local key local-key-789
# Method B: Interactive selection (shows menu)
apito config set url https://api.apito.io # Select from account list
apito config set key prod-key-123 # Select from account list
# Method C: Traditional syntax (still works)
apito config set account production url https://api.apito.io
apito config set production key prod-key-123
# 3. Test account connections
apito account test production
apito account test staging
apito account test local
# 4. Set default account
apito account select production
# 5. Use plugin commands (will use default account)
apito plugin deploy
apito plugin list
plugin - Manage HashiCorp PluginsCreate, deploy, update, and manage HashiCorp-based plugins with hot reload capabilities.
β οΈ Confirmation Required: Sensitive operations (deploy, update, delete, stop, restart) require confirmation and will display detailed information about the operation, including:
Usage:
apito plugin <command> [options]
Commands:
add <plugin-name-or-github-url> - Add a plugin from the official registry or a GitHub repository (downloads latest release and deploys) β οΈ Requires confirmationcreate - Create a new plugin scaffoldbuild [directory] - Build plugin based on language configurationdeploy [directory] - Deploy plugin to server β οΈ Requires confirmationupdate <plugin-id> [directory] - Update existing plugin β οΈ Requires confirmationlist - List all plugins on serverstatus <plugin-id> - Get plugin statusdelete <plugin-id> - Delete plugin from server β οΈ Requires confirmationrestart <plugin-id> - Restart plugin β οΈ Requires confirmationstop <plugin-id> - Stop plugin β οΈ Requires confirmationstart <plugin-id> - Start pluginenv - Show build environment informationOptions:
--account, -a - Specify account to use for plugin operations (optional, uses default if not specified)--replace - Delete existing plugin before deployment (for add and deploy commands)--dir, -d - Plugin directory (for deploy/update/build commands)--build, -b - Build method: system or docker (for build command, skips interactive prompt)--platform, -p - Target OS: linux, darwin, or windows (for build command, skips interactive prompt)--arch - Target architecture: amd64 or arm64 (for build command, skips interactive prompt)--type, -t - Go build type: debug, develop, or production (for build command, skips interactive prompt)Features:
Add Plugin from Registry or GitHub:
# Add official plugin by name (from registry)
apito plugin add hc-auth-plugin
# Add plugin from GitHub URL
apito plugin add https://github.com/udhvabon/hc-prottoy-plugin
apito plugin add https://github.com/udhvabon/hc-prottoy-plugin.git
# Add with account and replace existing deployment
apito plugin add hc-auth-plugin --account production --replace
The add command fetches the latest release from GitHub, downloads the platform-specific binary (darwin/linux/windows, amd64/arm64), and deploys it. Use official plugin IDs from the registry or any GitHub repository URL that follows the plugin deployment docs.
Plugin Creation Workflow:
# 1. Configure CLI for plugin management
apito config init
# This creates your first account interactively
# 2. Create additional accounts for different environments (optional)
apito account create staging
apito config set account staging url https://staging-api.apito.io
apito config set account staging key staging-key-456
# 3. Set default account
apito account select production
# 4. Create new plugin scaffold
apito plugin create
# Follow prompts to select:
# - Plugin name (e.g., hc-my-awesome-plugin)
# - Language (Go, JavaScript, Python)
# - Plugin type (System, Project, Custom)
# 5. Develop your plugin
cd hc-my-awesome-plugin
# Edit main.go or main.js based on your language choice
# Modify config.yml with plugin metadata
# 6. Build plugin
apito plugin build
# 7. Deploy plugin to server (uses default account)
apito plugin deploy
# 8. Check plugin status
apito plugin status hc-my-awesome-plugin
Plugin Development:
# Add plugin from registry or GitHub (quickest way to get a plugin)
apito plugin add hc-auth-plugin
apito plugin add https://github.com/owner/hc-my-plugin
# Create plugin scaffold (for custom development)
apito plugin create
# > Enter plugin name: hc-file-processor
# > Select language: Go
# > Select type: System
# Build plugin (automatically detects language)
apito plugin build
# > Choose build method: System Go / Docker
# > (For Go) Choose build type: Debug / Development / Production
# Build plugin non-interactively (for automation/CI)
apito plugin build --build system --platform linux --arch amd64 --type production
apito plugin build -b docker -p linux --arch arm64 -t debug
# Deploy from current directory (requires confirmation)
apito plugin deploy
# Deploy from specific directory
apito plugin deploy ./path/to/plugin
# Deploy to specific account
apito plugin deploy --account staging
apito plugin deploy -a production
# Force deploy (delete existing before deploy)
apito plugin deploy -a udbhabon --force
apito plugin deploy -a udbhabon -f
apito plugin deploy -a udbhabon --replace
# Update existing plugin (requires confirmation)
apito plugin update hc-file-processor
# List plugins from specific account
apito plugin list --account staging
apito plugin list -a production
# Check plugin status from specific account
apito plugin status hc-file-processor --account staging
Plugin Build System:
The build system automatically detects the plugin language from config.yml and provides appropriate build options. It supports both interactive and non-interactive modes, similar to the --account flag pattern.
Build Modes:
Go Plugins:
# Build Go plugin with interactive options
apito plugin build
# Options:
# - System vs Docker build
# - Target platform (Linux AMD64, Linux ARM64, macOS, Windows, Host OS)
# - Build type: Debug / Development / Production
# Build Go plugin non-interactively (for automation/CI/CD)
apito plugin build --build system --platform linux --arch amd64 --type production
apito plugin build -b docker -p linux --arch arm64 -t debug
apito plugin build --build system -p darwin --arch arm64 --type develop
# Partially interactive (only build method specified)
apito plugin build --build docker
# Will still prompt for platform and build type
# Examples of actual build commands used:
# Debug: go build -gcflags="all=-N -l" -o hc-plugin-name .
# Development: GOOS=linux GOARCH=amd64 go build -o hc-plugin-name .
# Production: CGO_ENABLED=0 go build -ldflags "-s" -a -o hc-plugin-name .
Build Flags:
--build, -b: Build method (system or docker)
system is specified but runtime not available, falls back to Docker with warning--platform, -p: Target operating system (linux, darwin, windows)
--arch for non-interactive mode--arch: Target architecture (amd64, arm64)
--platform, uses host architecture--type, -t: Go build type (debug, develop, production)
debug, develop/development, productionJavaScript Plugins:
# Build JavaScript plugin
apito plugin build
# Automatically runs:
# - npm install (install dependencies)
# - node --check index.js (syntax validation)
Python Plugins:
# Build Python plugin
apito plugin build
# Automatically runs:
# - pip3 install -r requirements.txt (if exists)
# - python3 -m py_compile main.py (syntax validation)
Build Environment:
# Check available build tools
apito plugin env
# Shows status of:
# - Go runtime
# - Node.js runtime
# - Python runtime
# - Docker availability
# - System architecture
Plugin Management:
# List all plugins
apito plugin list
# Get detailed plugin status
apito plugin status hc-file-processor
# Control plugin lifecycle (requires confirmation)
apito plugin restart hc-file-processor
apito plugin stop hc-file-processor
apito plugin start hc-file-processor
# Remove plugin (requires confirmation)
apito plugin delete hc-file-processor
Plugin Configuration (config.yml):
plugin:
id: "hc-your-plugin-name"
language: "go" # go, js, python
title: "Your Plugin Title"
icon: "π"
description: "Plugin description"
type: "system" # system, project, custom
role: "custom"
exported_variable: "NormalPlugin"
enable: true
debug: false
version: "1.0.0"
author: "Your Name"
repository_url: "https://github.com/your/repo"
branch: "main"
binary_path: "hc-your-plugin-name"
handshake_config:
protocol_version: 1
magic_cookie_key: "APITO_PLUGIN"
magic_cookie_value: "apito_plugin_magic_cookie_v1"
env_vars:
- key: "PLUGIN_DEBUG_MODE"
value: "false"
Plugin Types:
Supported Languages:
The CLI now provides comprehensive visibility into your Apito infrastructure:
Access logs for all components with powerful filtering and real-time capabilities:
# Check overall system health
apito status
# Monitor specific services
apito status engine
apito status console
# View real-time logs
apito logs --db system --follow
apito logs engine --follow
# Analyze recent activity
apito logs --db project --tail 100
apito logs console --tail 50
create - Create New ResourcesCreates new projects, functions, or models via API calls to the Apito server.
Usage:
apito create <resource> [options]
Resources:
project - Create a new Apito project via APIfunction - Create a new function (coming soon)model - Create a new data model (coming soon)Options:
--name, -n - Name of the resource--project, -p - Project name (alternative to βname)Features:
Database Options:
Examples:
# Create a new project with prompts
apito create project
# Create a project with name flag
apito create project -p my-ecommerce-app
# Create a project with name flag (alternative)
apito create project -n my-ecommerce-app
start - Start Apito Engine and ConsoleStarts the Apito engine and console with automatic setup and downloads.
Usage:
apito start [--db system|project]
Options:
--db system - Start system database with interactive setup--db project - Start project database with interactive setupFeatures:
~/.apito/config.yml.env mounted inside the engine container--db flagWhat it does:
~/.apito/config.yml (defaults to Docker)--db flag specified):
~/.apito/bin/.envExamples:
# Start Apito with automatic setup
apito start
# Start with system database
apito start --db system
# Start with project database
apito start --db project
Access URLs:
System Requirements:
~/.apito/ directorystop - Stop ServicesStops one or more Apito services.
Usage:
apito stop [engine|console|all] [--db system|project]
Options:
--db system - Stop only the system database--db project - Stop only the project databaseExamples:
# Stop everything
apito stop
# Stop only engine
apito stop engine
# Stop only console
apito stop console
# Stop only system database
apito stop --db system
# Stop only project database
apito stop --db project
restart - Restart ServicesRestarts one or more Apito services.
Usage:
apito restart [engine|console|all] [--db system|project]
Options:
--db system - Restart only the system database--db project - Restart only the project databaseExamples:
# Restart everything
apito restart
# Restart only engine
apito restart engine
# Restart only console
apito restart console
# Restart only system database
apito restart --db system
# Restart only project database
apito restart --db project
build - Build ProjectBuilds your project for different deployment targets.
Usage:
apito build <target> -p <project> [options]
Targets:
docker - Build Docker imagezip - Create deployment packageOptions:
--project, -p - Project name (required)--tag, -t - Docker image tag (optional, for docker builds)Examples:
# Build Docker image
apito build docker -p my-ecommerce-app
apito build docker -p my-ecommerce-app -t v1.0.0
# Create ZIP package
apito build zip -p my-ecommerce-app
update - Update ComponentsUpdate Apito engine, console, or the CLI itself.
Usage:
apito update <engine|console|self> [-v <version>]
Examples:
# Update engine to latest version
apito update engine
# Update console to a specific version
apito update console -v v1.2.3
# Update the CLI itself to the latest version
apito update self
Apito CLI sets up the following structure:
~/.apito/
βββ bin/
β βββ engine # Engine binary (Manual mode)
β βββ caddy # Caddy binary (Manual mode)
β βββ .env # System configuration mounted into engine container
βββ db/ # Persistent engine data volume (Docker mode)
βββ docker-compose.yml # Engine + Console compose (Docker mode)
βββ db-compose.yml # Database compose (generated when --db flag used)
βββ console/ # Console static files (Manual mode)
βββ Caddyfile # Console server config (Manual mode)
βββ logs/ # Service log files (Manual mode)
β βββ engine.log # Engine service logs
β βββ console.log # Console service logs
βββ run/ # Process PID files (Manual mode)
β βββ engine.pid
β βββ console.pid
βββ config.yml # CLI config (mode, plugin server URL, cloud sync key)
Logging & Monitoring:
~/.apito/logs/ (Manual mode)apito logs commandapito statusThe CLI manages two types of configuration:
~/.apito/config.yml)mode - CLI run mode (docker or manual)default_account - Default account for plugin operationstimeout - Request timeout in seconds (default: 30)default_plugin - Default plugin for operationsengine_version - Current engine Docker image version (auto-managed)console_version - Current console Docker image version (auto-managed)accounts - Account configurations map (supports multiple accounts)
account_name - Account configuration
server_url - Apito server URL for the accountcloud_sync_key - Authentication key for the accountSetting Account Configuration:
You can configure accounts using three methods:
Interactive Selection (recommended for beginners):
apito config set key <value> # Shows account selection menu
apito config set url <value> # Shows account selection menu
Using -a Flag (recommended for scripts):
apito config set -a production key <value>
apito config set -a staging url <value>
Traditional Syntax (still supported):
apito config set account production url <value>
apito config set production key <value>
~/.apito/bin/.env)The CLI manages engine configuration in ~/.apito/bin/.env:
ENVIRONMENT - local/development/staging/productionCOOKIE_DOMAIN - e.g., localhostCORS_ORIGIN - e.g., http://localhost:4000BRANKA_KEY - Generated secret keyAPITO_ADMIN_RESET_SECRET - Secret for admin password reset (used when running apito admin password reset; paste this when prompted for βreset tokenβ)APITO_SYSTEM_DB_ENGINE - embed, postgres, mysql, mariadb, mongodb, redis, sqlserverSYSTEM_DB_HOST - System database hostSYSTEM_DB_PORT - System database portSYSTEM_DB_NAME - System database nameSYSTEM_DB_USER - System database usernameSYSTEM_DB_PASSWORD - System database passwordSYSTEM_DATABASE_URL - Complete system database connection stringAPITO_PROJECT_DB_ENGINE - postgres, mysql, mariadb, mongodb, redis, sqlserverPROJECT_DB_HOST - Project database hostPROJECT_DB_PORT - Project database portPROJECT_DB_NAME - Project database namePROJECT_DB_USER - Project database usernamePROJECT_DB_PASSWORD - Project database passwordPROJECT_DATABASE_URL - Complete project database connection stringSERVE_PORT - Engine port (default 5050)CACHE_*, KV_ENGINE, AUTH_SERVICE_PROVIDER, TOKEN_TTLCADDY_PATH - Absolute path to caddy (managed by CLI)apito-system-{engine} (e.g., apito-system-postgres)apito-project-{engine} (e.g., apito-project-mysql)apito-system-{engine}_data (e.g., apito-system-postgres_data)apito-project-{engine}_data (e.g., apito-project-mysql_data)The CLI automatically manages engine and console versions with smart update detection:
During apito init (Docker mode):
~/.apito/config.ymldocker-compose.yml with specific version tagsDuring apito start (Docker mode):
docker-compose.yml with updated versionsVersions are stored in ~/.apito/config.yml:
mode: docker
engine_version: v1.3.1
console_version: v2.5.0
# Start will check for updates
$ apito start
# If updates are available, you'll see:
π Updates Available
Engine: v1.3.0 β v1.3.1
Console: v2.4.0 β v2.5.0
? Choose update action:
βΈ Update Engine (v1.3.0 β v1.3.1)
Update Console (v2.4.0 β v2.5.0)
Update Both
Skip Updates
# After selecting, the CLI will:
β Pulling Docker image: ghcr.io/apito-io/engine:v1.3.1
β Successfully pulled ghcr.io/apito-io/engine:v1.3.1
β Updated engine to v1.3.1
β docker-compose.yml updated
config.yml to downgrade if neededYou can manually set versions in config.yml:
engine_version: v1.2.0 # Downgrade to specific version
console_version: latest # Use latest tag
Then regenerate docker-compose.yml:
apito init # Will respect your manual version settings
Permission Denied Error:
# The installer will automatically handle permissions
# If you encounter issues, run with sudo:
sudo ./install.sh
Docker Not Available:
# Check Docker installation
docker --version
# Check Docker Compose
docker compose version
# Check Docker daemon status
docker info
# Install Docker if needed:
# macOS: https://docs.docker.com/desktop/install/mac-install/
# Linux: https://docs.docker.com/engine/install/
Database Connection Issues:
# Check database container status
docker ps | grep apito
# View database logs using the new logs command
apito logs --db system --tail 20
apito logs --db project --follow
# View database logs directly (alternative)
docker logs apito-system-postgres
# Check volume persistence
docker volume ls | grep apito
# Restart database service
apito restart --db system
Project Not Found:
# List all projects to see available ones
apito list
# Create a new project if needed
apito create project -n my-new-project
Engine or Console Wonβt Start:
# Check if services are running and view logs
apito status
# Stop services
apito stop
# Then try running again
apito start
Configuration Overwrite Issues:
# The CLI now asks for confirmation before overwriting
# If you need to reset configuration:
rm ~/.apito/bin/.env
apito init
Logs and Monitoring Issues:
# Check if database containers are running
apito status
# View real-time database logs
apito logs --db system --follow
apito logs --db project --follow
# View last N lines of logs
apito logs --db system --tail 50
apito logs --db project --tail 50
# Check service logs
apito logs engine --tail 100
apito logs console --follow
# If logs command fails, check container status
docker ps --filter "name=apito-"
Volume Management:
# List all apito volumes
docker volume ls | grep apito
# Backup a specific database volume
docker run --rm -v apito-system-postgres_data:/data -v $(pwd):/backup alpine tar czf /backup/postgres_backup.tar.gz -C /data .
# Remove a specific database volume (after stopping container)
docker volume rm apito-system-postgres_data
Plugin Management Issues:
# Plugin configuration issues
apito config get # Check CLI configuration
apito account list # List all accounts
apito config init # Reconfigure CLI settings
# Plugin deployment failures
apito plugin list # Check server connectivity
apito plugin status <plugin-id> # Check specific plugin status
# Account-related issues
apito account create <name> # Create new account
apito account test <name> # Test account connection
apito account select <name> # Set default account
# Set account configuration (multiple methods)
apito config set -a <name> url <url> # Using -a flag (recommended)
apito config set -a <name> key <key> # Using -a flag (recommended)
apito config set url <url> # Interactive selection
apito config set key <key> # Interactive selection
apito config set account <name> url <url> # Traditional syntax
apito config set <name> key <key> # Traditional syntax
# Plugin server connection issues
curl -H "Authorization: Bearer <sync-key>" \
https://your-server.com/plugin/v2/health
# Check plugin configuration file
cat hc-your-plugin/config.yml # Validate YAML syntax
Plugin Development Issues:
# Plugin creation failures
apito plugin create # Try creating new scaffold
# Build environment issues
apito plugin env # Check available build tools
# Build issues (for Go plugins)
cd hc-your-plugin
apito plugin build # Use CLI build system (interactive)
# Non-interactive build for automation/CI:
apito plugin build --build system --platform linux --arch amd64 --type production
# Alternative manual build:
go mod tidy # Fix dependencies
go build -o hc-your-plugin . # Test local build
# Build issues (for JavaScript plugins)
cd hc-your-plugin-js
npm install # Install dependencies manually
node --check index.js # Check syntax
apito plugin build # Use CLI build system (interactive)
apito plugin build --build system # Non-interactive: use system Node.js
# Build issues (for Python plugins)
cd hc-your-plugin-py
pip3 install -r requirements.txt # Install dependencies manually
python3 -m py_compile main.py # Check syntax
apito plugin build # Use CLI build system (interactive)
apito plugin build --build docker # Non-interactive: force Docker build
# Docker build issues
docker --version # Check Docker availability
apito plugin build # Interactive: select system build if Docker fails
apito plugin build --build system # Non-interactive: force system build
# Plugin deployment authentication
apito config set cloud_sync_key <your-key> # Update auth key
apito config set server_url <your-url> # Update server URL
Plugin Runtime Issues:
# Plugin not starting
apito plugin restart <plugin-id> # Restart plugin
apito plugin status <plugin-id> # Check error messages
# Plugin performance issues
apito plugin stop <plugin-id> # Stop plugin
apito plugin start <plugin-id> # Start plugin fresh
# Account switching for different environments
apito account test staging # Test staging account first
apito plugin deploy --account staging # Deploy to staging (requires confirmation)
apito plugin deploy -a production # Deploy to production (requires confirmation)
# Or switch default account
apito account select staging # Switch to staging account
apito plugin deploy # Deploy to staging (uses default, requires confirmation)
apito account select production # Switch back to production
apito plugin deploy # Deploy to production (uses default, requires confirmation)
# Plugin logs (server-side)
# Check your Apito server logs for plugin-specific errors
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Happy coding with Apito! π