# Fichiers d'Environnement - Configuration **Auteur** : Équipe 4NK **Date** : 2026-01-24 **Version** : 1.0 ## Vue d'Ensemble Ce document décrit tous les fichiers d'environnement utilisés dans le projet et leurs variables. ## Fichiers d'Environnement ### 1. Fichier `.env` à la racine du projet **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/.env` **Utilisé par :** - Docker (Bitcoin Core) - Scripts de configuration - Génération de `bitcoin.conf` **Variables principales :** ```bash # Mining Configuration BLOCKPRODUCTIONDELAY=600 # Délai entre blocs (secondes) MINERENABLED=1 # Activer le mining (1 = oui, 0 = non) NBITS=1e0377ae # Difficulté minimale (hex) PRIVKEY= # Clé privée du signer (générée si vide) MINETO= # Adresse de mining (optionnel) SIGNETCHALLENGE= # Challenge du signet # RPC Configuration RPCUSER=bitcoin # Utilisateur RPC RPCPASSWORD=bitcoin # Mot de passe RPC # User Agent UACOMMENT=CustomSignet # Commentaire User Agent # ZMQ Configuration ZMQPUBRAWBLOCK=tcp://0.0.0.0:28332 ZMQPUBRAWTX=tcp://0.0.0.0:28333 ZMQPUBHASHBLOCK=tcp://0.0.0.0:28334 # Network Configuration RPCBIND=0.0.0.0:38332 # Port RPC RPCALLOWIP=0.0.0.0/0 # IPs autorisées pour RPC WHITELIST=0.0.0.0/0 # IPs whitelistées ADDNODE= # Nœuds à ajouter (optionnel) EXTERNAL_IP= # IP externe (optionnel) ``` **Fichier d'exemple :** `env.example` ### 2. Fichier `.env` de l'API Anchorage **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/api-anchorage/.env` **Variables :** ```bash # Bitcoin RPC Configuration BITCOIN_RPC_HOST=localhost BITCOIN_RPC_PORT=38332 BITCOIN_RPC_USER=bitcoin BITCOIN_RPC_PASSWORD=bitcoin BITCOIN_RPC_TIMEOUT=30000 # API Configuration API_PORT=3010 # Port fixe (défini aussi dans systemd) API_HOST=0.0.0.0 # API Keys (séparées par des virgules) API_KEYS=your-api-key-here,another-api-key # Logging LOG_LEVEL=info # error, warn, info, debug NODE_ENV=production ``` **Note :** Le port est fixe (3010) et défini aussi dans le service systemd. ### 3. Fichier `.env` de l'API Faucet **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/api-faucet/.env` **Variables :** ```bash # Bitcoin RPC Configuration BITCOIN_RPC_HOST=localhost BITCOIN_RPC_PORT=38332 BITCOIN_RPC_USER=bitcoin BITCOIN_RPC_PASSWORD=bitcoin BITCOIN_RPC_TIMEOUT=30000 # API Configuration FAUCET_API_PORT=3021 # Port fixe (défini aussi dans systemd) FAUCET_API_HOST=0.0.0.0 # API Keys (séparées par des virgules) API_KEYS=your-api-key-here,another-api-key # Faucet Configuration FAUCET_AMOUNT=50000 # Montant en sats (0.0005 BTC) FAUCET_WALLET_NAME=faucet # Nom du wallet (optionnel) # Logging LOG_LEVEL=info NODE_ENV=production ``` **Note :** Le port est fixe (3021) et défini aussi dans le service systemd. ### 4. Fichier `.env` de l'API Filigrane **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/api-filigrane/.env` **Variables :** ```bash # API Configuration WATERMARK_API_PORT=3022 # Port fixe (défini aussi dans systemd) WATERMARK_API_HOST=0.0.0.0 # API Anchorage (pour ancrer les documents) ANCHOR_API_URL=http://localhost:3010 # Ou en production : # ANCHOR_API_URL=https://certificator.4nkweb.com # API Blockchain (pour récupérer les infos de bloc) BLOCKCHAIN_API_URL=http://localhost:3020 # Ou en production : # BLOCKCHAIN_API_URL=https://dashboard.certificator.4nkweb.com # API ClamAV (pour scanner les fichiers) CLAMAV_API_URL=http://localhost:3023 # Ou en production : # CLAMAV_API_URL=https://antivir.certificator.4nkweb.com # Logging LOG_LEVEL=info NODE_ENV=production ``` **Note :** Le port est fixe (3022) et défini aussi dans le service systemd. ### 5. Fichier `.env` de l'API ClamAV **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/api-clamav/.env` **Variables :** ```bash # API Configuration CLAMAV_API_PORT=3023 # Port fixe (défini dans le code) CLAMAV_API_HOST=0.0.0.0 # ClamAV Daemon Configuration CLAMAV_HOST=localhost # Host du daemon ClamAV CLAMAV_PORT=3310 # Port du daemon ClamAV CLAMAV_TIMEOUT=30000 # Timeout en millisecondes # Logging LOG_LEVEL=info NODE_ENV=production ``` **Note :** Le port est fixe (3023) et défini directement dans le code (`src/server.js`). ### 6. Fichier `.env` du Dashboard **Emplacement :** `/home/ncantu/Bureau/code/bitcoin/signet-dashboard/.env` **Variables :** ```bash # Dashboard Configuration DASHBOARD_PORT=3020 # Port fixe (défini aussi dans systemd) DASHBOARD_HOST=0.0.0.0 # Bitcoin RPC Configuration BITCOIN_RPC_HOST=localhost BITCOIN_RPC_PORT=38332 BITCOIN_RPC_USER=bitcoin BITCOIN_RPC_PASSWORD=bitcoin BITCOIN_RPC_TIMEOUT=30000 # API Anchorage Configuration ANCHOR_API_URL=http://localhost:3010 # Ou en production : # ANCHOR_API_URL=https://certificator.4nkweb.com ANCHOR_API_KEY=your-api-key-here # API Faucet Configuration FAUCET_API_URL=http://localhost:3021 # Ou en production : # FAUCET_API_URL=https://faucet.certificator.4nkweb.com # API Filigrane Configuration WATERMARK_API_URL=http://localhost:3022 # Ou en production : # WATERMARK_API_URL=https://watermark.certificator.4nkweb.com # Logging LOG_LEVEL=info NODE_ENV=production ``` **Note :** Le port est fixe (3020) et défini aussi dans le service systemd. ## Variables d'Environnement dans les Services Systemd Les services systemd définissent aussi des variables d'environnement pour garantir que les ports sont fixes : ### API Anchorage (`api-anchorage/anchorage-api.service`) ```ini Environment=API_PORT=3010 Environment=API_HOST=0.0.0.0 ``` ### API Faucet (`api-faucet/faucet-api.service`) ```ini Environment=FAUCET_API_PORT=3021 Environment=FAUCET_API_HOST=0.0.0.0 ``` ### API Filigrane (`api-filigrane/filigrane-api.service`) ```ini Environment=WATERMARK_API_PORT=3022 Environment=WATERMARK_API_HOST=0.0.0.0 ``` ### API ClamAV (`api-clamav/clamav-api.service`) ```ini Environment=CLAMAV_API_PORT=3023 Environment=CLAMAV_API_HOST=0.0.0.0 Environment=CLAMAV_HOST=localhost Environment=CLAMAV_PORT=3310 ``` ### Dashboard (`signet-dashboard/signet-dashboard.service`) ```ini Environment=DASHBOARD_PORT=3020 Environment=DASHBOARD_HOST=0.0.0.0 ``` ## Ordre de Priorité Les variables d'environnement sont chargées dans cet ordre : 1. **Variables du service systemd** (priorité la plus haute) 2. **Fichier `.env`** dans le répertoire de l'API 3. **Variables d'environnement système** (`process.env`) 4. **Valeurs par défaut** dans le code ## Création des Fichiers `.env` ### Depuis les exemples ```bash # À la racine du projet cp env.example .env # Pour chaque API cd api-anchorage && cp .env.example .env cd ../api-faucet && cp .env.example .env cd ../api-filigrane && cp .env.example .env cd ../api-clamav && cp .env.example .env cd ../signet-dashboard && cp .env.example .env ``` ### Variables Sensibles **⚠️ Important :** Les fichiers `.env` contiennent des informations sensibles : - Clés API - Mots de passe RPC - Clés privées Bitcoin **Sécurité :** - Ne jamais commiter les fichiers `.env` dans Git - Utiliser `.gitignore` pour exclure les fichiers `.env` - Changer les valeurs par défaut en production - Utiliser des clés API fortes et uniques ## Vérification des Variables ### Vérifier qu'un fichier `.env` est chargé ```bash # Dans le code Node.js, les variables sont loggées au démarrage # Vérifier les logs du service sudo journalctl -u anchorage-api | grep ENV ``` ### Tester les variables ```bash # Charger et afficher les variables (sans exposer les secrets) cd api-anchorage node -e "require('dotenv').config(); console.log('API_PORT:', process.env.API_PORT);" ``` ## Migration et Mise à Jour Lors de la mise à jour des variables : 1. **Mettre à jour le fichier `.env`** 2. **Mettre à jour le service systemd** si nécessaire 3. **Redémarrer le service** : `sudo systemctl restart ` 4. **Vérifier les logs** : `sudo journalctl -u -f` ## Références - [Documentation Domaines et Ports](./DOMAINS_AND_PORTS.md) - [Documentation Maintenance](./MAINTENANCE.md) - [Documentation Dashboard](./DASHBOARD.md)