Installation
Fenfa prend en charge deux méthodes d'installation : Docker (recommandé) et la compilation depuis les sources.
Recommandé
Docker est le moyen le plus rapide de démarrer. Une seule commande vous donne une instance Fenfa entièrement fonctionnelle sans outils de compilation nécessaires.
Prérequis
| Prérequis | Minimum | Notes |
|---|---|---|
| Docker | 20.10+ | Ou Podman 3.0+ |
| Go (compilation depuis les sources uniquement) | 1.25+ | Non nécessaire pour Docker |
| Node.js (compilation depuis les sources uniquement) | 20+ | Pour compiler le frontend |
| Espace disque | 100 Mo | Plus le stockage pour les builds téléversés |
Méthode 1 : Docker (Recommandé)
Télécharger et exécuter l'image officielle :
docker run -d \
--name fenfa \
-p 8000:8000 \
fenfa/fenfa:latestVisitez http://localhost:8000/admin et connectez-vous avec le jeton par défaut dev-admin-token.
Sécurité
Les jetons par défaut sont uniquement pour le développement. Consultez Déploiement en production pour configurer des jetons sécurisés avant d'exposer Fenfa sur Internet.
Avec stockage persistant
Montez des volumes pour la base de données et les fichiers téléversés :
docker run -d \
--name fenfa \
--restart=unless-stopped \
-p 8000:8000 \
-v ./data:/data \
-v ./uploads:/app/uploads \
fenfa/fenfa:latestAvec configuration personnalisée
Montez un fichier config.json pour un contrôle total sur tous les paramètres :
docker run -d \
--name fenfa \
--restart=unless-stopped \
-p 8000:8000 \
-v ./data:/data \
-v ./uploads:/app/uploads \
-v ./config.json:/app/config.json:ro \
fenfa/fenfa:latestConsultez la Référence de configuration pour toutes les options disponibles.
Variables d'environnement
Remplacez les valeurs de configuration sans fichier de configuration :
docker run -d \
--name fenfa \
-p 8000:8000 \
-e FENFA_ADMIN_TOKEN=your-secret-admin-token \
-e FENFA_UPLOAD_TOKEN=your-secret-upload-token \
-e FENFA_PRIMARY_DOMAIN=https://dist.example.com \
-v ./data:/data \
-v ./uploads:/app/uploads \
fenfa/fenfa:latest| Variable | Description | Défaut |
|---|---|---|
FENFA_PORT | Port HTTP | 8000 |
FENFA_DATA_DIR | Répertoire de base de données | data |
FENFA_PRIMARY_DOMAIN | URL de domaine public | http://localhost:8000 |
FENFA_ADMIN_TOKEN | Jeton d'administration | dev-admin-token |
FENFA_UPLOAD_TOKEN | Jeton de téléversement | dev-upload-token |
Méthode 2 : Docker Compose
Créez un fichier docker-compose.yml :
version: "3.8"
services:
fenfa:
image: fenfa/fenfa:latest
container_name: fenfa
restart: unless-stopped
ports:
- "8000:8000"
environment:
FENFA_ADMIN_TOKEN: your-secret-admin-token
FENFA_UPLOAD_TOKEN: your-secret-upload-token
FENFA_PRIMARY_DOMAIN: https://dist.example.com
volumes:
- ./data:/data
- ./uploads:/app/uploadsDémarrez le service :
docker compose up -dMéthode 3 : Compiler depuis les sources
Clonez le dépôt :
git clone https://github.com/openprx/fenfa.git
cd fenfaAvec Make
Le Makefile automatise la compilation complète :
make build # compile le frontend + backend
make run # démarre le serveurCompilation manuelle
Compilez d'abord les applications frontend, puis le backend Go :
# Compiler la page de téléchargement publique
cd web/front && npm ci && npm run build && cd ../..
# Compiler le panneau d'administration
cd web/admin && npm ci && npm run build && cd ../..
# Compiler le binaire Go
go build -o fenfa ./cmd/serverLe frontend est compilé dans internal/web/dist/ et intégré dans le binaire Go via go:embed. Le binaire fenfa résultant est entièrement autonome.
Exécuter le binaire
./fenfaFenfa démarre sur le port 8000 par défaut. La base de données SQLite est créée automatiquement dans le répertoire data/.
Vérifier l'installation
Ouvrez votre navigateur à http://localhost:8000/admin et connectez-vous avec le jeton d'administration. Vous devriez voir le tableau de bord d'administration.
Vérifiez l'endpoint de santé :
curl http://localhost:8000/healthzRéponse attendue :
{"ok": true}Étapes suivantes
- Démarrage rapide -- Téléversez votre premier build en 5 minutes
- Référence de configuration -- Toutes les options de configuration
- Déploiement Docker -- Docker Compose et builds multi-architecture