skills/FORGE-vps-docker/SKILL.md
Runbook for VPS Docker operations — pinned versions, restart discipline, health checks, compose governance. Lower machine entropy.
npx skillsauth add ariffazil/openclaw-workspace FORGE-vps-dockerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Lower machine entropy = pinned versions + health checks + restart limits + one network one owner.
Primary compose: /root/compose/docker-compose.yml
Individual services may be managed via systemd units with Docker CLI.
arifos_core_network (Docker network)Every image: field in compose files MUST reference a specific tag:
# ✅ GOOD — pinned
image: postgres:16-alpine
image: redis:7-alpine
image: falkordb/falkordb:latest # acceptable for actively-developed
# ❌ BAD — no tag = "latest" drift
image: postgres
image: redis
<major>.<minor> tags over latestdocker images --digests | grep -v "^<none>"# ✅ GOOD — production services
restart: unless-stopped
# ❌ AVOID — masks failure, infinite retries
restart: always
# ❌ AVOID — containers die silently on host reboot
# (no restart policy set)
RestartMaxRetries and RestartSec in systemd for sidecar serviceshealthcheck:
test: ["CMD", "curl", "-f", "http://localhost:<port>/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
HealthCheck or watchdog integrationpostgres :5432 (PostgreSQL 16-alpine, pinned)
redis :6379 (Redis 7-alpine, pinned)
falkordb :6380 (FalkorDB, knowledge graph)
qdrant :6333 (Qdrant vector search)
minio :9000 (MinIO object storage)
searxng :8080 (Self-hosted search)
graphiti-mcp :8000 (Graphiti MCP, Docker-managed)
docker ps --format "table {{.Names}}\t{{.Status}}"
docker inspect <service> --format '{{.State.Health.Status}}'
curl -sf http://localhost:<port>/health
docker logs <service> --tail 100
docker logs -f <service> --tail 50 # live
docker restart <service>
docker stop <service>
# Investigate first. Never restart blindly.
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
docker system df
docker builder prune -f
docker image prune -f
# NEVER: docker system prune -af --volumes (F1 — irreversible!)
docker rm -f <container> # data loss risk!
docker volume rm <volume> # permanent data loss!
docker stop <service> # immediate stop
systemctl stop <service>.service # if systemd-managed
docker logs <service> --tail 200
journalctl -u <service>.service --since '5m ago'
ss -tlnpdocker start <service>
# Or for systemd-managed: systemctl start <service>
docker inspect <service> --format '{{.State.Health.Status}}'
# Must return "healthy", not just "running"
docker diff <container>
docker inspect <container> --format '{{json .Config}}' | python3 -m json.tool
restart: always without limit — infinite restart loopslatest tag in production — version driftdevelopment
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.