Config de Serviço

Cada serviço é um arquivo JSON em data/services/. Exemplo completo:

{
  "name": "redis",
  "group": "database",
  "hostname": "keel-redis",
  "image": "redis:7",
  "network": "keel-net",
  "ports": { "internal": 6379, "external": 6379 },
  "environment": { "REDIS_ARGS": "--maxmemory 256mb" },
  "volumes": ["keel-redis-data:/data"],
  "command": "redis-server --save 60 1",
  "files": ["data/config/redis.conf:/etc/redis/redis.conf"],
  "start_order": 1,
  "ram_estimate_mb": 256,
  "dashboard_url": "http://localhost:8001",
  "health_check": {
    "type": "command",
    "command": "redis-cli ping",
    "interval": 5,
    "retries": 10,
    "start_period": 5
  },
  "logs": [
    { "name": "redis", "type": "docker" },
    { "name": "slow", "type": "file", "path": "/var/log/redis-slow.log", "host_path": "/applog/redis/slow.log" }
  ],
  "dev": {
    "dockerfile": ["FROM redis:7", "WORKDIR /data"],
    "command": ["redis-server", "--loglevel", "debug"]
  }
}

Campos

CampoDescrição
nameIdentificador único do serviço
groupAgrupamento lógico — infra inicia primeiro, depois seeders, depois o resto
hostnameHostname do container Docker
imageImagem Docker name:tag
registryghcr — auto-login com credenciais armazenadas; local — pula pull para imagens buildadas localmente (omita para imagens públicas)
networkRede Docker (padrão: keel-net)
ports{ internal, external } mapeamento de porta principal
extra_portsMapeamentos adicionais { internal, external } de portas
environmentVariáveis de ambiente passadas ao container
volumesMontagens de volume — volumes nomeados, bind mounts ou arquivos de config
commandSobrescrever CMD do container
filesArquivos de config montados como somente leitura no container; sincronizados via scp em targets remotos (local:container)
platformForçar uma plataforma específica para a imagem (ex: linux/amd64) — útil para hosts cross-architecture
start_orderPrioridade de startup (menor = mais cedo, 0 = último)
ram_estimate_mbDica de exibição para o dashboard
dashboard_urlURL externa — mostra um botão ABRIR na UI
health_checkConfig de health check HTTP ou por comando
logsFontes de log — docker ou file com host_path opcional
network_aliasesAliases de rede Docker — habilita resolução de hostname virtual dentro da rede
devConfig de modo desenvolvimento — dockerfile, command, cap_add