-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenv_example
More file actions
190 lines (177 loc) · 8.62 KB
/
Copy pathenv_example
File metadata and controls
190 lines (177 loc) · 8.62 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
# Copier ce fichier en .env a cote du docker-compose.yml, puis remplir.
# cp env_example .env && chmod 600 .env
# Nom du projet compose : nomme les conteneurs et les reseaux (pas de
# container_name en dur dans le compose, voir design). Garder "postiz" sauf
# si une deuxieme instance doit cohabiter sur le meme hote.
COMPOSE_PROJECT_NAME=postiz
# Domaine public (sans https://), doit pointer sur ce serveur (DNS A record)
# et etre routable par Traefik (reseau externe "frontend" deja en place).
POSTIZ_DOMAIN=postiz.example.com
# Version epinglee de l'image officielle. "docker compose pull" ne ramenera
# RIEN tant que cette valeur n'est pas changee a la main (voir "make update").
# Releases : https://github.com/gitroomhq/postiz-app/releases
#
# ATTENTION : le fichier version.txt du depot Postiz N'EST PAS fiable comme
# indicateur de version (verifie : au tag v1.47.0 lui-meme, version.txt
# contenait deja "v1.46.0" ; au tag v2.22.1, il contient "v1.47.0"). Se fier
# UNIQUEMENT au tag git reel. La stack Temporal (orchestrator, RUN_CRON,
# endpoint /health/status) n'existe qu'a partir des versions 2.x -
# v1.47.0 ne l'a PAS (verifie : apps/ contient encore "cron"/"workers" a ce
# tag, pas "orchestrator", et RUN_CRON n'existe dans aucun fichier). Ne
# jamais epingler une version anterieure a v2.x avec ce docker-compose.yml.
#
# PAS DE TAG FLOTTANT DISPONIBLE : contrairement a "ghost:6-alpine" (qui suit
# les correctifs de la majeure 6), le CI de Postiz ne publie que le nom exact
# du tag git et "latest" -- verifie dans le registre ghcr : sur 540 tags,
# aucun "v2.22", "v2" ni "2". Ecrire POSTIZ_VERSION=v2.22 donnerait un
# "manifest unknown" au demarrage. Le choix est donc binaire : version figee
# avec bump manuel (ce qu'on fait), ou "latest" avec risque de saut de
# majeure non annonce.
POSTIZ_VERSION=v2.22.1
# Secret de signature des sessions JWT. Generer avec : openssl rand -hex 32
JWT_SECRET=CHANGEME_openssl_rand_-hex_32
# Base de donnees Postiz. Mot de passe a generer avec : openssl rand -hex 32
# ATTENTION : ne plus changer ces valeurs une fois la base initialisee.
POSTGRES_USER=postiz
POSTGRES_PASSWORD=CHANGEME_openssl_rand_-hex_32
POSTGRES_DB=postiz
# true = un seul compte peut s'inscrire, puis la page d'inscription se
# verrouille. Ne protege PAS contre l'OAuth generique (voir plus bas).
# Doit etre exactement "true" en minuscules : "True"/"TRUE"/"1" laissent
# l'inscription OUVERTE sans avertissement.
DISABLE_REGISTRATION=true
# Limite horaire de l'API publique de creation de posts. 90 est le defaut du
# code Postiz lui-meme si la variable est absente ; le compose officiel de
# Postiz la redescend a 30 pour son propre usage, sans que ce soit documente
# comme "la" valeur de reference. 90 est garde ici, coherent avec le code.
API_LIMIT=90
# --- Email (Mailgun via SMTP/nodemailer) ---
# IMPORTANT : des que EMAIL_PROVIDER est renseigne, l'activation par email
# devient OBLIGATOIRE pour les comptes locaux. Creer le compte admin AVANT de
# remplir cette section, ou verifier que les identifiants SMTP fonctionnent
# avant (sinon : compte cree mais jamais active, verrouille dehors).
#
# EMAIL_PROVIDER n'accepte QUE "nodemailer" ou "resend". Toute autre valeur
# (y compris "mailgun", "smtp", "gmail") retombe SILENCIEUSEMENT sur un
# provider qui n'envoie rien. Mailgun/Brevo/OVH sont des HOTES SMTP : le
# provider reste "nodemailer".
#
# REGION MAILGUN : un domaine cree dans la region EU ne s'authentifie PAS sur
# le point d'entree US. Les deux se ressemblent, et l'erreur est un simple
# "535 Authentication failed" qui fait croire a un mauvais mot de passe :
# region US -> smtp.mailgun.org
# region EU -> smtp.eu.mailgun.org <-- cas de cette installation
# La region est visible dans le tableau de bord Mailgun, a cote du domaine.
EMAIL_PROVIDER=
EMAIL_HOST=smtp.eu.mailgun.org
EMAIL_PORT=465
EMAIL_SECURE=true
EMAIL_USER=
EMAIL_PASS=
EMAIL_FROM_ADDRESS=
# Si la valeur contient un espace (ex: Postiz Team), l'entourer de guillemets
# doubles : EMAIL_FROM_NAME="Postiz Team". Les scripts de sauvegarde n'ouvrent
# QUE les cles BORG_* de ce fichier (jamais tout le .env), donc un espace ici
# ne peut plus casser une sauvegarde -- mais Docker Compose, lui, le lira mal
# si la valeur n'est pas quotee.
EMAIL_FROM_NAME=
# --- Reseaux sociaux : ne remplir que ceux reellement utilises ---
X_URL=
X_API_KEY=
X_API_SECRET=
LINKEDIN_CLIENT_ID=
LINKEDIN_CLIENT_SECRET=
FACEBOOK_APP_ID=
FACEBOOK_APP_SECRET=
# Instagram a DEUX providers : "Instagram (Facebook Business)" utilise les
# FACEBOOK_APP_* ci-dessus ; "Instagram (Standalone)" exige les deux variables
# ci-dessous. Les deux passent par la meme file Temporal ("instagram").
INSTAGRAM_APP_ID=
INSTAGRAM_APP_SECRET=
THREADS_APP_ID=
THREADS_APP_SECRET=
YOUTUBE_CLIENT_ID=
YOUTUBE_CLIENT_SECRET=
TIKTOK_CLIENT_ID=
TIKTOK_CLIENT_SECRET=
REDDIT_CLIENT_ID=
REDDIT_CLIENT_SECRET=
PINTEREST_CLIENT_ID=
PINTEREST_CLIENT_SECRET=
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=
DISCORD_BOT_TOKEN_ID=
SLACK_ID=
SLACK_SECRET=
SLACK_SIGNING_SECRET=
MASTODON_URL=https://mastodon.social
MASTODON_CLIENT_ID=
MASTODON_CLIENT_SECRET=
# --- Files de taches Temporal a NE PAS demarrer (reduction de l'empreinte) ---
#
# Par defaut, l'orchestrator demarre UN worker Temporal par reseau social
# supporte (~33), chacun avec son bac a sable de workflow et son bundle webpack
# de 3 Mo -- que le reseau soit connecte ou non. Mesure en preprod, avec un seul
# canal (Mastodon) :
#
# sans EXCLUDE_QUEUE avec gain
# conteneur postiz 2,41 Gio 1,25 Gio -48 %
# process orchestrator 1585 Mo 497 Mo -69 %
# stack complete ~2,7 Gio ~1,45 Gio -46 %
# demarrage (healthy) 90 s 40 s -55 %
#
# ATTENTION, PANNE SILENCIEUSE : si tu connectes plus tard un canal dont la file
# est exclue, l'interface acceptera de programmer des posts mais AUCUN worker ne
# les traitera -- ils ne partiront jamais, sans erreur. Mettre cette liste a jour
# a chaque nouveau canal. Dans le doute, garder les files des reseaux envisages a
# moyen terme : le gain marginal par file est faible.
#
# NE JAMAIS exclure "main" : c'est la file des workflows generaux (rattrapage
# RUN_CRON, envoi des emails). Elle n'est pas dans la liste ci-dessous.
#
# Files disponibles (identifiant de chaque provider ; celles contenant un tiret,
# comme linkedin-page, sont deja ignorees par Postiz) :
# bluesky devto discord dribbble facebook gmb hashnode instagram kick lemmy
# linkedin listmonk mastodon medium mewe moltbook nostr pinterest reddit skool
# slack telegram threads tiktok tumblr twitch vk whop wordpress wrapcast x
# youtube
#
# UNE FILE PAR FAMILLE : la file d'un post est calculee par
# providerIdentifier.split('-')[0] (posts.service.ts). Donc "linkedin-page" part
# dans la file "linkedin", et "instagram-standalone" dans "instagram". Conserver
# "linkedin" couvre donc aussi les Pages LinkedIn, et "instagram" couvre les deux
# variantes Instagram -- pas besoin de lister les identifiants a tiret.
#
# Exemple ci-dessous : tout est exclu SAUF mastodon, instagram, linkedin,
# facebook (+ main). Note : une seule application Meta couvre les Pages Facebook
# ET les comptes Instagram Business (memes identifiants FACEBOOK_APP_*), mais ce
# sont bien DEUX files de taches distinctes -- garder les deux.
EXCLUDE_QUEUE=bluesky,devto,discord,dribbble,gmb,hashnode,kick,lemmy,listmonk,medium,mewe,moltbook,nostr,pinterest,reddit,skool,slack,telegram,threads,tiktok,tumblr,twitch,vk,whop,wordpress,wrapcast,x,youtube
# --- Temporal UI (profile "debug" uniquement, jamais expose via Traefik) ---
# Port loopback local. 8080 est deliberement EVITE : deja utilise par
# plusieurs autres stacks de ce parc. Acces :
# docker compose --profile debug up -d temporal-ui
# ssh -L 8233:127.0.0.1:8233 user@serveur
TEMPORAL_UI_PORT=8233
# --- OAuth generique (Keycloak) --- REPORTE, voir
# docs/superpowers/specs/2026-07-26-postiz-selfhost-design.md : le provider
# GENERIC contourne DISABLE_REGISTRATION. Ne decommenter qu'apres avoir cree
# un client Keycloak dedie a acces restreint.
#
# IMPORTANT : decommenter ICI ne suffit pas. Ces variables doivent EN PLUS
# etre ajoutees au bloc "environment:" du service postiz dans
# docker-compose.yml (elles n'y sont pas cablees tant que la fonctionnalite
# est reportee, deliberement -- pour ne pas pouvoir l'activer par accident).
#POSTIZ_GENERIC_OAUTH=true
#POSTIZ_OAUTH_URL=
#POSTIZ_OAUTH_AUTH_URL=
#POSTIZ_OAUTH_TOKEN_URL=
#POSTIZ_OAUTH_USERINFO_URL=
#POSTIZ_OAUTH_CLIENT_ID=
#POSTIZ_OAUTH_CLIENT_SECRET=
# --- Sauvegarde borg : NE RIEN REMPLIR ICI. Ecrit automatiquement par
# `make init` (cle SSH, depot BWH, passphrase). Laisser commente. ---
#BORG_PREFIX=
#BORG_REPO=
#BORG_PASSPHRASE=
#AGE_MAX_HEURES=