mirror of
https://github.com/bensuperpc/infrastructure.git
synced 2024-11-12 21:21:36 +01:00
213 lines
4.2 KiB
YAML
213 lines
4.2 KiB
YAML
version: '3.9'
|
|
services:
|
|
# Webserver
|
|
caddy:
|
|
image: caddy:latest
|
|
container_name: webserver
|
|
profiles:
|
|
- webserver
|
|
restart: on-failure
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
volumes:
|
|
- wordpress:/var/www/html:rw
|
|
- caddy_data:/data:rw
|
|
- caddy_config:/config:rw
|
|
- ./caddy:/etc/caddy:ro
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
# cap_drop:
|
|
# - ALL
|
|
# cap_add:
|
|
# - CHOWN
|
|
# - FOWNER
|
|
# - DAC_OVERRIDE
|
|
# - SETGID
|
|
# - SETUID
|
|
# - NET_BIND_SERVICE
|
|
|
|
# Database wordpress
|
|
database:
|
|
image: mariadb:latest
|
|
container_name: database
|
|
profiles:
|
|
- database
|
|
- wordpress
|
|
depends_on:
|
|
- caddy
|
|
restart: on-failure
|
|
volumes:
|
|
- database:/var/lib/mysql:rw
|
|
env_file:
|
|
- env/wordpress_db.env
|
|
command: '--default-authentication-plugin=mysql_native_password'
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Wordpress
|
|
wordpress:
|
|
image: wordpress:fpm
|
|
container_name: wordpress
|
|
profiles:
|
|
- wordpress
|
|
restart: on-failure
|
|
depends_on:
|
|
- database
|
|
- caddy
|
|
env_file:
|
|
- env/wordpress.env
|
|
volumes:
|
|
- ./config/wordpress/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro
|
|
- wordpress:/var/www/html:rw
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Adminer
|
|
adminer:
|
|
image: adminer:latest
|
|
container_name: adminer
|
|
profiles:
|
|
- adminer
|
|
restart: on-failure
|
|
env_file:
|
|
- env/adminer.env
|
|
depends_on:
|
|
- database
|
|
- caddy
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Gitea
|
|
gitea:
|
|
image: gitea/gitea:latest-rootless
|
|
container_name: gitea
|
|
profiles:
|
|
- gitea
|
|
restart: on-failure
|
|
depends_on:
|
|
- caddy
|
|
env_file:
|
|
- env/gitea.env
|
|
volumes:
|
|
- gitea_data:/var/lib/gitea
|
|
- gitea_config:/etc/gitea
|
|
# - /etc/timezone:/etc/timezone:ro
|
|
# - /etc/localtime:/etc/localtime:ro
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Database gitea
|
|
database_gitea:
|
|
image: mariadb:latest
|
|
container_name: database_gitea
|
|
profiles:
|
|
- database
|
|
- gitea
|
|
depends_on:
|
|
- gitea
|
|
restart: on-failure
|
|
volumes:
|
|
- gitea_db:/var/lib/mysql:rw
|
|
env_file:
|
|
- env/gitea_db.env
|
|
command: '--default-authentication-plugin=mysql_native_password'
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Jellyfin
|
|
jellyfin:
|
|
image: jellyfin/jellyfin:latest
|
|
container_name: jellyfin
|
|
profiles:
|
|
- jellyfin
|
|
restart: on-failure
|
|
depends_on:
|
|
- caddy
|
|
volumes:
|
|
- jellyfin_config:/config
|
|
- jellyfin_data:/movies:ro
|
|
- jellyfin_cache:/cache
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# qBittorrent
|
|
qbittorrent:
|
|
image: lscr.io/linuxserver/qbittorrent:latest
|
|
container_name: qbittorrent
|
|
profiles:
|
|
- qbittorrent
|
|
restart: on-failure
|
|
depends_on:
|
|
- caddy
|
|
env_file:
|
|
- env/qbittorrent.env
|
|
volumes:
|
|
- qbittorrent_config:/config
|
|
- qbittorrent_data:/downloads
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
# Uptime Kuma
|
|
uptime-kuma:
|
|
image: louislam/uptime-kuma:latest
|
|
container_name: uptime-kuma
|
|
profiles:
|
|
- uptime-kuma
|
|
volumes:
|
|
- uptimekuma_data:/app/data
|
|
restart: on-failure
|
|
networks:
|
|
- infra-network
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
volumes:
|
|
database:
|
|
name: database
|
|
wordpress:
|
|
name: wordpress
|
|
caddy_data:
|
|
name: caddy_data
|
|
caddy_config:
|
|
name: caddy_config
|
|
qbittorrent_config:
|
|
name: qbittorrent_config
|
|
qbittorrent_data:
|
|
name: qbittorrent_data
|
|
uptimekuma_data:
|
|
name: uptimekuma_data
|
|
gitea_data:
|
|
name: gitea_data
|
|
gitea_config:
|
|
name: gitea_config
|
|
gitea_db:
|
|
name: gitea_db
|
|
jellyfin_config:
|
|
name: jellyfin_config
|
|
jellyfin_data:
|
|
name: jellyfin_data
|
|
jellyfin_cache:
|
|
name: jellyfin_cache
|
|
|
|
networks:
|
|
infra-network:
|
|
driver: bridge
|
|
name: infra-network
|