netig.net
À faire
- limiter le spam sur
/contact/send - développer les demandes d'adhésion et leur examen par le Noyau
- développer l'espace personnel des membres
- afficher les recettes et les dépenses sur la page d'accueil
- gérer les accès aux services selon la situation des membres
Développement
Installer les dépendances :
bundle install
Créer un fichier .env à la racine du projet :
SESSION_SECRET=...
RODAUTH_HMAC_SECRET=...
RODAUTH_DOMAIN=netig.net
BASE_URL=http://[::1]:9292
SMTP_PASSWORD=...
Générer SESSION_SECRET et RODAUTH_HMAC_SECRET avec :
openssl rand -hex 64
Ne pas versionner le fichier .env.
Base de données
En développement, la base est créée dans :
db/development.sqlite3
Ce chemin est utilisé par défaut. Il est possible de le modifier
avec la variable d'environnement DATABASE_PATH.
Le chemin indiqué est relatif au fichier lib/database.rb.
Créer ou mettre à jour la base de données :
bundle exec ruby bin/migrate
Serveur
Démarrer le serveur de développement :
bundle exec puma
Créer des comptes de test depuis le site :
http://[::1]:9292/create-account
Les personnes physiques et les personnes morales peuvent créer un compte. L'adresse électronique doit être vérifiée avant de pouvoir se connecter.
Initialisation du Noyau
Pour tester l'espace du Noyau, ajouter un compte de test depuis le terminal :
bundle exec ruby bin/initialize-core
En développement, un seul membre suffit. Cette commande peut être réexécutée pour ajouter d'autres membres au Noyau.
Chaque exécution ajoute un seul membre.
Shell interactif
Pour ouvrir un shell interactif :
bundle exec irb -r dotenv/load -r ./netig.rb
Production
Docker Compose fournit les variables d'environnement via env_file
et définit RACK_ENV=production.
Le fichier d'environnement doit notamment définir :
DATABASE_PATH=../db/netig.sqlite3
SESSION_SECRET=...
RODAUTH_HMAC_SECRET=...
RODAUTH_DOMAIN=netig.net
BASE_URL=https://netig.net
SMTP_PASSWORD=...
Générer les deux secrets avec :
openssl rand -hex 64
Ne pas versionner le fichier contenant ces variables.
Base de données
La base de production est stockée dans :
db/netig.sqlite3
Le chemin ../db/netig.sqlite3 est relatif au fichier
lib/database.rb. Il désigne donc le dossier db/ à la racine
du projet.
Le dossier db/ doit être conservé entre les déploiements et rester
accessible en écriture par l'utilisateur qui exécute Puma.
Il doit également être inclus dans les sauvegardes.
Créer ou mettre à jour la base de données dans le conteneur applicatif, avec les mêmes variables d'environnement que l'application, avant de démarrer la nouvelle version :
bundle exec ruby bin/migrate
Initialisation du premier Noyau
Une fois l'inscription publique disponible, les personnes désignées comme membres fondateurs créent leurs comptes personnels depuis le site et vérifient leurs adresses électroniques.
Après leur désignation par l'assemblée constitutive, initialiser le Noyau depuis le conteneur applicatif :
bundle exec ruby bin/initialize-core
Exécuter cette commande pour chaque personne désignée. Chaque exécution ajoute un seul membre du Noyau.
La commande enregistre son adhésion comme acceptée et lui attribue la qualité de membre du Noyau.
Le Noyau doit compter au moins trois personnes physiques disposant d'un compte vérifié.