version: "{{ docker_compose_version }}" networks: traefik: external: true db: external: false services: {{ role_name }}: container_name: "{{ role_name }}" image: ghcr.io/nathanvaughn/webtrees:latest restart: unless-stopped networks: - traefik - db environment: PRETTY_URLS: "1" BASE_URL: "https://ancestry.{{ personal_domain }}" DB_TYPE: "pgsql" DB_PORT: 5432 DB_HOST: "db" DB_NAME: "webtrees" DB_USER: "webtrees" DB_PASSWORD: "webtrees" WT_USER: "mike" WT_PASS: "mike" WT_EMAIL: email@email.com volumes: - "{{ data_dir }}/{{ role_name }}/data:/var/www/webtrees/data" - "{{ data_dir }}/{{ role_name }}/media:/var/www/webtrees/media" labels: traefik.enable: true traefik.http.routers.{{ role_name }}.rule: "Host(`ancestry.{{ personal_domain }}`)" traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file db: image: lscr.io/linuxserver/mariadb:latest restart: unless-stopped networks: - db environment: TZ: {{ timezone }} MYSQL_DATABASE: webtrees MYSQL_USER: webtrees MYSQL_PASSWORD: webtrees MYSQL_ROOT_PASSWORD: webtrees volumes: - "{{ data_dir }}/mariadb/webtrees:/config"