Назад к DCK

dck-wings

v0.0.0

Container Management Agent

GitHub

dck-wings — легковесный REST API демон на Go для управления контейнерами через DCK. Работает как systemd-сервис. Используется фронтендами (dck-panel) для создания, запуска, остановки и мониторинга контейнеров по HTTP.

REST API

Полноценный HTTP API для управления контейнерами

Bearer Auth

Авторизация через Bearer token из config.toml

WebSocket Console

Интерактивная консоль через WebSocket

File Manager

CRUD операции с файлами через API

Быстрая установка

terminal
# Одной командой
bash <(curl -sfL https://raw.githubusercontent.com/animesao/dck-wings/main/install.sh)

# Или вручную:
curl -sfL https://github.com/animesao/dck-wings/releases/latest/download/dck-wings-linux-amd64 -o /usr/local/bin/dck-wings
chmod +x /usr/local/bin/dck-wings
dck-wings --install

systemctl enable --now dck-wings

Конфигурация

terminal
# /etc/dck-wings/config.toml
port = 8080
host = "0.0.0.0"
api_key = "your-secret-key"
dck_bin = "/usr/local/bin/dck"
data_dir = "/var/lib/dck-wings"
log_dir = "/var/log/dck-wings"

Файл создаётся автоматически при первом запуске. Обязательно смени api_key!

API Endpoints

MethodEndpointDescription
GET/api/healthHealth check
GET/api/containersList containers (?all=1)
POST/api/containersCreate container
POST/api/containers/:id/startStart container
POST/api/containers/:id/stopStop container
POST/api/containers/:id/restartRestart container
DELETE/api/containers/:idRemove container (?force=1)
GET/api/containers/:id/logsGet logs
GET/api/containers/:id/statsLive stats
POST/api/containers/:id/execExecute command
GET/WS/api/containers/:id/consoleWebSocket console
GET/POST/DELETE/api/containers/:id/files/*File operations
GET/POST/DELETE/api/images*Image management

Создание контейнера

terminal
curl -H "Authorization: Bearer <api_key>" \
  -X POST http://localhost:8080/api/containers \
  -d '{
    "image": "nginx:alpine",
    "name": "web",
    "ports": ["80:80"],
    "volumes": ["./html:/usr/share/nginx/html"],
    "env": ["FOO=bar"],
    "detach": true,
    "memory": "512m",
    "cpus": 1.0
  }'

Интеграция с dck-panel

terminal
# Добавить в .env dck-panel:
DECK_WINGS_API_KEY=your-key
DECK_WINGS_URL=http://<vds-ip>:8080

# После перезапуска панель будет
# использовать dck-wings для
# управления контейнерами на
# удалённом сервере

Go 1.26+

Написан на Go, статический бинарник

Bearer Token

API защищён токеном из конфига

Systemd сервис

Автозапуск через systemd, restart always

Все релизы →

История версий dck-wings, changelog и загрузки