Description
Phorge est une plateforme de collaboration développeur écrite en PHP, née en 2021 comme fork communautaire de Phabricator. Phabricator était développé depuis 2010 par Evan Priestley (ex-Facebook) et sa société Phacility ; en 2021, Phacility a annoncé la fin du support commercial, poussant la communauté à forker le projet sous le nom Phorge.
Suite applicative complète : Phorge regroupe une dizaine d'applications communiquant entre elles — Differential (code review pré-commit), Diffusion (hébergement Git/Mercurial/SVN), Maniphest (tasks/bugs), Phriction (wiki), Pholio (review de mocks), Ponder (Q&A interne), Calendar, Projects (kanban), Herald (règles d'automatisation), Conduit (API), Legalpad (CLA), Slowvote, Countdown.
Positionnement unique : Phorge fait partie des rares plateformes à offrir un workflow de code review « pre-commit » natif (les revues se font avant le merge), concept popularisé par Facebook et Google. C'est un choix UX très différent de GitHub/GitLab, mais plébiscité par les équipes qui veulent une revue stricte et tracée. Le Arcanist (arc) est l'outil CLI compagnon.
Modèle : 100% Apache 2.0, gouvernance communautaire, très actif (releases mensuelles, mainteneurs internationaux). C'est une alternative crédible à GitLab/Gitea/SourceHut pour les organisations qui veulent une plateforme self-contained sans assemblage de services.
Installation
Via Docker (community-maintained)
# docker-compose.yml
version: "3.8"
services:
phorge:
image: madhaxbeast/phorge:latest
container_name: phorge
restart: unless-stopped
environment:
- MYSQL_HOST=phorge-db
- MYSQL_USER=phorge
- MYSQL_PASSWORD=CHANGEME
- MYSQL_DATABASE=phorge
- PHORGE_URL=https://phorge.example.com
- PHORGE_TITLE=Mon-Phorge
volumes:
- phorge-data:/var/repo
- phorge-files:/var/phorge
ports:
- "8443:443"
depends_on:
- phorge-db
phorge-db:
image: mysql:8.0
container_name: phorge-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=CHANGEME
- MYSQL_USER=phorge
- MYSQL_PASSWORD=CHANGEME
- MYSQL_DATABASE=phorge
volumes:
- phorge-dbdata:/var/lib/mysql
volumes:
phorge-data:
phorge-files:
phorge-dbdata:
Installation manuelle (LAMP)
# Dépendances : PHP 8.1+, MySQL 5.7+/8.0, Apache/Nginx, git/mercurial/subversion git clone https://we.phorge.it/source/phorge.git /var/www/phorge cd /var/www/phorge composer install # Configurer Apache/Nginx, puis visiter https://phorge.example.com # Créer le premier admin via la CLI : ./bin/phorge user create --admin ...
Configuration
PHORGE_URL: URL publique HTTPS — utilisée dans les webhooks, emails, liens de revue.- Stockage repositories : par défaut
/var/repo(volume Docker) — backups critiques avecrsyncouborgbackup(les repos sont le cœur de la plateforme). - UID/GID :
phorge.userdoit avoir les bons droits sur les volumes. - Authentification : LDAP/AD via PhabricatorAuth (legacy mais fonctionnel), ou OAuth/OIDC via [[app-authentik]] / Keycloak.
- Herald : règles d'automatisation (auto-assign, notifications) — à configurer post-installation.
- Backups : dump MySQL + tarball de
/var/repo+/var/phorge(uploads).
Alternatives
- Phabricator (upstream) — L'original, en maintenance. Phorge est le successeur de facto.
- [[app-gitlab]] — Forge complète avec CI/CD intégrée, plus moderne UI mais plus lourde.
- [[app-gitea]] / [[app-forgejo]] — Forges légères, mais workflow de revue post-commit uniquement.
- [[app-sourcehut]] — Suite dev minimaliste SFC, mailing lists natives.
- Gerrit — Code review Java pur (Google), très puissant pour les revues pre-commit à grande échelle.
Sécurité
- HTTPS obligatoire : Phorge manipule du code et des credentials — aucun fallback HTTP en production.
- Updates fréquentes : correctifs réguliers, automatiser via Watchtower ou Renovate.
- SSH pour Git : Phorge expose un démon SSH — durcir avec
AllowUserscôté serveur, désactiver l'auth par mot de passe. - Authentification : activer le 2FA natif (TOTP) pour tous les comptes, et coupler avec un OIDC corporate.
- Audit log : l'application Audit trace toutes les actions sensibles, à consulter régulièrement.
