Initial commit
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
certs/
|
||||
data/
|
||||
env/
|
||||
sql/
|
232
compose.yml
Normal file
232
compose.yml
Normal file
@ -0,0 +1,232 @@
|
||||
services:
|
||||
watchtower: # Watchtower (automatically updates base images)
|
||||
container_name: watchtower
|
||||
image: containrrr/watchtower:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- service_network
|
||||
portainer:
|
||||
container_name: portainer
|
||||
image: portainer/portainer-ce:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./data/portainer:/data
|
||||
networks:
|
||||
- service_network
|
||||
expose:
|
||||
- 9000
|
||||
npm: # Nginx Proxy Manager (handles proxies)
|
||||
container_name: npm
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
restart: always
|
||||
env_file: ./env/npm.env
|
||||
volumes:
|
||||
- ./data/npm:/data
|
||||
- ./data/letsencrypt:/etc/letsencrypt
|
||||
networks:
|
||||
- service_network
|
||||
- hidden_network
|
||||
ports:
|
||||
- 80:80
|
||||
- 81:81
|
||||
- 443:443
|
||||
nextcloud: # Nextcloud (hosts file server)
|
||||
container_name: nextcloud
|
||||
image: nextcloud:latest
|
||||
restart: unless-stopped
|
||||
env_file: ./env/nextcloud.env
|
||||
volumes:
|
||||
- ./data/nextcloud:/var/www/html
|
||||
- /mnt/storage/nextcloud:/var/www/html/data
|
||||
networks:
|
||||
- service_network
|
||||
- nextcloud_network
|
||||
expose:
|
||||
- 80
|
||||
depends_on:
|
||||
- nextcloud-db
|
||||
- nextcloud-cache
|
||||
nextcloud-db:
|
||||
container_name: nextcloud-db
|
||||
image: mariadb:10.6
|
||||
restart: always
|
||||
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
||||
env_file: ./env/nextcloud-db.env
|
||||
volumes:
|
||||
- ./data/nextcloud-db:/var/lib/mysql
|
||||
networks:
|
||||
- nextcloud_network
|
||||
nextcloud-cache:
|
||||
container_name: nextcloud-cache
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
networks:
|
||||
- nextcloud_network
|
||||
pterodactyl: # Pterodactyl (hosts game servers)
|
||||
container_name: pterodactyl
|
||||
image: ghcr.io/pterodactyl/panel:latest
|
||||
restart: unless-stopped
|
||||
env_file: ./env/pterodactyl.env
|
||||
volumes:
|
||||
- ./data/pterodactyl:/app/var
|
||||
networks:
|
||||
- service_network
|
||||
- pterodactyl_network
|
||||
expose:
|
||||
- 80
|
||||
depends_on:
|
||||
- pterodactyl-db
|
||||
- pterodactyl-cache
|
||||
pterodactyl-db:
|
||||
container_name: pterodactyl-db
|
||||
image: mariadb:10.5
|
||||
restart: always
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
env_file: ./env/pterodactyl-db.env
|
||||
volumes:
|
||||
- ./data/pterodactyl-db:/var/lib/mysql
|
||||
networks:
|
||||
- pterodactyl_network
|
||||
pterodactyl-cache:
|
||||
container_name: pterodactyl-cache
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
networks:
|
||||
- pterodactyl_network
|
||||
photoprism: # Photoprism (manages photo and video library)
|
||||
container_name: photoprism
|
||||
image: photoprism/photoprism:latest
|
||||
restart: unless-stopped
|
||||
env_file: ./env/photoprism.env
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- capabilities: [gpu]
|
||||
devices:
|
||||
- /dev/dri/card0:/dev/dri/card0
|
||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||
working_dir: "/photoprism"
|
||||
volumes:
|
||||
- ./data/photoprism:/photoprism/storage
|
||||
- /mnt/storage/photoprism/import:/photoprism/import
|
||||
- /mnt/storage/photoprism/originals:/photoprism/originals
|
||||
networks:
|
||||
- service_network
|
||||
- photoprism_network
|
||||
expose:
|
||||
- 2342
|
||||
depends_on:
|
||||
- photoprism-db
|
||||
photoprism-db:
|
||||
container_name: photoprism-db
|
||||
image: mariadb:10.10
|
||||
restart: always
|
||||
command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
|
||||
env_file: ./env/photoprism-db.env
|
||||
volumes:
|
||||
- ./data/photoprism-db:/var/lib/mysql
|
||||
networks:
|
||||
- photoprism_network
|
||||
jellyfin: # Jellyfin (manages movies, shows, & books)
|
||||
container_name: jellyfin
|
||||
image: jellyfin/jellyfin:latest
|
||||
restart: unless-stopped
|
||||
user: 1001:0
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- capabilities: [gpu]
|
||||
devices:
|
||||
- /dev/dri/card0:/dev/dri/card0
|
||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||
volumes:
|
||||
- ./data/jellyfin/config:/config
|
||||
- ./data/jellyfin/cache:/cache
|
||||
- /mnt/storage/media/movies:/movies
|
||||
- /mnt/storage/media/shows:/shows
|
||||
- /mnt/storage/media/books:/books
|
||||
networks:
|
||||
service_network:
|
||||
exposed_service_network:
|
||||
ipv4_address: 192.168.1.104
|
||||
gitea: # Gitea (hosts git server)
|
||||
container_name: gitea
|
||||
image: gitea/gitea:latest
|
||||
restart: unless-stopped
|
||||
env_file: ./env/gitea.env
|
||||
volumes:
|
||||
- /mnt/storage/gitea:/data
|
||||
networks:
|
||||
- service_network
|
||||
- gitea_network
|
||||
expose:
|
||||
- 3000
|
||||
depends_on:
|
||||
- gitea-db
|
||||
gitea-db:
|
||||
container_name: gitea-db
|
||||
image: mysql:8
|
||||
restart: always
|
||||
env_file: ./env/gitea-db.env
|
||||
volumes:
|
||||
- ./data/gitea-db:/var/lib/mysql
|
||||
networks:
|
||||
- gitea_network
|
||||
homer: # Homer (displays all self-hosted services)
|
||||
container_name: homer
|
||||
image: b4bz/homer:latest
|
||||
restart: unless-stopped
|
||||
user: 1001:0
|
||||
env_file: ./env/homer.env
|
||||
volumes:
|
||||
- ./data/homer:/www/assets
|
||||
networks:
|
||||
- service_network
|
||||
expose:
|
||||
- 8080
|
||||
uptime-kuma: # Uptime Kuma (displays uptime for all self-hosted services)
|
||||
container_name: uptime-kuma
|
||||
image: louislam/uptime-kuma:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data/uptime-kuma:/app/data
|
||||
networks:
|
||||
- service_network
|
||||
expose:
|
||||
- 3001
|
||||
depends_on:
|
||||
- npm
|
||||
|
||||
|
||||
networks:
|
||||
nextcloud_network:
|
||||
name: nextcloud_network
|
||||
pterodactyl_network:
|
||||
name: pterodactyl_network
|
||||
photoprism_network:
|
||||
name: photoprism_network
|
||||
gitea_network:
|
||||
name: gitea_network
|
||||
hidden_network:
|
||||
name: hidden_network
|
||||
external: true
|
||||
service_network:
|
||||
name: service_network
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.1.0.0/24
|
||||
gateway: 172.1.0.1
|
||||
exposed_service_network:
|
||||
name: exposed_service_network
|
||||
driver: macvlan
|
||||
driver_opts:
|
||||
parent: enp5s0
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 192.168.1.0/24
|
||||
gateway: 192.168.1.1
|
17
template.yml
Normal file
17
template.yml
Normal file
@ -0,0 +1,17 @@
|
||||
services:
|
||||
service:
|
||||
container_name:
|
||||
image:
|
||||
restart:
|
||||
command:
|
||||
user:
|
||||
env_file:
|
||||
environment:
|
||||
deploy:
|
||||
devices:
|
||||
working_dir:
|
||||
volumes:
|
||||
networks:
|
||||
ports:
|
||||
expose:
|
||||
depends_on:
|
Reference in New Issue
Block a user