Skip to content

vMarc64/GuildCompanion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,296 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GuildCompanion

Outil de guilde World of Warcraft — monorepo TypeScript : portail Next.js, API NestJS + Prisma/Postgres, client desktop Electron (enregistrement POV multi-joueurs + Simbot local), addon Lua WoW.

Source de vérité courante : CLAUDE.md + les docs skills/*.md.

Quickstart (Dev)

pnpm install
pnpm approve-builds electron        # Windows: première install Electron
pnpm dev:all                        # NestJS (4000) + Next.js (3000) en parallèle
pnpm dev:electron                   # Client Electron
pnpm dev:electron:clean             # userData isolé + cache GPU désactivé

Installation Windows & SmartScreen

L'installeur Windows (GuildCompanion-Setup-*.exe) est volontairement non signé pendant la phase de développement (< v1). Au premier lancement, Windows SmartScreen affiche un écran bleu « Windows a protégé votre ordinateur » / « Éditeur inconnu ».

Pour contourner :

  1. Cliquer sur « Informations complémentaires ».
  2. Cliquer sur « Exécuter quand même ».

Windows mémorise le choix : le clic n'est nécessaire qu'une seule fois par version. Les mises à jour automatiques (via electron-updater) ne re-déclenchent pas SmartScreen.

Plan v1 : passage au target appx + Microsoft Store (gratuit pour dev solo depuis 2024). Détails complets + justification dans docs/signing.md.

Une version illustrée (captures d'écran, walkthrough utilisateur) est disponible sur la page de téléchargement publique : https://app.guildcompanion.fr/download.

Release Process

Workflows GitHub Actions actifs (.github/workflows/) :

Fichier Rôle Déclencheurs
tag-publish.yml Build & artefacts (images Docker server/web, Electron multi-OS, Helm chart, draft Release) tag v*
deploy-prod.yml Déploiement API sur VPS via SSH push main / dispatch
deploy-web.yml Déploiement web sur VPS via SSH push main / dispatch

Phases release :

  1. Bump version manuel via pnpm release:version (Lerna, conventional commits).
  2. Push du tag vX.Y.Ztag-publish.yml build les images + artefacts Electron + crée une Release draft.
  3. Push sur maindeploy-prod.yml / deploy-web.yml redéploient le VPS.

Toggles build (repository variables) :

Variable Effet
ENABLE_ELECTRON=false Ignore le job Electron dans tag-publish.yml
ENABLE_HELM=false Ignore le job Helm dans tag-publish.yml

Observabilité Locale (Docker Compose)

Stack rapide API + Web + Loki + Promtail + Grafana :

docker compose up -d

Accès :

Dans Grafana, ajouter le datasource Loki (URL : http://loki:3100) si non auto-détecté, puis requête :

{container="gc-api"}

ou

{container="gc-web"}

Persistance : volumes nommés loki-data et grafana-data.

Deployment

Déploiement automatisé via deploy-prod.yml (API) et deploy-web.yml (web) — SSH sur le VPS + docker compose up -d avec polling healthcheck.

Déclencheurs :

  • Push main (si chemins impactés)
  • Manuel via workflow_dispatch

Health checks :

  • API : GET /api/health
  • Web : GET /health.json (nginx statique)

Secrets requis : DOCKERHUB_USERNAME, DOCKERHUB_TOKEN, PROD_SSH_HOST, PROD_SSH_USER, PROD_SSH_KEY, DATABASE_URL, DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, DISCORD_REDIRECT_URI, CORS_ORIGIN, BLIZZARD_CLIENT_ID, BLIZZARD_CLIENT_SECRET, BLIZZARD_REDIRECT_URI, WCL_CLIENT_ID, WCL_CLIENT_SECRET, TOKEN_ENCRYPTION_KEY.

Modes :

  • dryRun : build/pull mais pas de restart conteneur.
  • skipBuild : saute la construction d'image (utilise tags existants).

Déploiement ciblé serveur seul :

workflow_dispatch: services=server skipBuild=true

Ref spécifique (ex : tag déjà publié) :

workflow_dispatch: ref=v1.2.3 skipBuild=true

Scripts (Local / Dev Utils)

Script Rôle Notes
scripts/stack-all.sh Démarre la stack d'observabilité + services locaux --build pour reconstruire les images locales
scripts/stack-down.sh Stop & remove la stack compose
scripts/stack-disk-check.sh Affiche la taille cumulée des volumes Aide à décider d'un prune
scripts/validate-secrets.sh Vérifie la présence des secrets critiques Utilisé ponctuellement hors CI
scripts/electron-dev.ts Lancement Electron dev (flags : --clean, --no-electron, --delay <ms>) pnpm dev:electron:clean utilise --clean

Documentation détaillée des outils : voir docs/maintenance/tools.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors