Wiki JS
1. Docker config
Maak een basis Docker Compose-bestand.
services:
db:
image: postgres:18
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: robberttech
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql
wiki:
image: ghcr.io/requarks/wiki:3
depends_on:
- db
environment:
ADMIN_EMAIL: mail@vanrobbert.nl
ADMIN_PASS: SuperSecret123
DB_HOST: db
DB_USER: robberttech
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "3001:3000"
volumes:
db-data:
Set Database Password
PASS=$(python3 -c 'import secrets,string; print("".join(secrets.choice(string.ascii_letters + string.digits + "!@#$%^&*()-_=+") for _ in range(20)))') &&
PASS=${PASS//\$/\$\$} &&
sed -i -E "/^[[:space:]]*(POSTGRES_PASSWORD|DB_PASS):/s|(:[[:space:]]*).*|\1'$PASS'|" compose.yml
- Controle
grep -E 'POSTGRES_PASSWORD|DB_PASS' compose.yml
Set Admin Password
sed -i -E "/^[[:space:]]*ADMIN_PASS:/s|(:[[:space:]]*).*|\1'$(python3 -c 'import secrets,string; print("".join(secrets.choice(string.ascii_letters + string.digits + "!@#$%^&*()-_=+") for _ in range(20))).replace("$", "$$"))'|" compose.yml
- Controleer
grep -E 'ADMIN_PASS' compose.yml
2. NGINX config
Maak een configuratie om Nginx in te stellen als een reverse proxy.
nano /etc/nginx/sites-available/wikijs.conf
Inhoud
server {
listen 80;
server_name wikijs.vanrobbert.nl;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Maak actief
ln -s /etc/nginx/sites-available/wikijs.conf /etc/nginx/sites-enabled/
- Controleer of de config klopt
nginx -t
Herstart de proxyserver
systemctl reload nginx
Voorzie de site van een certificaat
sudo certbot --nginx -d wikijs.vanrobbert.nl