version: '3'
services:
    edaweb:
        build:
            context: .
            dockerfile: Dockerfile
        image: jwansek/edaweb
        volumes:
            - /tmp/:/media/ISOs/
            - ./static/:/app/static/
            - ./edaweb.conf:/app/edaweb.conf
        ports:
            - "6969:6969"
        networks:
            - db-network
            - edaweb-net
        external_links:
            - mariadb:mysql
        restart: unless-stopped

    homelab-wiki:
        build:
            context: ./homelab-wiki
            dockerfile: Dockerfile
        image: jwansek/edawiki2
        volumes:
            - ./homelab-wiki/images:/var/www/html/images
            - ./homelab-wiki/LocalSettings.php:/var/www/html/LocalSettings.php
        env_file:
            - ./homelab-wiki/wiki.env
        ports:
            - "6970:80"
        networks:
            - db-network
            - edaweb-net
        external_links:
            - mariadb:mysql
        restart: unless-stopped

    nitter:
        build:
            context: ./nitter/nitter
            dockerfile: Dockerfile
        image: jwansek/nitter:latest
        ports:
            - "127.0.0.1:7777:7777" # Replace with "8080:8080" if you don't use a reverse proxy
        volumes:
            - ./nitter/nitter.conf:/src/nitter.conf:Z,ro
            - ./nitter/guest_accounts.json:/src/guest_accounts.json:Z,ro
        depends_on:
            - nitter-redis
        healthcheck:
            test: wget -nv --tries=1 --spider http://127.0.0.1:8080/Jack/status/20 || exit 1
            interval: 30s
            timeout: 5s
            retries: 2
        networks:
            - edaweb-net
        user: "998:998"
        read_only: true
        security_opt:
            - no-new-privileges:true
        cap_drop:
            - ALL

    nitter-redis:
        image: redis:6-alpine
        command: redis-server --save 60 1 --loglevel warning
        volumes:
            - nitter-redis:/data
        healthcheck:
            test: redis-cli ping
            interval: 30s
            timeout: 5s
            retries: 2
        networks:
            - edaweb-net
        user: "999:1000"
        read_only: true
        security_opt:
            - no-new-privileges:true
        cap_drop:
            - ALL

networks:
    edaweb-net:
        external:
            name: edaweb-net

    db-network:
        external:
            name: mariadb

volumes:
    nitter-redis: