No description
  • Go 47.8%
  • Vue 35.5%
  • TypeScript 13.6%
  • CSS 2.3%
  • Dockerfile 0.5%
  • Other 0.3%
Find a file
2026-09-26 13:08:49 +02:00
.serena docs(serena): sync memories with the cleanup refactor 2026-09-26 12:51:48 +02:00
backend fix(backend): load the root .env when started from backend/ 2026-09-26 12:56:53 +02:00
frontend fix(frontend): read VITE_* from the monorepo root .env 2026-09-26 13:01:22 +02:00
.env.example feat(frontend): playable game UI + backend dev auth (HS256) 2026-06-13 11:49:58 +02:00
.gitignore chore: scaffold monorepo (backend Go + frontend Vue 3) 2026-06-13 10:27:07 +02:00
docker-compose.yml fix(compose): relabel frontend bind mounts for SELinux/Podman 2026-06-15 09:19:09 +02:00
LICENSE chore: scaffold monorepo (backend Go + frontend Vue 3) 2026-06-13 10:27:07 +02:00
README.md refactor(frontend): role registry, drop shadcn/Tailwind, fix protocol drift 2026-09-26 12:50:42 +02:00

shamus

Jeu du Loup-Garou en ligne, multijoueur et temps réel.

Stack

  • Backend : Go + Gin + coder/websocket
  • Persistance : PostgreSQL via sqlc + migrations goose
  • Auth : OIDC (IAM externe — Keycloak / Authentik / Zitadel au choix)
  • Frontend : Vue 3 + Vite + TypeScript, kit UI pixel maison (CSS scoped + tokens), reka-ui pour les primitives accessibles
  • Orchestration dev : Docker Compose

Structure du dépôt

shamus/
├── backend/          # Service Go (HTTP + WebSocket + logique de jeu)
├── frontend/         # SPA Vue 3
├── docker-compose.yml
└── .env.example

Voir backend/README.md et frontend/README.md pour les détails de chaque sous-projet.

Ajouter un rôle

Un rôle = un fichier de chaque côté :

  • backend/internal/domain/game/role_<id>.go : RoleSpec (faction, phase de nuit, actions, hooks) ;
  • frontend/src/roles/<id>.ts : defineRole (icône, ton, vue d'action), à ajouter dans roles/index.ts ;
  • les clés i18n role.<id>.* dans frontend/src/locales/.

Démarrage rapide

cp .env.example .env
docker compose up -d postgres
# Backend
cd backend && make dev
# Frontend (autre terminal)
cd frontend && pnpm install && pnpm dev

Ou tout en Docker :

docker compose up --build

Frontend : http://localhost:5173 — Backend : http://localhost:8080

Scope du MVP

  • Rôles : villageois, loups-garous, voyante, sorcière, chasseur, cupidon, petite fille + fonction de Maire
  • Salons privés avec code de partage
  • Chat textuel en jeu (public village + privé loups la nuit)

Licence

AGPL-3.0