Here’s an example of our docker-file for Wiki.JS with NFS DB storage, Postgres and Traefik;
version: "3"
volumes:
db-data:
driver_opts:
type: "nfs"
o: addr=nfshost.example.com,nolock,soft,rw
device: ":/mnt/Pool0/WikiJS"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: Supersecurepassword
POSTGRES_USER: wikijs
command: postgres -c listen_addresses='*'
logging:
driver: "none"
restart: unless-stopped
networks:
- internal
labels:
- traefik.enable=false
volumes:
- type: volume
source: db-data
target: /var/lib/postgresql/data
volume:
nocopy: true
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: Supersecurepassword
DB_NAME: wiki
restart: unless-stopped
networks:
- proxy
- internal
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.ex-wikijs.entrypoints=https"
- "traefik.http.routers.ex-wikijs.rule=Host(`wikijs.example.com`)"
- "traefik.http.services.ex-wikijs.loadbalancer.server.port=3000"
networks:
proxy:
external: true
internal:
external: false
This stands up a postgres instance using the NFS mount as storage, allows the internal network to connect to it, stands up a wiki.js instance and gets it all going for you. All behind a Traefik proxy.