Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

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érequisMinimumNotes
Docker20.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 disque100 MoPlus le stockage pour les builds téléversés

Méthode 1 : Docker (Recommandé)

Télécharger et exécuter l'image officielle :

bash
docker run -d \
  --name fenfa \
  -p 8000:8000 \
  fenfa/fenfa:latest

Visitez 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 :

bash
docker run -d \
  --name fenfa \
  --restart=unless-stopped \
  -p 8000:8000 \
  -v ./data:/data \
  -v ./uploads:/app/uploads \
  fenfa/fenfa:latest

Avec configuration personnalisée

Montez un fichier config.json pour un contrôle total sur tous les paramètres :

bash
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:latest

Consultez la Référence de configuration pour toutes les options disponibles.

Variables d'environnement

Remplacez les valeurs de configuration sans fichier de configuration :

bash
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
VariableDescriptionDéfaut
FENFA_PORTPort HTTP8000
FENFA_DATA_DIRRépertoire de base de donnéesdata
FENFA_PRIMARY_DOMAINURL de domaine publichttp://localhost:8000
FENFA_ADMIN_TOKENJeton d'administrationdev-admin-token
FENFA_UPLOAD_TOKENJeton de téléversementdev-upload-token

Méthode 2 : Docker Compose

Créez un fichier docker-compose.yml :

yaml
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/uploads

Démarrez le service :

bash
docker compose up -d

Méthode 3 : Compiler depuis les sources

Clonez le dépôt :

bash
git clone https://github.com/openprx/fenfa.git
cd fenfa

Avec Make

Le Makefile automatise la compilation complète :

bash
make build   # compile le frontend + backend
make run     # démarre le serveur

Compilation manuelle

Compilez d'abord les applications frontend, puis le backend Go :

bash
# 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/server

Le 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

bash
./fenfa

Fenfa 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é :

bash
curl http://localhost:8000/healthz

Réponse attendue :

json
{"ok": true}

Étapes suivantes

Released under the Apache-2.0 License.