Sur un serveur debian, en root.
apt install ca-certificates curl gnupg lsb-release docker.io docker-compose
mkdir -p /etc/wiki
openssl rand -base64 32 > /etc/wiki/.db-secret
# /etc/wiki/docker-compose.yml
networks:
wikinet:
name: wikinet
driver: bridge
volumes:
pgdata:
name: pgdata
services:
db:
image: postgres:17
container_name: db
hostname: db
restart: unless-stopped
environment:
POSTGRES_DB: wiki
POSTGRES_USER: wiki
POSTGRES_PASSWORD_FILE: /etc/wiki/.db-secret
volumes:
- /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro
- pgdata:/var/lib/postgresql/data
networks:
- wikinet
wiki:
image: ghcr.io/requarks/wiki:2
container_name: wiki
hostname: wiki
restart: unless-stopped
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wiki
DB_NAME: wiki
DB_PASS_FILE: /etc/wiki/.db-secret
UPGRADE_COMPANION: 1
volumes:
- /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro
extra_hosts:
- "gitea:IP_GITEA"
ports:
- "80:3000"
- "443:3443"
networks:
- wikinet
# Lancer avec Compose
cd /etc/wiki
docker compose pull
docker compose up -d
Et pour les futures mises à jour, juste cette commande à ajouter dans une crontab :
cd /etc/wiki && docker compose pull && docker compose up -d && docker image prune -f
Pour autoriser temporairement votre station de travail à accéder aux ports HTTP/HTTPS avant la configuration du reverse proxy, exécutez la commande suivante en remplaçant IP_STATION par l'adresse IP de votre poste :
nft add rule inet filter input ip saddr IP_STATION tcp dport { 80, 443 } accept
Notes techniques :
http://ip_wiki : suivre les étapes dans votre navigateur.
Une fois l'onboarding terminé et les accès sécurisés, ajouter les entrées DNS souhaitées, créer les certificats ssl et ajouter le wiki au reverse proxy.
Administration -> Stockage -> Git : entrez les paramètres de votre dépôt privé git dédié à cette tâche pour garder l'historique des articles.
Notez le paramètre --add-host=gitea:IP_GITEA lors de la création du docker, essentiel pour pouvoir contacter un serveur gitea privé.
Et voilà ! Au pire du pire, la machine crashe définitivement et tous les articles restent parfaitement visibles sur le git puisque c'est du markdown. Il peuvent alors être utilisé pour réinstaller un nouveau wiki et synchronisé avec le git pour récupérer l'état actuel.