Overview
Docker Compose provides declarative configuration and easier management of Antigravity Manager containers. This method is ideal for persistent deployments on servers and NAS devices.
Prerequisites
Docker Engine 20.10+
Docker Compose V2 (or docker-compose 1.29+)
1GB RAM recommended
Port 8045 available
Quick Start
Step 1: Get the Configuration
Clone Repository
Download Compose File
git clone https://github.com/lbjlaq/Antigravity-Manager.git
cd Antigravity-Manager/docker
mkdir -p antigravity-manager
cd antigravity-manager
curl -O https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/docker/docker-compose.yml
Create a .env file in the same directory:
# API Authentication
API_KEY = sk-your-secure-api-key-here
# Web UI Password (optional, defaults to API_KEY if not set)
WEB_PASSWORD = your-admin-password
# Logging
LOG_LEVEL = info
# Network Binding (true = localhost only, false = all interfaces)
ABV_BIND_LOCAL_ONLY = false
Security : Generate strong, unique values for API_KEY and WEB_PASSWORD. Never commit .env to version control.
Step 3: Start Services
Step 4: Verify Installation
# Check container status
docker compose ps
# View logs
docker compose logs -f
# Test health endpoint
curl http://localhost:8045/health
Docker Compose Configuration
Basic Configuration
services :
antigravity-manager :
build :
context : ..
dockerfile : docker/Dockerfile
image : lbjlaq/antigravity-manager
container_name : antigravity-manager
network_mode : host # Direct localhost access
volumes :
- ~/.antigravity_tools:/root/.antigravity_tools
environment :
- LOG_LEVEL=${LOG_LEVEL:-info}
- API_KEY=${API_KEY:-test}
- ABV_BIND_LOCAL_ONLY=${ABV_BIND_LOCAL_ONLY:-true}
restart : unless-stopped
Advanced Configuration
docker-compose.advanced.yml
services :
antigravity-manager :
image : lbjlaq/antigravity-manager:latest
container_name : antigravity-manager
# Use bridge network with port mapping (works on all platforms)
ports :
- "8045:8045"
volumes :
- antigravity-data:/root/.antigravity_tools
# Optional: custom configuration
- ./custom-config.json:/root/.antigravity_tools/gui_config.json:ro
environment :
# Authentication
- API_KEY=${API_KEY}
- WEB_PASSWORD=${WEB_PASSWORD}
- AUTH_MODE=AllExceptHealth
# Performance
- ABV_MAX_BODY_SIZE=104857600 # 100MB
# Network
- ABV_BIND_LOCAL_ONLY=false
- ABV_PUBLIC_URL=https://antigravity.example.com
# Logging
- LOG_LEVEL=debug
- RUST_LOG=info
# Resource limits
deploy :
resources :
limits :
cpus : '2'
memory : 1G
reservations :
memory : 256M
# Health check
healthcheck :
test : [ "CMD" , "curl" , "-f" , "http://localhost:8045/health" ]
interval : 30s
timeout : 10s
retries : 3
start_period : 10s
restart : unless-stopped
# Logging
logging :
driver : "json-file"
options :
max-size : "10m"
max-file : "3"
volumes :
antigravity-data :
driver : local
Environment Variables
API key for authenticating AI requests. Default in compose : test (change this!)
Separate password for Web UI login. Falls back to API_KEY if not set.
Options: debug, info, warn, error
In host network mode, binds to 127.0.0.1 if true, 0.0.0.0 if false.
ABV_MAX_BODY_SIZE
integer
default: "104857600"
Maximum request size in bytes (default: 100MB)
Public URL for OAuth callbacks (e.g., behind reverse proxy)
AUTH_MODE
string
default: "AllExceptHealth"
Authentication mode: Off, Strict, AllExceptHealth, Auto
Network Modes
Best for : Direct localhost access, minimal overheadservices :
antigravity-manager :
network_mode : host
environment :
- ABV_BIND_LOCAL_ONLY=true
Host network mode doesn’t work on macOS/Windows Docker Desktop.
Access at: http://localhost:8045 Best for : Cross-platform compatibility, custom portsservices :
antigravity-manager :
ports :
- "8045:8045" # or "3000:8045" for custom port
environment :
- ABV_BIND_LOCAL_ONLY=false
Access at: http://localhost:8045 Best for : Multi-container setups, service isolationservices :
antigravity-manager :
networks :
- antigravity-net
ports :
- "8045:8045"
networks :
antigravity-net :
driver : bridge
Volume Management
Named Volume (Recommended)
services :
antigravity-manager :
volumes :
- antigravity-data:/root/.antigravity_tools
volumes :
antigravity-data :
driver : local
Benefits:
Docker-managed lifecycle
Easy backup/restore
Platform-independent
Bind Mount
services :
antigravity-manager :
volumes :
- ~/.antigravity_tools:/root/.antigravity_tools
# Windows: C:\Users\YourName\.antigravity_tools:/root/.antigravity_tools
Benefits:
Direct file access
Easy manual editing
Shared across containers
Managing Services
Start
Stop
Logs
Restart
Update
# Start in background
docker compose up -d
# Start with rebuild
docker compose up -d --build
Health Checks
Add health checks to monitor service availability:
services :
antigravity-manager :
healthcheck :
test : [ "CMD" , "curl" , "-f" , "http://localhost:8045/health" ]
interval : 30s
timeout : 10s
retries : 3
start_period : 10s
Check health status:
Multi-Service Example
Deploy with Nginx reverse proxy:
services :
antigravity-manager :
image : lbjlaq/antigravity-manager:latest
container_name : antigravity
networks :
- app-network
volumes :
- antigravity-data:/root/.antigravity_tools
environment :
- API_KEY=${API_KEY}
- WEB_PASSWORD=${WEB_PASSWORD}
- ABV_BIND_LOCAL_ONLY=false
- ABV_PUBLIC_URL=https://antigravity.example.com
restart : unless-stopped
nginx :
image : nginx:alpine
container_name : nginx-proxy
networks :
- app-network
ports :
- "80:80"
- "443:443"
volumes :
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on :
- antigravity-manager
restart : unless-stopped
networks :
app-network :
driver : bridge
volumes :
antigravity-data :
driver : local
Backup and Restore
Backup Data
# Named volume backup
docker run --rm \
-v antigravity-data:/data \
-v $( pwd ) :/backup \
alpine tar czf /backup/antigravity-backup- $( date +%Y%m%d ) .tar.gz -C /data .
# Bind mount backup
tar czf antigravity-backup- $( date +%Y%m%d ) .tar.gz ~/.antigravity_tools
Restore Data
# Named volume restore
docker run --rm \
-v antigravity-data:/data \
-v $( pwd ) :/backup \
alpine tar xzf /backup/antigravity-backup-20260303.tar.gz -C /data
# Bind mount restore
tar xzf antigravity-backup-20260303.tar.gz -C ~/
Local Development Build
For local development with pre-built frontend:
docker-compose.localdist.yml
services :
antigravity-manager :
build :
context : ..
dockerfile : docker/Dockerfile.localdist
args :
USE_MIRROR : auto
image : antigravity-manager:dev
# ... rest of config
Build and run:
# Build frontend locally first
npm ci --legacy-peer-deps
npm run build
# Build and start container
docker compose -f docker-compose.yml -f docker-compose.localdist.yml up -d --build
Troubleshooting
Change the host port mapping: ports :
- "3000:8045" # Use port 3000 instead
Permission denied on volume mount
Fix permissions: sudo chown -R $USER : $USER ~/.antigravity_tools
chmod -R 755 ~/.antigravity_tools
Cannot access from other devices on network
Ensure:
Using bridge network mode (not host)
ABV_BIND_LOCAL_ONLY=false
Firewall allows port 8045
Access via host IP: http://192.168.x.x:8045
Container keeps restarting
Check logs: docker compose logs --tail=50 antigravity-manager
Disable restart to debug:
Next Steps
Headless Mode Features Learn about headless-specific configuration options
Reverse Proxy Setup Add HTTPS and custom domain with Nginx/Caddy
API Integration Connect Claude CLI, OpenCode, and other clients
Monitoring Set up logging and monitoring for production