Files
server-manager/.drone.yml
Ernie Butcher 4233734759
All checks were successful
continuous-integration/drone/push Build is passing
feat: live Docker data — containers, services, logs, metrics via dockerode
- Backend: rewrote containers/services/logs/metrics routes to use dockerode
- docker-compose: mount /var/run/docker.sock, run backend as root
- .drone.yml: sync docker-compose.yml from Gitea on deploy
- Frontend: Containers page shows real data with wired start/stop/restart
- Frontend: Services page shows Docker Compose stacks with health status
- Frontend: Metrics page adds disk (docker df) and containers cards + chart legend
- Frontend: Logs page replaces text input with container dropdown + auto-refresh
2026-03-18 18:33:25 -04:00

119 lines
2.9 KiB
YAML

kind: pipeline
type: docker
name: server-manager
trigger:
branch:
- main
event:
- push
- pull_request
steps:
# ─── Backend ───────────────────────────────────────────────────────────────
- name: backend-lint
image: node:20-alpine
commands:
- cd backend
- npm ci
- npm run lint || true
- name: backend-build
image: node:20-alpine
commands:
- cd backend
- npm ci
- npm run build
depends_on:
- backend-lint
- name: backend-docker
image: plugins/docker
settings:
registry: git.jiosii.com
username:
from_secret: gitea_username
password:
from_secret: gitea_token
repo: git.jiosii.com/ops/server-manager-backend
context: backend
dockerfile: backend/Dockerfile
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
depends_on:
- backend-build
when:
branch:
- main
event:
- push
# ─── Frontend ──────────────────────────────────────────────────────────────
- name: frontend-lint
image: node:20-alpine
commands:
- cd frontend
- npm ci
- npm run lint || true
- name: frontend-build
image: node:20-alpine
commands:
- cd frontend
- npm ci
- npm run build
depends_on:
- frontend-lint
- name: frontend-docker
image: plugins/docker
settings:
registry: git.jiosii.com
username:
from_secret: gitea_username
password:
from_secret: gitea_token
repo: git.jiosii.com/ops/server-manager-frontend
context: frontend
dockerfile: frontend/Dockerfile
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
depends_on:
- frontend-build
when:
branch:
- main
event:
- push
# ─── Deploy ────────────────────────────────────────────────────────────────
- name: deploy
image: appleboy/drone-ssh
environment:
GITEA_TOKEN:
from_secret: gitea_token
settings:
host: 100.116.40.103
username: root
key:
from_secret: ssh_private_key
envs:
- GITEA_TOKEN
port: 22
script:
- cd /opt/server-manager
- curl -sfH "Authorization:token $GITEA_TOKEN" https://git.jiosii.com/api/v1/repos/ops/server-manager/raw/docker-compose.yml -o docker-compose.yml
- docker compose pull
- docker compose up -d --remove-orphans
- docker image prune -f
depends_on:
- backend-docker
- frontend-docker
when:
branch:
- main
event:
- push