forgejo

Infrastructure Git Souveraine (Forgejo)

Cette documentation détaille l'architecture distribuée de Forgejo pour l'écosystème Rustlets.

1. Architecture Globale

L'infrastructure repose sur un modèle **Hub & Spoke** (Cerveau & Antennes) pour garantir la disponibilité même en cas de crash du processeur i9 local ou de perte de connexion résidentielle.

### Instances Actives

:--------------------:-----------------------------------------------------------:----------------:--------------
**MASTER (Central)**[https://git.rustlets.com](https://git.rustlets.com)online1 (Cloud)**PostgreSQL**
**STATION 2 (Local)**[https://git2.rustlets.com](https://git2.rustlets.com)Server2 (i9)SQLite
**STATION 3 (Home)**[https://git3.rustlets.com](https://git3.rustlets.com)Server3 (Linstor)SQLite
**MACBOOK (Mobile)**[https://git-mac.rustlets.com](https://git-mac.rustlets.com)MacBook-DLSQLite

2. CI/CD et Automatisation (Forgejo Actions)

L'écosystème utilise **Forgejo Actions** pour automatiser la génération des releases et l'application des patchs.

### Runner de Build

- **Station** : Server 3 (S3).

- **Service** : `act_runner` (Forgejo Runner).

- **Rôle** : Déporte la charge de compilation et de build hors du Server 2 (i9) pour préserver sa stabilité thermique.

### Pipeline de Release (`opencode-pipeline`)

Le dépôt centralise la logique de construction :

1. **Extraction** : Récupère le code depuis le dépôt officiel.

2. **Mutation** : Applique les "rustlets-editions" (Logo, Prompts, Path Patches).

3. **Build** : Compilation via Bun/Rust.

4. **Déploiement** : Mise à jour automatique du dossier `RELEASE/opencode`.

3. Utilisation et Développement Parallèle

### Ajout d'un nouveau projet (Workflow recommandé)

1. **Créer le dépôt sur le Master** : Allez sur [https://git.rustlets.com](https://git.rustlets.com) et créez un nouveau dépôt.

2. **Clonage local** : Clonez-le sur votre station de travail (Server2 ou MacBook).

3. **Miroir de secours (Optionnel)** :

- Allez dans les paramètres du dépôt sur le Master.

- Activez le **Miroir Push** vers `git2.rustlets.com` ou `git3.rustlets.com`.

- Cela garantit que votre code est physiquement présent sur vos machines locales en temps réel.

### Synchronisation des gros fichiers (Git LFS)

Git LFS est installé sur toutes les stations pour gérer les artéfacts et les binaires volumineux sans saturer la base de données.

4. Maintenance et Ports Dédiés

:----------------:---------------:--------------:---------
**HTTP (Nginx)**230003300043000
**SSH (Forgejo)**222223222242222

### Réinitialiser l'accès Admin

ssh rc "echo $SUDO_PASSWORD | sudo -S -u leblondx /opt/RUSTLETS/FORGEJO/bin/forgejo admin user upsert --admin --username leblondx --email leblondx@proton.me --password VOTRE_PASS"

_Dernière mise à jour : 11 Mars 2026_

← index