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/README.md
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

2.2 KiB

AutoDeployer

Piattaforma di deployment self-hosted per gestire i servizi Docker con integrazione Gitea, Traefik, e monitoring in tempo reale.

Feature

  • 🔗 Integrazione Gitea — ogni repo = un servizio, deploy automatico via webhook
  • 🚀 Auto-Deploy — webhook push → build → deploy automatico
  • 🐳 Dockerfile Build — supporto per path e context personalizzati
  • 🏷️ Traefik Labels — gestione visuale con preview dei label
  • 📋 Log Viewer — streaming real-time via WebSocket
  • 🔐 Variabili d'Ambiente — build-time e runtime, con supporto secret
  • Zero-Downtime Deploy — health check + switch traffico senza interruzioni
  • 🔔 Notifiche Telegram — notifiche deploy su Telegram
  • 📊 Monitoring — CPU, RAM, Network in tempo reale con storico su InfluxDB
  • 💻 Web Terminal — shell interattiva nei container dal browser
  • 🛡️ Docker Networks — gestione reti Docker dall'interfaccia

Setup Rapido

# 1. Copia .env
cp .env.example .env

# 2. Configura le variabili in .env
#    - JWT_SECRET (genera con: openssl rand -hex 64)
#    - WEBHOOK_SECRET
#    - GITEA_TOKEN
#    - TELEGRAM_BOT_TOKEN e TELEGRAM_CHAT_ID
#    - INFLUXDB_TOKEN
#    - DEPLOY_DOMAIN

# 3. Build e avvia
docker compose up -d --build

# 4. Apri https://deploy.tuodominio.com
#    Al primo accesso, crea l'account admin

Architettura

  • Backend: Node.js + Express + SQLite + BullMQ
  • Frontend: React + Vite (servito dallo stesso container)
  • Build Queue: BullMQ su Redis esistente (DB 2)
  • Monitoring: InfluxDB per metriche storiche
  • Container: Singolo container con accesso al Docker socket

Reti Docker

  • meb-public — Traefik, Gitea, AutoDeployer
  • meb-private — Redis, PostgreSQL, InfluxDB, servizi interni

Webhook

Ogni servizio genera un URL webhook univoco. Configura il webhook nel repository Gitea:

  1. Gitea → Settings → Webhooks → Add Webhook
  2. Target URL: http://autodeployer:3000/api/webhooks/{webhook-id}
  3. Secret: il WEBHOOK_SECRET del .env
  4. Trigger: Push Events

Nota: Usa l'URL interno Docker (http://autodeployer:3000) per evitare il passaggio da Cloudflare.