Default Site

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
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
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/
nginx -t

Herstart de proxyserver

systemctl reload nginx

Voorzie de site van een certificaat

sudo certbot --nginx -d wikijs.vanrobbert.nl