-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path.env.example
More file actions
288 lines (227 loc) · 17.3 KB
/
Copy path.env.example
File metadata and controls
288 lines (227 loc) · 17.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# ══════════════════════════════════════════════════════════════════════════════
# NODYX : configuration de votre instance
# ══════════════════════════════════════════════════════════════════════════════
#
# Bienvenue. Vous installez Nodyx : une plateforme communautaire libre (AGPL-3.0),
# auto-hébergée et décentralisée. Forum, chat temps réel, salons vocaux, le tout
# sur VOTRE serveur, sans GAFAM, sans analytics, sans collecte cachée.
#
# Principe de base : une instance = une communauté. Ce fichier configure CETTE
# instance et elle seule.
#
# Comment l'utiliser :
# 1. Copiez ce fichier en ".env" (cp .env.example .env)
# 2. Adaptez au minimum la section "INDISPENSABLE" ci-dessous
# 3. Le reste est optionnel : activez au fur et à mesure de vos besoins
#
# Bonne nouvelle : beaucoup de ces réglages sont désormais éditables directement
# depuis le panneau admin (Admin > Paramètres), sans repasser par ce fichier.
# Ils sont signalés par la mention [EDITABLE DEPUIS L'ADMIN] ci-dessous.
#
# Règle d'or : ne committez JAMAIS votre .env dans git. Il contient vos secrets.
# (Il est déjà dans .gitignore, ne l'en sortez pas.)
#
# ══════════════════════════════════════════════════════════════════════════════
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ INDISPENSABLE : sans ça, Nodyx ne démarre pas ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Ces variables sont lues au démarrage. Une erreur ici empêche l'instance de
# tourner. Modifiez-les à la main dans ce fichier (PAS depuis l'admin), puis
# redémarrez. C'est volontaire : on ne peut pas se verrouiller dehors via l'UI.
# ── Secret de signature des sessions (JWT) ────────────────────────────────────
# OBLIGATOIRE en production. Doit être long et totalement aléatoire (32+ octets).
# Générez-le avec :
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# Si vous le changez plus tard, tout le monde sera déconnecté. À garder secret.
JWT_SECRET=CHANGEZ_MOI_EN_PRODUCTION_UTILISEZ_UNE_VALEUR_ALEATOIRE_LONGUE
# ── Base de données PostgreSQL ────────────────────────────────────────────────
# Le coeur de stockage : membres, messages, fils, tout vit ici.
DB_HOST=localhost
DB_PORT=5432
DB_NAME=nodyx
DB_USER=nodyx_user
DB_PASSWORD=votre_mot_de_passe_postgres
# DB_SSL=true # À activer si votre base est distante (managed DB type Supabase, Neon)
# ── Cache Redis ───────────────────────────────────────────────────────────────
# Sert au rate limiting, au suivi des membres en ligne, aux sessions.
REDIS_HOST=localhost
REDIS_PORT=6379
# Laissez vide si Redis tourne en localhost sans authentification.
# En production avec Redis exposé, définissez impérativement un mot de passe.
REDIS_PASSWORD=
# ── Serveur ───────────────────────────────────────────────────────────────────
PORT=3000
HOST=0.0.0.0 # 0.0.0.0 accepte toutes les interfaces réseau
# ── Environnement ─────────────────────────────────────────────────────────────
# "production" : logs sobres, pas de fuite de stack trace vers le navigateur.
# "development" : verbeux, pratique pour bidouiller en local.
NODE_ENV=production
# ── URL publique du frontend ──────────────────────────────────────────────────
# L'adresse à laquelle vos membres accèdent à l'instance. Sert au CORS et à la
# génération des liens (emails, notifications). Exemple : https://forum.mondomaine.fr
FRONTEND_URL=http://localhost:5173
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ IDENTITÉ DE VOTRE COMMUNAUTÉ ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# [EDITABLE DEPUIS L'ADMIN] La plupart de ces champs se modifient maintenant
# dans Admin > Paramètres, à chaud, sans redémarrage. Les valeurs ci-dessous
# servent de défaut au premier démarrage.
# Nom affiché de la communauté (titre, navbar, emails).
NODYX_COMMUNITY_NAME=Ma Communauté
# Description courte (SEO, page d'accueil, flux RSS).
NODYX_COMMUNITY_DESCRIPTION=La communauté dédiée à [votre sujet].
# Slug unique : lettres minuscules, chiffres, tirets. Sert d'identifiant URL et
# correspond à la communauté en base. (Géré ici, pas encore dans l'admin.)
NODYX_COMMUNITY_SLUG=ma-communaute
# Langue principale du contenu (code ISO 639-1). Pilote la recherche full-text
# PostgreSQL et l'attribut lang du HTML. Supportées : fr, en, de, es, it, pt, nl
NODYX_COMMUNITY_LANGUAGE=fr
# Pays (code ISO 3166-1 alpha-2, ex : FR), pour les balises meta geo.
NODYX_COMMUNITY_COUNTRY=FR
# Limite de membres. Vide = illimité. Les comptes bannis ne comptent pas.
# [EDITABLE DEPUIS L'ADMIN]
# NODYX_MAX_MEMBERS=
# Version installée. Mise à jour automatiquement par install.sh, n'y touchez pas.
NODYX_VERSION=2.6.0
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ EMAIL (SMTP) : optionnel mais recommandé ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Sert aux réinitialisations de mot de passe et aux vérifications d'email.
# Sans SMTP, un admin doit générer les liens de reset à la main depuis
# Admin > Membres. Compatible avec tout serveur SMTP : Gmail, Mailgun, Resend,
# OVH, etc. Un bouton "Tester" est disponible dans Admin > Paramètres.
#
# Exemple Gmail : SMTP_HOST=smtp.gmail.com, SMTP_PORT=587, SMTP_SECURE=false
# Exemple Mailgun : SMTP_HOST=smtp.eu.mailgun.org, SMTP_PORT=587, SMTP_SECURE=false
# SMTP_HOST=smtp.exemple.com
# SMTP_PORT=587
# SMTP_SECURE=false # true = port 465 (TLS implicite)
# SMTP_USER=noreply@votre-domaine.com
# SMTP_PASS=votre_mot_de_passe_smtp
# SMTP_FROM=noreply@votre-domaine.com # optionnel, reprend SMTP_USER par défaut
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ FÉDÉRATION ET ANNUAIRE (nodyx.org) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Nodyx peut vivre seul, mais il peut aussi rejoindre le réseau des instances.
# L'objectif du projet : que le réseau survive même si nodyx.org tombe.
# Indexation globale : annonce vos sujets PUBLICS dans la recherche cross-instances
# de nodyx.org/discover. Opt-in, vous restez maître de ce que vous exposez.
# [EDITABLE DEPUIS L'ADMIN]
NODYX_GLOBAL_INDEXING=true
# Enregistrement dans l'annuaire. Généré automatiquement par install.sh.
# DIRECTORY_TOKEN=token_recu_lors_de_l_enregistrement
# DIRECTORY_API_URL=https://nodyx.org
# SELF_URL=http://127.0.0.1:3000 # URL par laquelle l'annuaire vous joint
# Pairs gossip (propagation directe d'instance à instance, sans hub central).
# Liste séparée par des virgules.
# GOSSIP_PEERS=https://ami1.fr,https://ami2.fr
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ VOIX ET P2P (salons vocaux, WebRTC) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Pour que deux personnes derrière des box internet puissent se parler, il faut
# parfois un relais (TURN). Renseigné automatiquement par install.sh en mode relay.
# STUN_FALLBACK_URLS=stun:stun.l.google.com:19302 # serveur STUN de secours
# TURN_PUBLIC_IP= # IP publique du serveur TURN
# TURN_PORT=3478
# TURN_SECRET= # secret partagé d'authentification TURN
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ NOTIFICATIONS PUSH NAVIGATEUR (optionnel) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Permet d'alerter un membre même quand son onglet est fermé.
# Générez les clés : cd nodyx-core && npx web-push generate-vapid-keys
# VAPID_SUBJECT doit être une URL ou un mailto:
# VAPID_PUBLIC_KEY=
# VAPID_PRIVATE_KEY=
# VAPID_SUBJECT=mailto:admin@votre-domaine.com
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ STREAMER HUB (optionnel) : transformer Nodyx en QG de streamer ║
# ╚══════════════════════════════════════════════════════════════════════════╝
# Twitch pour le simple widget "stream live" de la homepage. Sans ça, le widget
# fonctionne en mode embed pur. Créez une app sur https://dev.twitch.tv/console/apps
# TWITCH_CLIENT_ID=
# TWITCH_CLIENT_SECRET=
# Twitch pour le Streamer Hub complet (alertes, chat unifié, overlays, deck).
# C'est une app Twitch SÉPARÉE du widget homepage ci-dessus.
# STREAMER_TWITCH_CLIENT_ID=
# STREAMER_TWITCH_CLIENT_SECRET=
# STREAMER_OAUTH_REDIRECT_URI=https://votre-domaine.fr/api/v1/streamer/twitch/callback
# STREAMER_PUBLIC_BASE=https://votre-domaine.fr # base publique pour les webhooks EventSub
# Clé de chiffrement des tokens Twitch stockés (AES-256-GCM). 32 octets aléatoires.
# Générez-la comme JWT_SECRET. Sans elle, impossible de stocker les tokens en sécurité.
# STREAMER_OAUTH_KEY=
# Réglages de debug du bot chat (laisser commenté en usage normal) :
# STREAMER_CHAT_TEST_MODE=1 # 1 = autorise l'envoi chat même stream offline
# STREAMER_CHAT_NO_PREFIX=1 # 1 = retire le préfixe sur les messages relayés
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ MODÉRATION ET FILTRES DE CONTENU (optionnel) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
# OctoGuard : moteur de modération automatique du chat. Désactivé par défaut.
# Mettez "true" uniquement après avoir configuré vos règles dans Admin > OctoGuard.
# OCTOGUARD_ENABLED=false
# Filtre anti-discours haineux (activé par défaut, mettez "false" pour le couper).
# NODYX_HATE_FILTER_ENABLED=true
# Motifs de contenu bloqués (liste séparée par des virgules). Un message qui
# matche est refusé. Utile contre le spam récurrent.
# BLOCKED_CONTENT_PATTERNS=
# Domaines de liens bloqués (liste séparée par des virgules).
# BLOCKED_LINK_DOMAINS=
# Scan d'images NSFW (détection locale, aucune image n'est envoyée à un tiers).
# NSFW_SCAN=true
# NSFW_THRESHOLD=0.7 # seuil de 0 à 1, plus haut = plus permissif
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ SÉCURITÉ AVANCÉE (optionnel, pour les admins aguerris) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
#
# Nodyx embarque un honeypot et des outils de réponse aux incidents. Tout est
# optionnel : une instance tranquille n'en a pas besoin. Ne vous laissez pas
# impressionner, vous pouvez ignorer toute cette section pour démarrer.
# Alertes vers un webhook Discord :
# HONEYPOT_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
# SECURITY_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
# Secret pour signer les rapports CERT (GET /_hp_cert/:id). Si absent, JWT_SECRET
# est utilisé en repli.
# CERT_REPORT_SECRET=
# Envoi automatique de rapports d'abus par email (CERT) :
# CERT_EMAIL_TO=abuse@votre-domaine.fr
# CERT_EMAIL_MAX_PER_DAY=3 # garde-fou anti-flood, défaut 3
# CERT_FROM=security@votre-domaine.fr
# CERT_REPLY_TO=security@votre-domaine.fr
# Enrichissement de menaces via services externes (clés API tierces) :
# ABUSEIPDB_API_KEY=
# SHODAN_API_KEY=
# VIRUSTOTAL_API_KEY=
# MISP : partage de renseignement de menace, compatible CERT-FR / Europol.
# Si configuré, les incidents honeypot significatifs y sont publiés.
# MISP_URL=https://misp.votre-instance.fr
# MISP_API_KEY=votre_cle_api_misp
# MISP_ORG_ID=1
# MISP_DISTRIBUTION=0 # 0=organisation, 1=communauté, 3=toutes les instances
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ INFRASTRUCTURE ET DIVERS (renseignés par install.sh en général) ║
# ╚══════════════════════════════════════════════════════════════════════════╝
# Sous-domaine automatique *.nodyx.org via Cloudflare :
# VPS_IP=
# CF_TOKEN=
# CF_ZONE_ID=
# Nodyx Signet (authentificateur PWA). URL de la PWA, nécessaire au CORS.
# SIGNET_URL=https://signet.nodyx.org
# Chemins de stockage (par défaut : dossiers uploads/ et backups/ du projet).
# UPLOADS_DIR=/chemin/vers/uploads
# BACKUP_DIR=/chemin/vers/backups
# Clé du chiffrement E2E des DM (ESY Barbare). Renseignée par l'installeur.
# ESY_KEY_PATH=/chemin/vers/la/cle
# Mode démo : passe l'instance en lecture seule (pour une instance de
# démonstration publique). À laisser absent en usage normal.
# NODYX_DEMO_MODE=true
# Mode stress test (développement uniquement). À laisser absent.
# STRESS=1
# ══════════════════════════════════════════════════════════════════════════════
# À NOTER : le frontend (nodyx-frontend) a son propre .env, avec notamment
# PUBLIC_API_URL (URL de l'API vue par le navigateur). Voir nodyx-frontend.
# ══════════════════════════════════════════════════════════════════════════════