services:
    postgres:
        container_name: piped_postgres
        env_file:
            - .pgs.env
        image: postgres:15-alpine
        logging:
            driver: json-file
            options:
                max-size: 50m
                max-file: "3"
        networks:
            traefik: null
        restart: always
        privileged: true
        volumes:
            - data:/var/lib/postgresql/data

    piped:
        container_name: piped
        depends_on:
            - postgres
        image: 1337kavin/piped:latest
        labels:
            traefik.docker.network: traefik
            traefik.enable: true
            traefik.http.routers.piped.entrypoints: websecure
            traefik.http.routers.piped.rule: Host(`piped.alexlebens.net`)
            traefik.http.routers.piped.service: piped
            traefik.http.services.piped.loadbalancer.server.port: 8080
        logging:
            driver: json-file
            options:
                max-size: 50m
                max-file: "3"
        networks:
            traefik: null
        restart: always
        privileged: true
        volumes:
            - /var/lib/docker/volumes/partition/piped_config/config.properties:/app/config.properties

networks:
    traefik:
        name: traefik
        external: true

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

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