summaryrefslogtreecommitdiffstats
path: root/docker-compose.yml
diff options
context:
space:
mode:
Diffstat (limited to 'docker-compose.yml')
-rw-r--r--docker-compose.yml251
1 files changed, 251 insertions, 0 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..fd91317
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,251 @@
+
+version: "3.9"
+
+networks:
+ proxy:
+ external: true
+
+services:
+ baikal:
+ image: ckulka/baikal:nginx
+ container_name: baikal
+ volumes:
+ - $CONFDIR/baikal:/var/www/baikal/Specific
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:dav.$DOMAIN"
+ traefik.port: "80"
+ cgit:
+ image: chruth/alpine-cgit
+ container_name: cgit
+ environment:
+ - PUID=$PUID
+ - PGID=$PGID
+ - TZ=$TZ
+ volumes:
+ - $SYNCDIR/src:/git
+ - $CONFDIR/cgit/cgitrc:/config/cgitrc
+ - $CONFDIR/cgit/cgit.css:/app/cgit.css
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:git.$DOMAIN"
+ traefik.port: "80"
+ changedetection:
+ image: dgtlmoon/changedetection.io
+ container_name: changedetection
+ volumes:
+ - $CONFDIR/changedetection:/datastore
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:diff.$DOMAIN"
+ traefik.port: "5000"
+ echoip:
+ image: mpolden/echoip
+ container_name: echoip
+ entrypoint: "/opt/echoip/echoip -H X-Real-IP"
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:ip.$DOMAIN"
+ traefik.port: "8080"
+ h5ai:
+ image: awesometic/h5ai
+ container_name: h5ai
+ environment:
+ - PUID=$PUID
+ - PGID=$PGID
+ - TZ=$TZ
+ volumes:
+ - $SYNCDIR/pub:/h5ai
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:pub.$DOMAIN"
+ traefik.port: "80"
+ hugo:
+ image: klakegg/hugo
+ container_name: hugo
+ command: "server --watch=true --minify --source=/src --baseURL=https://$DOMAIN --bind=0.0.0.0 --appendPort=false --buildFuture"
+ volumes:
+ - $SYNCDIR/src/blog.$DOMAIN:/src
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:$DOMAIN,blog.$DOMAIN,www.$DOMAIN"
+ traefik.port: "1313"
+ jackett:
+ image: linuxserver/jackett
+ container_name: jackett
+ environment:
+ - PUID=$PUID
+ - PGID=$PGID
+ - TZ=$TZ
+ volumes:
+ - $CONFDIR/jackett:/config
+ - $SYNCDIR:/downloads
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:jack.$DOMAIN"
+ traefik.port: "9117"
+ traefik.frontend.auth.basic.usersFile: "/app/htpasswd"
+ php-dev:
+ image: php:apache
+ container_name: php-dev
+ restart: unless-stopped
+ command: bash -c "sed -i 's|33|$PUID|g' /etc/passwd && a2enmod rewrite && apache2-foreground"
+ volumes:
+ - $SYNCDIR/src/php-dev:/var/www/html
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:dev.$DOMAIN"
+ traefik.port: "80"
+ postgres:
+ image: postgres:alpine
+ container_name: postgres
+ restart: unless-stopped
+ ports:
+ - 44432:5432
+ environment:
+ - POSTGRES_PASSWORD=$DBPASSWORD
+ volumes:
+ - $CONFDIR/postgres:/var/lib/postgresql/data
+ rclone:
+ image: rclone/rclone
+ container_name: rclone
+ user: "$PUID:$PGID"
+ read_only: true
+ command: "serve http '$RCLONE_REMOTE_MEDIA' --addr '0.0.0.0:8080' -vv"
+ volumes:
+ - $CONFDIR/rclone:/config/rclone/
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:repo.$DOMAIN"
+ traefik.port: "8080"
+ traefik.frontend.auth.basic.usersFile: "/app/htpasswd"
+ syncthing:
+ image: linuxserver/syncthing
+ container_name: syncthing
+ environment:
+ - PGID=$PGID
+ - PUID=$PUID
+ volumes:
+ - $CONFDIR/syncthing:/config
+ - $SYNCDIR:/vault
+ ports:
+ - 22000:22000
+ - 21027:21027/udp
+ restart: unless-stopped
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:sync.$DOMAIN"
+ traefik.port: "8384"
+ traefik:
+ image: traefik:1.7
+ container_name: traefik
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - $CONFDIR/traefik/traefik.toml:/etc/traefik/traefik.toml
+ - $CONFDIR/traefik/acme.json:/etc/traefik/acme.json
+ - $CONFDIR/traefik:/app/
+ ports:
+ - 80:80
+ - 443:443
+ restart: unless-stopped
+ networks:
+ - proxy
+ ttrss:
+ image: wangqiru/ttrss
+ container_name: ttrss
+ restart: unless-stopped
+ environment:
+ - SELF_URL_PATH=https://rss.$DOMAIN/
+ - DB_HOST=$DOMAIN
+ - DB_PASS=$DBPASSWORD
+ - DB_PORT=44432
+ - DB_TYPE=pgsql
+ - DB_USER=postgres
+ depends_on:
+ - postgres
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:rss.$DOMAIN"
+ traefik.port: "80"
+ vaultwarden:
+ image: vaultwarden/server
+ container_name: vaultwarden
+ volumes:
+ - $CONFDIR/vaultwarden:/data
+ environment:
+ - WEBSOCKET_ENABLED=false
+ - SIGNUPS_ALLOWED=false
+ ports:
+ - 3012:3012
+ restart: unless-stopped
+ depends_on:
+ - traefik
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:pass.$DOMAIN"
+ traefik.port: "80"
+ watchtower:
+ image: containrrr/watchtower
+ container_name: watchtower
+ restart: unless-stopped
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ wireguard:
+ image: place1/wg-access-server
+ container_name: wireguard
+ restart: unless-stopped
+ cap_add:
+ - NET_ADMIN
+ environment:
+ WG_ADMIN_PASSWORD: $WG_WEBUI_PASS
+ WG_WIREGUARD_PRIVATE_KEY: $WG_PRIVKEY
+ volumes:
+ - $CONFDIR/wireguard:/data
+ ports:
+ - 51820:51820/udp
+ devices:
+ - "/dev/net/tun:/dev/net/tun"
+ networks:
+ - proxy
+ labels:
+ traefik.frontend.rule: "Host:vpn.$DOMAIN"
+ traefik.port: "8000"