Skip to content

Démarrage rapide

Ce guide vous permet d'installer Repod et d'uploader votre premier paquet en moins de 15 minutes.


Prérequis

  • Docker Engine 24.0+ et Docker Compose v2 plugin
  • Git 2.x
  • OpenSSL (pour générer la clé JWT)

Étape 1 — Récupérer le projet

git clone https://github.com/getautoflow/repod.git
cd repod
git clone https://github.com/getautoflow/repod-rpm.git
cd repod-rpm

Étape 2 — Configurer les variables d'environnement

cp .env.example .env
cp backend.env.example backend.env

Générer une clé JWT sécurisée :

openssl rand -hex 32

Générer le hash bcrypt du mot de passe admin :

python3 -c "from passlib.hash import bcrypt; print(bcrypt.hash('VotreMotDePasse!'))"

Éditer backend.env avec les valeurs générées :

backend.env
JWT_SECRET_KEY=<sortie de openssl rand -hex 32>
ADMIN_USERNAME=admin
ADMIN_PASSWORD_HASH=$$2b$$12$$<reste du hash bcrypt>
ENV=production

Échappement du dollar

Dans backend.env, chaque $ d'un hash bcrypt doit être doublé en $$. Exemple : $2b$12$abc…$$2b$$12$$abc…


Étape 3 — Démarrer les services

docker compose up -d --build

Vérifier que les conteneurs tournent :

docker compose ps

Attendre que le backend soit prêt (ClamAV peut prendre jusqu'à 2 min au premier démarrage) :

curl http://localhost:8000/health/live
# Attendu : {"status":"ok"}

Étape 4 — Générer la clé GPG

  1. Ouvrir l'interface : http://localhost:3003
  2. Se connecter avec les identifiants admin configurés
  3. Aller dans Paramètres → GPG
  4. Cliquer Générer une clé GPG

Étape 5 — Uploader un paquet

  1. Aller dans Paquets → Uploader
  2. Sélectionner un fichier .deb
  3. Choisir la distribution (jammy, noble, etc.)
  4. Cliquer Uploader
TOKEN=$(curl -s -X POST http://localhost:8000/auth/token \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"VotreMotDePasse!"}' \
  | jq -r .access_token)

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -F "file=@monpaquet_1.0.0_amd64.deb" \
  -F "distribution=jammy" \
  http://localhost:8000/upload/
TOKEN=$(curl -s -X POST http://localhost:8000/auth/token \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"VotreMotDePasse!"}' \
  | jq -r .access_token)

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -F "[email protected]_64.rpm" \
  -F "distribution=almalinux9" \
  http://localhost:8000/upload/

Étape 6 — Configurer un client

# Importer la clé GPG
curl -fsSL http://VOTRE_HOTE:80/repos/dists/jammy/InRelease \
  | gpg --dearmor \
  | sudo tee /etc/apt/trusted.gpg.d/repod.gpg > /dev/null

# Ajouter la source
echo "deb http://VOTRE_HOTE:80/repos jammy main" \
  | sudo tee /etc/apt/sources.list.d/repod.list

sudo apt update
sudo apt install monpaquet
# Importer la clé GPG
sudo rpm --import http://VOTRE_HOTE:80/repos/gpg.key

# Créer le fichier de dépôt
cat > /etc/yum.repos.d/repod.repo << EOF
[repod]
name=Repod Private Repository
baseurl=http://VOTRE_HOTE:80/repos/almalinux9/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://VOTRE_HOTE:80/repos/gpg.key
EOF

sudo dnf install monpaquet

Étapes suivantes