Add comprehensive documentation suite for AgentHub Phase 1: - ARCHITECTURE.md: Technical architecture, data model, tech stack rationale, security model, deployment topology, scalability considerations - API.md: Complete REST & WebSocket API reference with authentication flow, endpoints, events, error handling, rate limits, SDK examples - DEPLOYMENT.md: Deployment guide covering local dev, Phase 1 LAN, Phase 2 Coolify with environment setup, verification procedures, troubleshooting - GIT-HOSTING-GUIDE.md: Comparison of GitHub vs Forgejo for Barodine - FORGEJO-INSTALL.md: Forgejo installation via Coolify - FORGEJO-MANUAL-STEPS.md: Detailed manual steps for Forgejo setup Update README.md with documentation index linking to all guides. Closes BARAAA-56 (Documentation complète AgentHub Phase 1). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8.3 KiB
8.3 KiB
Installation Forgejo sur 192.168.9.25
Guide complet pour installer Forgejo (Git self-hosted) sur le serveur Coolify.
Méthode 1: Installation via Coolify (Recommandée)
Prérequis
- ✅ Base de données PostgreSQL créée (UUID:
rffv6pfwpdftlhunzoishduj) - Accès à Coolify: https://coolify.barodine.net
Étapes
1. Créer le service Forgejo dans Coolify
- Ouvrir Coolify: https://coolify.barodine.net
- Aller dans le projet "Barodine IA"
- Cliquer sur "+ New Resource" → "Service" → "Docker Image"
2. Configuration du service
Informations de base:
- Name:
forgejo - Image:
codeberg.org/forgejo/forgejo:9 - Port:
3000
Domain:
- FQDN:
git.barodine.net(ou autre domaine souhaité) - Enable HTTPS: ✅ Oui
Volumes (Storage): Ajouter un volume persistant:
- Source:
/var/lib/forgejo - Destination:
/data
3. Variables d'environnement
Ajouter ces variables dans l'onglet "Environment Variables":
# Base de données
FORGEJO__database__DB_TYPE=postgres
FORGEJO__database__HOST=rffv6pfwpdftlhunzoishduj:5432
FORGEJO__database__NAME=postgres
FORGEJO__database__USER=postgres
FORGEJO__database__PASSWD=UpW5nyYcNSy88bQiNppIRdFKrtul2Bu4hXzxitzcB4IHU9sAzGc2mkndvKdA1J42
# Configuration serveur
FORGEJO__server__DOMAIN=git.barodine.net
FORGEJO__server__ROOT_URL=https://git.barodine.net
FORGEJO__server__HTTP_PORT=3000
FORGEJO__server__PROTOCOL=http
FORGEJO__server__START_SSH_SERVER=true
FORGEJO__server__SSH_PORT=2222
FORGEJO__server__SSH_LISTEN_PORT=22
# Sécurité
FORGEJO__security__INSTALL_LOCK=false
FORGEJO__security__SECRET_KEY=changeme-generate-random-secret-key-here
# Service
FORGEJO__service__DISABLE_REGISTRATION=false
FORGEJO__service__REQUIRE_SIGNIN_VIEW=false
FORGEJO__service__ENABLE_NOTIFY_MAIL=false
# Session
FORGEJO__session__PROVIDER=memory
4. Déployer
- Cliquer sur "Deploy"
- Attendre que le service démarre (~1-2 minutes)
- Vérifier les logs dans l'onglet "Logs"
5. Configuration initiale de Forgejo
- Ouvrir https://git.barodine.net
- Vous serez redirigé vers la page d'installation
- Les paramètres DB sont déjà configurés via les env vars
- Configurer:
- Site Title: Barodine Git
- Admin Username: admin (ou votre choix)
- Admin Password: (choisir un mot de passe fort)
- Admin Email: votre email
- Cliquer sur "Install Forgejo"
6. Activer SSH (optionnel)
Pour cloner/pousser via SSH:
- Dans Coolify, aller dans "Forgejo" → "Networking"
- Ajouter un "TCP Port Mapping":
- Host Port:
2222 - Container Port:
22
- Host Port:
- Redémarrer le service
Cloner via SSH deviendra:
git clone ssh://git@git.barodine.net:2222/username/repo.git
Méthode 2: Installation via Docker Compose (Alternative)
Si vous préférez une installation Docker Compose manuelle:
1. Se connecter au serveur
ssh user@192.168.9.25
2. Créer le répertoire de données
sudo mkdir -p /var/lib/forgejo
sudo chown -R 1000:1000 /var/lib/forgejo
3. Créer docker-compose.yml
cat > forgejo-compose.yml <<'EOF'
version: '3'
services:
forgejo:
image: codeberg.org/forgejo/forgejo:9
container_name: forgejo
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=rffv6pfwpdftlhunzoishduj:5432
- FORGEJO__database__NAME=postgres
- FORGEJO__database__USER=postgres
- FORGEJO__database__PASSWD=UpW5nyYcNSy88bQiNppIRdFKrtul2Bu4hXzxitzcB4IHU9sAzGc2mkndvKdA1J42
- FORGEJO__server__DOMAIN=git.barodine.net
- FORGEJO__server__ROOT_URL=https://git.barodine.net
- FORGEJO__server__HTTP_PORT=3000
volumes:
- /var/lib/forgejo:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
networks:
- coolify
labels:
- "traefik.enable=true"
- "traefik.http.routers.forgejo.rule=Host(\`git.barodine.net\`)"
- "traefik.http.routers.forgejo.entrypoints=https"
- "traefik.http.routers.forgejo.tls=true"
- "traefik.http.routers.forgejo.tls.certresolver=letsencrypt"
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
networks:
coolify:
external: true
EOF
4. Démarrer Forgejo
docker compose -f forgejo-compose.yml up -d
5. Vérifier les logs
docker logs -f forgejo
Post-Installation
1. Créer le premier repository (AgentHub)
- Se connecter à Forgejo: https://git.barodine.net
- Cliquer sur "+" → "New Repository"
- Configurer:
- Owner: Votre username
- Repository Name:
agenthub - Visibility: Private (ou Public selon besoin)
- Initialize Repository: ❌ Non (on va pusher le code existant)
- Cliquer sur "Create Repository"
2. Configurer le remote Git local
cd /home/alexandre/.paperclip/instances/default/workspaces/8780faf8-03bb-45e9-989e-167eeb438b58/agenthub
# Supprimer l'ancien remote GitHub
git remote remove origin
# Ajouter le remote Forgejo
git remote add origin https://git.barodine.net/username/agenthub.git
# Pousser le code
git push -u origin main
3. Configurer Coolify pour déployer depuis Forgejo
- Dans Coolify, créer une nouvelle Application
- Source: Git Repository
- Git URL:
https://git.barodine.net/username/agenthub.git - Branch:
main - Build Pack: Dockerfile
- Configurer les variables d'environnement (voir section suivante)
Configuration AgentHub sur Coolify
Variables d'environnement
NODE_ENV=production
HOST=0.0.0.0
PORT=3000
LOG_LEVEL=info
# PostgreSQL (créer une nouvelle DB pour AgentHub)
POSTGRES_HOST=<db_uuid_here>
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<db_password_here>
POSTGRES_DB=postgres
# Sécurité
JWT_SECRET=<générer_un_secret_32_chars>
ALLOWED_ORIGINS=https://agenthub.barodine.net
ENABLE_HSTS=true
# Features
FEATURE_MESSAGING_ENABLED=true
Créer la base de données AgentHub
curl -X POST "$COOLIFY_API_URL/api/v1/databases/postgresql" \
-H "Authorization: Bearer $COOLIFY_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"server_uuid": "gw9o6m2ftfvx7g5guf82nkiq",
"project_uuid": "x9fenmiro11hv1uqij88z88a",
"environment_name": "production",
"name": "agenthub-db",
"description": "PostgreSQL database for AgentHub",
"image": "postgres:16-alpine",
"instant_deploy": true
}'
Webhooks et CI/CD
Activer les webhooks Forgejo → Coolify
- Dans Forgejo, aller dans le repo agenthub → Settings → Webhooks
- Cliquer sur "Add Webhook" → "Forgejo"
- Configurer:
- URL: URL du webhook Coolify (voir dans l'app Coolify)
- HTTP Method: POST
- Content Type: application/json
- Trigger On: Push events
- Sauvegarder
Maintenant, chaque git push déclenchera un rebuild automatique dans Coolify!
Résumé des URLs
| Service | URL | Port |
|---|---|---|
| Forgejo Web | https://git.barodine.net | 443 |
| Forgejo SSH | git.barodine.net | 2222 |
| AgentHub | https://agenthub.barodine.net | 443 |
| AgentHub Metrics | https://agenthub.barodine.net/metrics | 443 |
| Coolify | https://coolify.barodine.net | 443 |
Troubleshooting
Forgejo ne démarre pas
# Vérifier les logs
docker logs forgejo
# Vérifier la connexion DB
docker exec -it forgejo sh
psql "postgres://postgres:PASSWORD@rffv6pfwpdftlhunzoishduj:5432/postgres"
Erreur "database is locked"
- Forgejo utilise SQLite par défaut si la config DB échoue
- Vérifier que toutes les env vars
FORGEJO__database__*sont correctes - Redémarrer le service
SSH ne fonctionne pas
- Vérifier que le port 2222 est mappé dans Coolify
- Vérifier que le firewall autorise le port 2222:
sudo ufw allow 2222/tcp
Prochaines étapes
- ✅ Installer Forgejo via Coolify (Méthode 1)
- ✅ Créer le repository AgentHub
- ✅ Pousser le code depuis le workspace local
- ⏳ Créer la DB PostgreSQL pour AgentHub
- ⏳ Créer l'application AgentHub dans Coolify
- ⏳ Déployer et tester l'endpoint
/metrics - ⏳ Configurer Prometheus et Grafana