Назад к DCKGitHub
dck-wings
v0.0.0Container Management Agent
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
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health | Health check |
| GET | /api/containers | List containers (?all=1) |
| POST | /api/containers | Create container |
| POST | /api/containers/:id/start | Start container |
| POST | /api/containers/:id/stop | Stop container |
| POST | /api/containers/:id/restart | Restart container |
| DELETE | /api/containers/:id | Remove container (?force=1) |
| GET | /api/containers/:id/logs | Get logs |
| GET | /api/containers/:id/stats | Live stats |
| POST | /api/containers/:id/exec | Execute command |
| GET/WS | /api/containers/:id/console | WebSocket 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