services:
    audiobookshelf:
        container_name: audiobookshelf
        env_file:
            - .env
        image: advplyr/audiobookshelf:latest
        labels:
            traefik.docker.network: traefik
            traefik.enable: true
            traefik.http.routers.audiobookshelf.entrypoints: websecure
            traefik.http.routers.audiobookshelf.rule: Host(`audiobookshelf.alexlebens.net`)
            traefik.http.routers.audiobookshelf.service: audiobookshelf
            traefik.http.services.audiobookshelf.loadbalancer.server.port: 80
        logging:
            driver: json-file
            options:
                max-size: 50m
                max-file: "3"
        networks:
            traefik: null
        restart: always
        privileged: true
        volumes:
            - audiobooks_nfs:/audiobooks
            - podcasts_nfs:/podcasts
            - audiobookshelf_metadata:/metadata
            - audiobookshelf_config:/config

networks:
    traefik:
        name: traefik
        external: true

volumes:
    audiobookshelf_metadata:
        driver: local
        driver_opts:
            type: none
            o: bind
            device: /var/lib/docker/volumes/partition/audiobookshelf_metadata

    audiobookshelf_config:
        driver: local
        driver_opts:
            type: none
            o: bind
            device: /var/lib/docker/volumes/partition/audiobookshelf_config

    audiobooks_nfs:
        driver: local
        driver_opts:
            type: nfs
            o: addr=192.168.1.194,nfsvers=4
            device: ":/volume2/Storage/Audiobooks"

    podcasts_nfs:
        driver: local
        driver_opts:
            type: nfs
            o: addr=192.168.1.194,nfsvers=4
            device: ":/volume2/Storage/Podcasts"
