Privateer est une application de gestions d'évènements CTF réalisée dans le cadre du projet pilote en réalisation conjointe pour les cours INFM5151 et INF6150 à l'UQAM, session Automne 2025.
Le but de l'application est d'offrir simultanément une interface web moderne pour la gestion de l'évènement et pour les participants, tout en proposant des conventions permettant de gérer les instances des challenges.
Le backend est conçu via FastAPI avec un serveur de base de données PostGreSQL (v18).
Le frontend est conçu comme une application SPA avec Vue.js en Typescript et Tailwind.
Prérequis : une installation Docker et docker compose + support host.docker.internal.
- Variables d'environnement (optionnel)
Il faut d'abord créer un fichier .env avec les variables d'environnement nécessaire. (voir le fichier .env.example)
- Gestion des certificats SSL
Privateer est configuré pour fonctionner avec SSL même en développement. Pour générer les certificats SSL racine locaux Privateer utilise mkcert. Un script est fourni dans ou make certs-install permet d'installer les certificats.
Il faut ensuite installer le certificat racine dans ton navigateur de développement. Les instructions diffèrent par navigateur, et parfois par système d'exploitation.
2.b) Initialisation des données
Des scripts permettent de générer un jeu de données minimales pour démo ou développement local. Les commandes dans le Makefile permettent de
- seed: insertion simple sans validation des données. Attention, des doublons pourraient être créés
- truncate: destruction simple de toutes les données dans la base de données, via TRUNCATE TABLE
- regenerate: truncate + seed
- Démarrer l'application — deux options
Option A — Avec le Makefile (recommandé)
Depuis la racine du projet, le Makefile propose des cibles pratiques :
# Démarrer les services en arrière-plan et reconstruire si nécessaire
make up
# Arrêter les services
make down
# Voir les logs
make logs
# Lancer les tests backend via compose
make test-api
# Lancer les tests frontends via compose
make test-frontendOption B — Utiliser directement docker compose
Si tu préfères lancer docker compose directement :
docker compose -f compose.yaml --profile dev up -d --build
# Arrêter
docker compose -f compose.yaml downNote : le Makefile utilise docker compose --profile dev pour les commandes up/restart.
- Accès
- Frontend : https://privateer.localhost
- API : https://privateer.localhost/api
- Andres Sanabria
- Arthure Gelinas
- Dany Gagnon
- Louis Vanier
- Sublime Tshimpangila
Privateer est dévelopé et distribué sous la license GPLv3