This repository has been archived on 2026-05-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
autodeployer-old-version/docker-compose.yml
Giuseppe Raffa 87d698bc5c feat: add Docker and Gitea services, monitoring, queue, and Telegram notification functionalities
- Implemented Docker operations including image building, container management, and resource stats.
- Added Gitea API client for repository management and webhook handling.
- Introduced monitoring service to collect and store container metrics in InfluxDB.
- Created a queue system using BullMQ for managing deployment jobs with real-time log streaming.
- Developed Telegram notification service for deployment status updates.
- Added Traefik label generation for dynamic reverse proxy configuration.
- Implemented WebSocket endpoints for log streaming and terminal access to containers.
- Created an updater sidecar for self-updating the AutoDeployer container.
2026-04-13 23:23:18 +02:00

67 lines
1.9 KiB
YAML

version: "3.8"
services:
autodeployer:
build:
context: .
dockerfile: Dockerfile
container_name: autodeployer
restart: unless-stopped
environment:
- NODE_ENV=production
- PORT=3000
- JWT_SECRET=${JWT_SECRET}
- ADMIN_PASSWORD_HASH=${ADMIN_PASSWORD_HASH}
- REDIS_URL=redis://redis:6379/2
- GITEA_URL=http://gitea:3000
- GITEA_TOKEN=${GITEA_TOKEN}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}
- INFLUXDB_URL=${INFLUXDB_URL:-http://influxdb:8086}
- INFLUXDB_TOKEN=${INFLUXDB_TOKEN}
- INFLUXDB_ORG=${INFLUXDB_ORG:-autodeployer}
- INFLUXDB_BUCKET=${INFLUXDB_BUCKET:-metrics}
- DEPLOY_DOMAIN=${DEPLOY_DOMAIN:-deploy.mebboat.it}
- WEBHOOK_SECRET=${WEBHOOK_SECRET}
- UPDATE_SECRET=${UPDATE_SECRET:-}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- autodeployer-data:/app/data
- autodeployer-builds:/tmp/builds
- updater-trigger:/app/trigger
labels:
- "traefik.enable=true"
- "traefik.http.routers.autodeployer.rule=Host(`${DEPLOY_DOMAIN:-deploy.mebboat.it}`)"
- "traefik.http.routers.autodeployer.entrypoints=websecure"
- "traefik.http.routers.autodeployer.tls.certresolver=cloudflare"
- "traefik.http.services.autodeployer.loadbalancer.server.port=3000"
- "traefik.docker.network=meb-public"
networks:
- meb-public
- meb-private
depends_on: []
updater:
build:
context: ./updater
dockerfile: Dockerfile
container_name: autodeployer-updater
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- .:/project:ro
- updater-trigger:/trigger
working_dir: /project
networks: []
volumes:
autodeployer-data:
autodeployer-builds:
updater-trigger:
networks:
meb-public:
external: true
meb-private:
external: true