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.