Wikijs Common — Configuration applicative partagée
Wikijs_Common est la couche applicative partagée de Wiki.js. Elle n'est pas
déployée seule ; elle fournit la configuration propre à Wiki.js sur laquelle
s'appuient à la fois Wikijs_GKE et Wikijs_CloudRun,
afin que les deux variantes de plateforme se comportent de manière identique là où
c'est important. Les utilisateurs finaux ne configurent jamais cette couche
directement — elle n'a aucune entrée propre dans l'interface de déploiement — mais
comprendre ce qu'elle fournit explique les valeurs par défaut que vous voyez dans la
documentation des plateformes.
Pour l'infrastructure qui provisionne et exécute effectivement Wiki.js, consultez les guides des plateformes (Wikijs_GKE, Wikijs_CloudRun) et les guides des socles (App_GKE, App_CloudRun, App_Common).
1. Ce que fournit cette couche
| Domaine | Fourni par Wikijs_Common | Où cela apparaît |
|---|---|---|
| Image de conteneur | Fixe requarks/wiki:2 et construit une image personnalisée à partir de scripts/ via Cloud Build | Sortie container_image du déploiement de la plateforme |
| Moteur de base de données | Fixe Cloud SQL for PostgreSQL 15 comme seul moteur pris en charge | §Base de données dans les guides des plateformes |
| Extension PostgreSQL | Déclare enable_postgres_extensions = true et postgres_extensions = ["pg_trgm"] pour la recherche en texte intégral de Wiki.js | Étape d'installation du socle au moment du déploiement |
| Amorçage de la base de données | Définit le job du premier déploiement (db-init) qui crée la base de données, l'utilisateur et les droits | Sortie initialization_jobs |
| Stockage objet | Déclare le bucket Cloud Storage wikijs-storage pour le stockage persistant des ressources | Sortie storage_buckets |
| Paramètres principaux | Définit l'environnement de base de Wiki.js (DB_TYPE, DB_PORT, DB_USER, DB_NAME, DB_SSL, HA_STORAGE_PATH) | Variables d'environnement de l'application |
| Contrôles de santé | Fournit la sonde par défaut de démarrage/d'activité ciblant /healthz avec un délai initial de 60 secondes | §Observabilité dans les guides des plateformes |
2. Image de conteneur
Wikijs_Common définit container_image = "requarks/wiki:2" et
image_source = "custom". Cloud Build est utilisé pour construire une image étendue
à partir du Dockerfile du sous-répertoire scripts/, qui installe Chromium (pour
l'export PDF) et intègre un entrypoint.sh personnalisé. L'image construite est
poussée vers Artifact Registry.
Lorsque enable_image_mirroring = true (valeur par défaut), l'image amont
requarks/wiki:2 est mise en miroir depuis Docker Hub dans Artifact Registry avant le
build, ce qui évite les limites de débit de Docker Hub et garantit la
reproductibilité du build.
3. Moteur de base de données et amorçage
Wiki.js nécessite PostgreSQL 15 ; le moteur est fixe et MySQL n'est pas pris en
charge. Lors du premier déploiement, un job ponctuel db-init exécute l'image
postgres:15-alpine et se connecte à Cloud SQL via l'Auth Proxy. De manière
idempotente, il :
- Crée l'utilisateur
wikijs(ou met à jour son mot de passe s'il existe déjà), - Accorde à l'utilisateur les rôles nécessaires,
- Crée la base de données
wikijsappartenant à cet utilisateur (si elle est absente), - Accorde à l'utilisateur tous les droits sur la base de données et le schéma public.
Le job signale ensuite au sidecar Cloud SQL Proxy de s'arrêter afin que le Job se termine proprement. Le job peut être réexécuté sans risque. Inspectez directement la base de données avec :
gcloud sql connect <instance-name> --user=<db-user> --project "$PROJECT"
L'extension PostgreSQL pg_trgm — requise pour la recherche en texte intégral de
Wiki.js — est installée séparément par le socle après le provisionnement de la base
de données.
Les noms de l'instance, de la base de données et de l'utilisateur figurent dans les outputs du déploiement de la plateforme.
4. Paramètres principaux de l'application
Wikijs_Common établit l'environnement de base de Wiki.js afin que l'application
démarre correctement au premier lancement :
- Connexion à la base de données —
DB_TYPE=postgres,DB_PORT=5432,DB_USER,DB_NAME,DB_SSL=false. Ces valeurs sont préremplies dansenvironment_variableset ne doivent pas être supprimées.DB_HOSTest injecté à l'exécution à partir du chemin du socket du Cloud SQL Auth Proxy.DB_PASSprovient de Secret Manager et est injecté viasecret_environment_variables. - Chemin de stockage des ressources —
HA_STORAGE_PATH=/wiki-storageindique à Wiki.js où écrire les fichiers et ressources téléversés. Le volume NFS (lorsqueenable_nfs = true) ou le volume GCS Fuse doit être monté sur ce même chemin. ModifierHA_STORAGE_PATHsans modifier également le chemin de montage du volume fait atterrir les fichiers téléversés sur le disque éphémère du conteneur, et ils sont perdus au redémarrage. - Port du conteneur — Wiki.js écoute sur le port 3000. Ce port est fixé par
Wikijs_Commonet ne doit pas être modifié. - Point d'entrée —
entrypoint.shfait correspondre les noms de variables standard de la plateforme (DB_PASSWORD→DB_PASS,DB_IP→DB_HOST) aux noms que lit Wiki.js avant de passer la main ànode server.
5. Stockage d'objets
Un bucket Cloud Storage dédié wikijs-storage est déclaré ici et provisionné par
le socle. Le bucket contient les ressources persistantes de Wiki.js. Pour rendre le
bucket accessible dans le conteneur, configurez gcs_volumes dans le module de
plateforme afin de le monter sur /wiki-storage :
# List the provisioned storage bucket:
gcloud storage buckets list --project "$PROJECT" --filter="name~wikijs"
Pour les variantes Cloud Run comme GKE, le bucket n'est pas monté automatiquement —
vous devez ajouter explicitement une entrée de volume GCS Fuse via gcs_volumes. Le
partage NFS Filestore (enable_nfs = true) fournit un volume partagé complémentaire
pour les fichiers qui nécessitent un accès à faible latence par plusieurs pods.
6. Comportement des sondes de santé
Les sondes de démarrage et d'activité ciblent toutes deux /healthz, que Wiki.js
expose comme un point de terminaison léger reflétant l'état en direct de
l'application et de la connexion à la base de données. Les sondes comportent un
délai initial de 60 secondes sur les deux variantes afin de laisser le temps :
- Au premier lancement : au job
db-initde se terminer, puis à Wiki.js de se connecter et d'exécuter sa propre migration interne du schéma avant d'accepter des requêtes. - En régime établi : au processus Node.js de charger tous les modules avant que le pod soit marqué comme prêt.
Ne réduisez pas initial_delay_seconds en dessous de 30 sur les nouveaux
déploiements — Wiki.js serait arrêté avant la fin de l'initialisation de sa base de
données.
Pour la configuration propre à Wiki.js destinée aux utilisateurs (variables par groupe, outputs, et comment explorer chaque service depuis la console et la CLI), consultez les guides des plateformes : Wikijs_GKE et Wikijs_CloudRun.
Guides associés
- Wiki.js sur Google Cloud Run — cette configuration déployée sur Cloud Run.
- Wiki.js sur GKE Autopilot — cette configuration déployée sur GKE.
Need RAD to do something it does not do yet? Request it on the roadmap, or vote on what is already there.