commit
4507a04211
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,2 @@
|
||||||
.env
|
.env
|
||||||
config/
|
config/
|
||||||
nginx/
|
|
||||||
nextcloud
|
|
||||||
|
|
16
README.md
16
README.md
|
@ -1,9 +1,9 @@
|
||||||
# media-server-docker-compose
|
# Docker Compose for my Media Server
|
||||||
|
|
||||||
### ENV
|
* Arr - A collection of all the *arr apps like Radarr and Sonarr
|
||||||
|
* Dashboard - Replies on Homarr and Dashdot for a top-level dashboard
|
||||||
```
|
* Mail - An email service (WIP)
|
||||||
PLEX_CLAIM=
|
* Nginx-Proxy - Handles reverse proxy and SSL certs
|
||||||
DOMAIN=
|
* Plex - The Plex media server with stats
|
||||||
|
* Readers - Various media readers that can be accessed via the browser
|
||||||
```
|
* Wordpress - for making a site
|
7
arr/.env.example
Normal file
7
arr/.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
167
arr/docker-compose.yml
Normal file
167
arr/docker-compose.yml
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
services:
|
||||||
|
radarr:
|
||||||
|
image: lscr.io/linuxserver/radarr:latest
|
||||||
|
container_name: radarr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=radarr.${DOMAIN},radar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=radarr.${DOMAIN},radar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
- LETSENCRYPT_TEST=true
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/radarr:/config
|
||||||
|
- ${DATA_LOCATION}/Movies:/movies
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
expose:
|
||||||
|
- "7878"
|
||||||
|
ports:
|
||||||
|
- 7878:7878
|
||||||
|
restart: unless-stopped
|
||||||
|
sonarr:
|
||||||
|
image: lscr.io/linuxserver/sonarr:latest
|
||||||
|
container_name: sonarr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=sonarr.${DOMAIN},sonar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=sonarr.${DOMAIN},sonar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/sonarr:/config
|
||||||
|
- ${DATA_LOCATION}/TV:/tv
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
expose:
|
||||||
|
- "8989"
|
||||||
|
ports:
|
||||||
|
- 8989:8989
|
||||||
|
restart: unless-stopped
|
||||||
|
prowlarr:
|
||||||
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
|
container_name: prowlarr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=prowlarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=prowlarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/prowlarr:/config
|
||||||
|
expose:
|
||||||
|
- "9696"
|
||||||
|
ports:
|
||||||
|
- 9696:9696
|
||||||
|
restart: unless-stopped
|
||||||
|
bazarr:
|
||||||
|
image: lscr.io/linuxserver/bazarr:latest
|
||||||
|
container_name: bazarr
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- VIRTUAL_HOST=bazarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=bazarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/bazarr:/config
|
||||||
|
- ${DATA_LOCATION}/Movies:/movies #optional
|
||||||
|
- ${DATA_LOCATION}/TV:/tv #optional
|
||||||
|
expose:
|
||||||
|
- "6767"
|
||||||
|
ports:
|
||||||
|
- 6767:6767
|
||||||
|
restart: unless-stopped
|
||||||
|
overseerr:
|
||||||
|
image: lscr.io/linuxserver/overseerr:latest
|
||||||
|
container_name: overseerr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=overseerr.${DOMAIN},overseer.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=overseerr.${DOMAIN},overseer.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/overseerr:/config
|
||||||
|
expose:
|
||||||
|
- "5055"
|
||||||
|
ports:
|
||||||
|
- 5055:5055
|
||||||
|
restart: unless-stopped
|
||||||
|
lidarr:
|
||||||
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
|
container_name: lidarr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=lidarr.${DOMAIN},lidar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=lidarr.${DOMAIN},lidar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/lidarr:/config
|
||||||
|
- ${DATA_LOCATION}/Music:/music
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
expose:
|
||||||
|
- "8686"
|
||||||
|
ports:
|
||||||
|
- 8686:8686
|
||||||
|
restart: unless-stopped
|
||||||
|
mylar3:
|
||||||
|
image: lscr.io/linuxserver/mylar3:latest
|
||||||
|
container_name: mylar3
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=mylar.${DOMAIN},mylar3.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=mylar.${DOMAIN},mylar3.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/mylar3:/config
|
||||||
|
- ${DATA_LOCATION}/Comics:/comics
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
ports:
|
||||||
|
- 8090:8090
|
||||||
|
restart: unless-stopped
|
||||||
|
readarr:
|
||||||
|
image: lscr.io/linuxserver/readarr:develop
|
||||||
|
container_name: readarr
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=readarr.${DOMAIN},readar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=readarr.${DOMAIN},readar.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/readarr:/config
|
||||||
|
- ${DATA_LOCATION}/Books:/books
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
expose:
|
||||||
|
- "8787"
|
||||||
|
ports:
|
||||||
|
- 8787:8787
|
||||||
|
restart: unless-stopped
|
||||||
|
readarraudio:
|
||||||
|
image: lscr.io/linuxserver/readarr:develop
|
||||||
|
container_name: readarraudio
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/readarr-audio:/config
|
||||||
|
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
7
dashboard/.env.example
Normal file
7
dashboard/.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
38
dashboard/docker-compose.yml
Normal file
38
dashboard/docker-compose.yml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
services:
|
||||||
|
homarr:
|
||||||
|
container_name: homarr
|
||||||
|
image: ghcr.io/ajnart/homarr:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
|
||||||
|
- ${CONFIG_LOCATION}/homarr:/app/data/configs
|
||||||
|
- ${DATA_LOCATION}/homarr/icons:/app/public/icons
|
||||||
|
- ${DATA_LOCATION}/homarr:/data
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST="homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN}"
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
expose:
|
||||||
|
- "7575"
|
||||||
|
ports:
|
||||||
|
- '7575:7575'
|
||||||
|
dashdot:
|
||||||
|
image: mauricenino/dashdot
|
||||||
|
container_name: dashdot
|
||||||
|
restart: unless-stopped
|
||||||
|
privileged: true
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=dash.${DOMAIN}
|
||||||
|
- DASHDOT_ENABLE_CPU_TEMPS=true
|
||||||
|
- DASHDOT_FS_DEVICE_FILTER=sda,sdb,sdc,sdd,sde,sdf
|
||||||
|
- DASHDOT_FS_VIRTUAL_MOUNTS=tank/storage/media, psb29404@psb29404.seedbox.io:/files
|
||||||
|
expose:
|
||||||
|
- "3001"
|
||||||
|
ports:
|
||||||
|
- 3001:3001
|
||||||
|
volumes:
|
||||||
|
- /:/mnt/host:ro
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
|
@ -71,6 +71,7 @@ services:
|
||||||
- ${CONFIG_LOCATION}/plex:/config
|
- ${CONFIG_LOCATION}/plex:/config
|
||||||
- ${DATA_LOCATION}/TV:/tv
|
- ${DATA_LOCATION}/TV:/tv
|
||||||
- ${DATA_LOCATION}/Movies:/movies
|
- ${DATA_LOCATION}/Movies:/movies
|
||||||
|
- ${DATA_LOCATION}/Music:/music
|
||||||
expose:
|
expose:
|
||||||
- "32400"
|
- "32400"
|
||||||
ports:
|
ports:
|
||||||
|
@ -146,6 +147,25 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- 9696:9696
|
- 9696:9696
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
bazarr:
|
||||||
|
image: lscr.io/linuxserver/bazarr:latest
|
||||||
|
container_name: bazarr
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- VIRTUAL_HOST=bazarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=bazarr.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/bazarr:/config
|
||||||
|
- ${DATA_LOCATION}/Movies:/movies #optional
|
||||||
|
- ${DATA_LOCATION}/TV:/tv #optional
|
||||||
|
expose:
|
||||||
|
- "6767"
|
||||||
|
ports:
|
||||||
|
- 6767:6767
|
||||||
|
restart: unless-stopped
|
||||||
overseerr:
|
overseerr:
|
||||||
image: lscr.io/linuxserver/overseerr:latest
|
image: lscr.io/linuxserver/overseerr:latest
|
||||||
container_name: overseerr
|
container_name: overseerr
|
||||||
|
@ -199,6 +219,26 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- 8090:8090
|
- 8090:8090
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
navidrome:
|
||||||
|
image: deluan/navidrome:latest
|
||||||
|
user: 1000:1000 # should be owner of volumes
|
||||||
|
ports:
|
||||||
|
- "4533:4533"
|
||||||
|
expose:
|
||||||
|
- "4533"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
# Optional: put your config options customization here. Examples:
|
||||||
|
ND_SCANSCHEDULE: 1h
|
||||||
|
ND_LOGLEVEL: info
|
||||||
|
ND_SESSIONTIMEOUT: 24h
|
||||||
|
ND_BASEURL: ""
|
||||||
|
VIRTUAL_HOST: "navidrome.${DOMAIN}"
|
||||||
|
LETSENCRYPT_HOST: "navidrome.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_LOCATION}:/data"
|
||||||
|
- "${DATA_LOCATION}/Music:/music:ro"
|
||||||
ubooquity:
|
ubooquity:
|
||||||
image: lscr.io/linuxserver/ubooquity:latest
|
image: lscr.io/linuxserver/ubooquity:latest
|
||||||
container_name: ubooquity
|
container_name: ubooquity
|
||||||
|
|
0
mail/docker-compose.yml
Normal file
0
mail/docker-compose.yml
Normal file
8
nextcloud/.env.example
Normal file
8
nextcloud/.env.example
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
DBPASS=password
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
42
nextcloud/docker-compose.yml
Normal file
42
nextcloud/docker-compose.yml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: redis-dbcache
|
||||||
|
restart: unless-stopped
|
||||||
|
db:
|
||||||
|
image: mysql:latest
|
||||||
|
restart: always
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=${DBPASS}
|
||||||
|
- MYSQL_PASSWORD=${DBPASS}
|
||||||
|
- MYSQL_DATABASE=nextcloud
|
||||||
|
- MYSQL_USER=root
|
||||||
|
nextcloud:
|
||||||
|
image: lscr.io/linuxserver/nextcloud:latest
|
||||||
|
container_name: nextcloud
|
||||||
|
environment:
|
||||||
|
PUID: "1000"
|
||||||
|
PGID: "1000"
|
||||||
|
TZ: "${TZ}"
|
||||||
|
VIRTUAL_HOST: "nextcloud.${DOMAIN}"
|
||||||
|
MYSQL_HOST: db
|
||||||
|
MYSQL_DATABASE: nextcloud
|
||||||
|
MYSQL_USER: root
|
||||||
|
MYSQL_PASSWORD: ${DBPASS}
|
||||||
|
REDIS_HOST: redis
|
||||||
|
LETSENCRYPT_HOST: nextcloud.${DOMAIN}
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
#LETSENCRYPT_TEST: true
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/nextcloud:/config
|
||||||
|
- ${DATA_LOCATION}/Cloud/Nextcloud:/data
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
1
nginx-proxy/.env.example
Normal file
1
nginx-proxy/.env.example
Normal file
|
@ -0,0 +1 @@
|
||||||
|
EMAIL=example@mail.com
|
26
nginx-proxy/docker-compose.yml
Normal file
26
nginx-proxy/docker-compose.yml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
services:
|
||||||
|
nginx-proxy:
|
||||||
|
image: jwilder/nginx-proxy
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
|
- ./nginx/certs:/etc/nginx/certs
|
||||||
|
- ./nginx/html:/usr/share/nginx/html
|
||||||
|
- ./nginx/vhost.d:/etc/nginx/vhost.d
|
||||||
|
- ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro
|
||||||
|
nginx-letsencrypt:
|
||||||
|
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||||
|
container_name: nginx-letsencrypt
|
||||||
|
restart: always
|
||||||
|
volumes_from:
|
||||||
|
- nginx-proxy
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
environment:
|
||||||
|
- DEFAULT_EMAIL=${EMAIL}
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
1
nginx-proxy/nginx/.gitignore
vendored
Normal file
1
nginx-proxy/nginx/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
certs/
|
10
nginx-proxy/nginx/vhost.d/default
Normal file
10
nginx-proxy/nginx/vhost.d/default
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
## Start of configuration add by letsencrypt container
|
||||||
|
location ^~ /.well-known/acme-challenge/ {
|
||||||
|
auth_basic off;
|
||||||
|
auth_request off;
|
||||||
|
allow all;
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
try_files $uri =404;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
## End of configuration add by letsencrypt container
|
|
@ -3,8 +3,6 @@ DOMAIN=example.com
|
||||||
UID=1000
|
UID=1000
|
||||||
GID=1000
|
GID=1000
|
||||||
TZ=Etc/UTC
|
TZ=Etc/UTC
|
||||||
DBUSER=example
|
|
||||||
DBPASS=password
|
|
||||||
CONFIG_LOCATION=./config
|
CONFIG_LOCATION=./config
|
||||||
DATA_LOCATION=./data
|
DATA_LOCATION=./data
|
||||||
EMAIL=example@mail.com
|
EMAIL=example@mail.com
|
40
plex/docker-compose.yml
Normal file
40
plex/docker-compose.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
services:
|
||||||
|
plex:
|
||||||
|
image: plexinc/pms-docker:latest
|
||||||
|
container_name: plex
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=plex.${DOMAIN}
|
||||||
|
- VERSION=docker
|
||||||
|
- PLEX_CLAIM=${PLEX_CLAIM}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/plex:/config
|
||||||
|
- ${DATA_LOCATION}/TV:/tv
|
||||||
|
- ${DATA_LOCATION}/Movies:/movies
|
||||||
|
- ${DATA_LOCATION}/Music:/music
|
||||||
|
expose:
|
||||||
|
- "32400"
|
||||||
|
ports:
|
||||||
|
- 32400:32400
|
||||||
|
restart: unless-stopped
|
||||||
|
tautulli:
|
||||||
|
image: lscr.io/linuxserver/tautulli:latest
|
||||||
|
container_name: tautulli
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- VIRTUAL_HOST=tautulli.${DOMAIN},plex-stats.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=tautulli.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/tautulli:/config
|
||||||
|
ports:
|
||||||
|
- 8181:8181
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
7
readers/.env.example
Normal file
7
readers/.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
59
readers/docker-compose.yml
Normal file
59
readers/docker-compose.yml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
services:
|
||||||
|
navidrome:
|
||||||
|
image: deluan/navidrome:latest
|
||||||
|
user: 1000:1000 # should be owner of volumes
|
||||||
|
ports:
|
||||||
|
- "4533:4533"
|
||||||
|
expose:
|
||||||
|
- "4533"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
# Optional: put your config options customization here. Examples:
|
||||||
|
ND_SCANSCHEDULE: 1h
|
||||||
|
ND_LOGLEVEL: info
|
||||||
|
ND_SESSIONTIMEOUT: 24h
|
||||||
|
ND_BASEURL: ""
|
||||||
|
VIRTUAL_HOST: "navidrome.${DOMAIN}"
|
||||||
|
LETSENCRYPT_HOST: "navidrome.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_LOCATION}:/data"
|
||||||
|
- "${DATA_LOCATION}/Music:/music:ro"
|
||||||
|
ubooquity:
|
||||||
|
image: lscr.io/linuxserver/ubooquity:latest
|
||||||
|
container_name: ubooquity
|
||||||
|
environment:
|
||||||
|
- PUID=${UID}
|
||||||
|
- PGID=${GID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=ubooquity.${DOMAIN}
|
||||||
|
- VIRTUAL_PORT=2202
|
||||||
|
# - MAXMEM= #optional
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/ubooquity:/config
|
||||||
|
- ${DATA_LOCATION}/Books:/books
|
||||||
|
- ${DATA_LOCATION}/Comics:/comics
|
||||||
|
# - /path/to/raw/files:/files
|
||||||
|
expose:
|
||||||
|
- "2202"
|
||||||
|
- "2203"
|
||||||
|
ports:
|
||||||
|
- 2202:2202 #:2202/ubooquity
|
||||||
|
- 2203:2203 #:2203/ubooquity/admin
|
||||||
|
restart: unless-stopped
|
||||||
|
audiobookshelf:
|
||||||
|
image: ghcr.io/advplyr/audiobookshelf:latest
|
||||||
|
ports:
|
||||||
|
- 13378:80
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/audiobookshelf:/config
|
||||||
|
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
||||||
|
# - </path/to/podcasts>:/podcasts
|
||||||
|
- ${DATA_LOCATION}/Audiobooks/metadata:/metadata
|
||||||
|
environment:
|
||||||
|
- TZ=${TZ}
|
||||||
|
- VIRTUAL_HOST=audiobookshelf.${DOMAIN}
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
3
wordpress/.env.example
Normal file
3
wordpress/.env.example
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
DBPASS=password
|
||||||
|
EMAIL=example@mail.com
|
34
wordpress/docker-compose.yml
Normal file
34
wordpress/docker-compose.yml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: clocktower
|
||||||
|
MYSQL_USER: root
|
||||||
|
MYSQL_PASSWORD: ${DBPASS}
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD: '1'
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
wordpress-botc:
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
image: wordpress
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: db
|
||||||
|
WORDPRESS_DB_USER: root
|
||||||
|
WORDPRESS_DB_PASSWORD: ${DBPASS}
|
||||||
|
WORDPRESS_DB_NAME: clocktower
|
||||||
|
VIRTUAL_HOST: "botc.${DOMAIN}, *.phillybotc.com, phillybotc.com"
|
||||||
|
LETSENCRYPT_HOST: "botc.${DOMAIN}, *.phillybotc.com, phillybotc.com"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
LETSENCRYPT_TEST: true
|
||||||
|
volumes:
|
||||||
|
- wordpress-botc:/var/www/html
|
||||||
|
volumes:
|
||||||
|
wordpress-botc:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
Loading…
Reference in New Issue
Block a user