Skip to content

RebelliousSmile/suddenly

Repository files navigation

🎭 Suddenly

Réseau fédéré de fiction partagée

Un réseau de comptes-rendus de parties où les PNJ des uns peuvent devenir les PJ des autres.

License: AGPL v3

✨ Concept

Les joueurs publient leurs comptes-rendus de partie. Les PNJ mentionnés deviennent des points d'ancrage que d'autres joueurs peuvent réclamer, adopter ou dériver pour tisser des liens entre fictions indépendantes.

Le nom "Suddenly" évoque ce moment où l'inattendu surgit — quand un personnage apparaît soudainement dans une autre histoire.

🚀 Installation

Option rapide (Docker)

git clone https://github.com/votre-repo/suddenly.git
cd suddenly
./scripts/install.sh

Le script vous guidera pour configurer votre domaine et obtenir les certificats SSL.

Option développement

# Cloner le repo
git clone https://github.com/votre-repo/suddenly.git
cd suddenly

# Lancer l'environnement de dev
docker compose -f docker-compose.dev.yml up

# Dans un autre terminal, appliquer les migrations
docker compose -f docker-compose.dev.yml exec web python manage.py migrate
docker compose -f docker-compose.dev.yml exec web python manage.py createsuperuser

# Accéder à http://localhost:8000

Option PaaS

Deploy on Railway Deploy to Render

📋 Prérequis

  • Docker et Docker Compose
  • Un domaine pointant vers votre serveur
  • Ports 80 et 443 ouverts

🔧 Configuration

Copiez .env.example vers .env et modifiez les valeurs :

cp .env.example .env

Variables essentielles :

Variable Description
DOMAIN Domaine de votre instance
SECRET_KEY Clé secrète Django (générée automatiquement)
POSTGRES_PASSWORD Mot de passe de la base de données

🔗 Types de liens entre personnages

Claim (rétcon)

"Ton PNJ c'était mon PJ depuis le début."

Adopt (reprise)

"Ton PNJ m'intéresse, j'en fais mon PJ à partir de maintenant."

Fork (dérivation)

"Je crée un PJ inspiré de ton PNJ, mais distinct."

🌐 Fédération

Suddenly utilise ActivityPub pour se fédérer avec d'autres instances Suddenly et le reste du Fediverse (Mastodon, BookWyrm...).

Chaque entité est un acteur ActivityPub :

  • Joueurs — publient des parties
  • Parties — regroupent des comptes-rendus
  • Personnages — peuvent être suivis et liés

📚 Documentation

🛠 Stack technique

  • Backend : Python / Django 5
  • Base de données : PostgreSQL 16
  • Cache / Queue : Redis 7
  • Tâches async : Celery
  • Fédération : ActivityPub
  • Reverse proxy : Nginx

📜 Licence

AGPL-3.0 — Voir LICENSE

🙏 Inspirations

  • BookWyrm — Réseau social fédéré pour les livres
  • Mastodon — Réseau social fédéré
  • L'écosystème du jeu de rôle solo

Suddenly — Quand les histoires se croisent. 🎭

About

federated microstories

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors