# 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 : ```sh bundle install ``` Créer un fichier `.env` à la racine du projet : ```dotenv 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 : ```sh openssl rand -hex 64 ``` Ne pas versionner le fichier `.env`. Créer ou mettre à jour la base de données : ```sh bundle exec ruby bin/migrate ``` Démarrer le serveur de développement : ```sh 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. Pour tester l'espace du Noyau, désigner un ou plusieurs comptes de test depuis le terminal : ```sh 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. La date de l'assemblée est demandée lors de l'exécution. Pour ouvrir un shell interactif : ```sh 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 : ```dotenv 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. Créer ou mettre à jour la base de données dans le conteneur applicatif avant de démarrer la nouvelle version : ```sh bundle exec ruby bin/migrate ``` ### Initialisation du premier Noyau Une fois l'inscription publique disponible, les membres fondateurs créent leurs comptes 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 : ```sh bundle exec ruby bin/initialize-core ``` Cette commande doit être exécutée une seule fois en production. Elle exige au moins trois personnes physiques disposant d'un compte vérifié. Elle enregistre leurs adhésions comme acceptées et leur attribue la qualité de membre du Noyau. La date de l'assemblée constitutive est demandée lors de l'exécution.