initial docker-compose files

This commit is contained in:
paan 2022-02-22 17:10:12 +08:00
parent 12f7b1065d
commit 13bd9e62cd
35 changed files with 1223 additions and 0 deletions

19
Ubooquity/docker-compose.yml Executable file
View File

@ -0,0 +1,19 @@
---
version: "2.1"
services:
ubooquity:
image: linuxserver/ubooquity
container_name: ubooquity
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kuala Lumpur
volumes:
- e:/dockermount/Ubooquity/config:/config
- e:/dockermount/Ubooquity/books:/books
- e:/dockermount/Ubooquity/comics:/comics
- e:/dockermount/Ubooquity/files:/files
ports:
- 2202:2202
- 2203:2203
restart: unless-stopped

View File

@ -0,0 +1,25 @@
---
version: "2.1"
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
environment:
- TZ="Asia/Kuala_Lumpur"
volumes:
- ./workdir:/opt/adguardhome/work
- ./confdir:/opt/adguardhome/conf
ports:
- "53:53/tcp" #DNS
- "53:53/udp" #DNS
- "853:853" #DNS over TLS
#- "67:67/udp" #DHCP
#- "68:68" #DHCP
- "3000:3000" #web interface
- "801:80"
- "4431:443"
networks:
app_net:
driver: bridge
enable_ipv6: true
restart: unless-stopped

25
adguardhome/docker-compose.yml Executable file
View File

@ -0,0 +1,25 @@
---
version: "2.4"
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
environment:
- TZ="Asia/Kuala_Lumpur"
volumes:
- ./workdir:/opt/adguardhome/work
- ./confdir:/opt/adguardhome/conf
ports:
- "53:53/tcp" #DNS
- "53:53/udp" #DNS
- "853:853" #DNS over TLS
#- "67:67/udp" #DHCP
#- "68:68" #DHCP
- "3000:3000" #web interface
- "801:80"
- "4431:443"
restart: unless-stopped
#networks:
# app_net:
# driver: bridge
#enable_ipv6: true

View File

@ -0,0 +1,19 @@
---
version: "2.1"
services:
booksonic-air:
image: linuxserver/booksonic-air
container_name: booksonic-air
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- CONTEXT_PATH=athena.local
volumes:
- ./config:/config
- /Media/Audiobooks:/audiobooks
- /Media/Podcasts:/podcasts
- /Media/othermedia:/othermedia
ports:
- 4040:4040
restart: unless-stopped

28
calibre/docker-compose.yml Executable file
View File

@ -0,0 +1,28 @@
---
version: "2.1"
services:
calibre-web:
image: linuxserver/calibre-web
container_name: calibre-web
environment:
- TZ=Asia/Kuala Lumpur
- DOCKER_MODS=linuxserver/calibre-web:calibre
volumes:
- e:/dockermount/calibre/calibre-web-config:/config
- e:/dockermount/calibre/books:/books
ports:
- 8383:8083
restart: unless-stopped
calibre:
image: linuxserver/calibre
container_name: calibre
environment:
- TZ=Asia/Kuala Lumpur
volumes:
- e:/dockermount/calibre/calibre-config:/config
- e:/dockermount/calibre/books:/books
- e:/dockermount/calibre/input:/input
ports:
- 8380:8080
- 8381:8081
restart: unless-stopped

View File

@ -0,0 +1,27 @@
#-p 8080:5000
#--ulimit nofile=1024
#--tmpfs /opt/omd/sites/cmk/tmp:
#uid=1000,gid=1000 -v monitoring:/omd/sites
#--name monitoring -v /etc/localtime:/etc/localtime:ro
#--restart always
#checkmk/check-mk-raw:1.6.0-latest
version: "3.6"
services:
check-mk:
image: checkmk/check-mk-raw:1.6.0-latest
container_name: check-mk
ports:
- "8222:5000"
environment:
- PUID=1000
- PGID=100
ulimits:
nofile: 1024
volumes:
- type: tmpfs
target: /opt/omd/sites/cmk/tmp
- /etc/localtime:/etc/localtime:ro
#restart always

View File

@ -0,0 +1,21 @@
---
version: "2.1"
services:
code-server:
image: lscr.io/linuxserver/code-server
container_name: code-server
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- PASSWORD=password #optional
- HASHED_PASSWORD= #optional
- SUDO_PASSWORD=password #optional
- SUDO_PASSWORD_HASH= #optional
- PROXY_DOMAIN=code-server.my.domain #optional
- DEFAULT_WORKSPACE=/config/workspace #optional
volumes:
- ./config:/config
ports:
- 8443:8443
restart: unless-stopped

View File

@ -0,0 +1,20 @@
---
version: "2.1"
services:
openvscode-server:
image: lscr.io/linuxserver/openvscode-server
container_name: openvscode-server
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- CONNECTION_TOKEN=supersecrettoken #optional
#- CONNECTION_SECRET= #optional
#- SUDO_PASSWORD=password #optional
#- SUDO_PASSWORD_HASH= #optional
volumes:
- ./config:/config
- /dockermount:/dockermount
ports:
- 3333:3000
restart: unless-stopped

14
ddclient/docker-compose.yml Executable file
View File

@ -0,0 +1,14 @@
---
version: "2.1"
services:
ddclient:
image: linuxserver/ddclient
container_name: ddclient
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
volumes:
- ./config:/config
- ./config:/etc/ddclient
restart: unless-stopped

14
dokuwiki/docker-compose.yml Executable file
View File

@ -0,0 +1,14 @@
---
version: "2.1"
services:
dokuwiki:
image: linuxserver/dokuwiki
container_name: dokuwiki
environment:
- TZ=Asia/Kuala Lumpur
volumes:
- ./config:/config
ports:
- 802:80
- 4432:443 #optional
restart: unless-stopped

View File

@ -0,0 +1,11 @@
version: '2'
services:
droppy:
container_name: droppy
image: silverwind/droppy
ports:
- 9989:8989
volumes:
- ./config:/config
- /dockermount:/files
restart: unless-stopped

13
droppy/docker-compose.yml Normal file
View File

@ -0,0 +1,13 @@
version: '2'
services:
droppy:
container_name: droppy
image: silverwind/droppy
ports:
- 9999:8989
volumes:
- ./config:/config
- /dockermount/plex:/files
#sysctls:
# - fs.inotify.max_user_watches=524288
restart: unless-stopped

View File

@ -0,0 +1,20 @@
version: '2'
services:
app:
container_name: filestash
image: machines/filestash
restart: always
environment:
- APPLICATION_URL=
- GDRIVE_CLIENT_ID=<gdrive_client>
- GDRIVE_CLIENT_SECRET=<gdrive_secret>
- DROPBOX_CLIENT_ID=<dropbox_key>
- ONLYOFFICE_URL=http://onlyoffice
ports:
- "8334:8334"
extra_hosts:
- "host.docker.internal:host-gateway"
onlyoffice:
container_name: filestash_oods
image: onlyoffice/documentserver
restart: always

View File

@ -0,0 +1,27 @@
version: '3.3'
services:
app:
image: fireflyiii/core:latest
restart: always
volumes:
- firefly_iii_upload:/var/www/html/storage/upload
env_file: .env
ports:
- 80:8080
depends_on:
- db
db:
image: mariadb
hostname: fireflyiiidb
restart: always
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
volumes:
- firefly_iii_db:/var/lib/mysql
volumes:
firefly_iii_upload:
firefly_iii_db:

42
gitea/docker-compose.yml Normal file
View File

@ -0,0 +1,42 @@
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=100
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3434:3000"
- "2222:22"
depends_on:
- db
db:
image: postgres
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data

16
heimdall/docker-compose.yml Executable file
View File

@ -0,0 +1,16 @@
---
version: "2.1"
services:
heimdall:
image: linuxserver/heimdall
container_name: heimdall
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
volumes:
- ./config:/config
ports:
- 9999:80
#- 443:443
restart: unless-stopped

View File

@ -0,0 +1,19 @@
---
version: "2.1"
services:
homeassistant:
image: lscr.io/linuxserver/homeassistant
container_name: homeassistant
network_mode: host
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
volumes:
- ./config:/config
- /etc/timezone:/etc/timezone:ro
ports:
- 8123:8123 #optional
#devices:
# - /path/to/device:/path/to/device
restart: unless-stopped

View File

@ -0,0 +1,29 @@
---
version: "2.1"
services:
jellyfin:
image: linuxserver/jellyfin
container_name: jellyfin
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- UMASK_SET=022 #optional
volumes:
- /fast/jellyfin/config:/config
#- /path/to/tvseries:/data/tvshows
- /Media:/Media
#- /opt/vc/lib:/opt/vc/lib #optional
ports:
- 8096:8096
- 8920:8920 #optional
- 7359:7359/udp #optional
- 1900:1900/udp #optional
#devices:
#- /dev/dri:/dev/dri #optional
#- /dev/vcsm:/dev/vcsm #optional
#- /dev/vchiq:/dev/vchiq #optional
#- /dev/video10:/dev/video10 #optional
#- /dev/video11:/dev/video11 #optional
#- /dev/video12:/dev/video12 #optional
restart: unless-stopped

21
komga/docker-compose.yml Executable file
View File

@ -0,0 +1,21 @@
---
version: '3.3'
services:
komga:
image: gotson/komga
container_name: komga
volumes:
- type: bind
source: ./config
target: /config
- type: bind
source: /Comics
target: /books
- type: bind
source: /etc/timezone
target: /etc/timezone
read_only: true
ports:
- 8888:8080
user: "1000:100"
restart: unless-stopped

143
librenms/docker-compose.yml Executable file
View File

@ -0,0 +1,143 @@
version: "3.5"
services:
db:
image: mariadb:10.4
container_name: librenms_db
command:
- "mysqld"
- "--innodb-file-per-table=1"
- "--lower-case-table-names=1"
- "--character-set-server=utf8"
- "--collation-server=utf8_unicode_ci"
volumes:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
memcached:
image: memcached:alpine
container_name: librenms_memcached
environment:
- "TZ=${TZ}"
restart: always
redis:
image: redis:5.0-alpine
container_name: librenms_redis
environment:
- "TZ=${TZ}"
restart: always
rrdcached:
image: crazymax/rrdcached
container_name: librenms_rrdcached
volumes:
- "./librenms/rrd:/data/db"
- "./rrd-journal:/data/journal"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "LOG_LEVEL=LOG_INFO"
- "WRITE_TIMEOUT=1800"
- "WRITE_JITTER=1800"
- "WRITE_THREADS=4"
- "FLUSH_DEAD_DATA_INTERVAL=3600"
restart: always
msmtpd:
image: crazymax/msmtpd:latest
container_name: librenms_msmtpd
env_file:
- "./msmtpd.env"
restart: always
librenms:
image: librenms/librenms:latest
container_name: librenms
hostname: librenms
ports:
- target: 8000
published: 8800
protocol: tcp
depends_on:
- db
- memcached
- rrdcached
- msmtpd
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
restart: always
dispatcher:
image: librenms/librenms:latest
container_name: librenms_dispatcher
hostname: librenms-dispatcher
depends_on:
- librenms
- redis
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "DISPATCHER_NODE_ID=dispatcher1"
- "REDIS_HOST=redis"
- "REDIS_PORT=6379"
- "REDIS_DB=0"
- "SIDECAR_DISPATCHER=1"
restart: always
syslogng:
image: librenms/librenms:latest
container_name: librenms_syslogng
hostname: librenms-syslogng
depends_on:
- librenms
ports:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "SIDECAR_SYSLOGNG=1"
restart: always

16
ll/docker-compose.yml Executable file
View File

@ -0,0 +1,16 @@
---
version: "2.1"
services:
lazylibrarian:
image: linuxserver/lazylibrarian
container_name: lazylibrarian
environment:
- TZ=Asia/Kuala Lumpur
- DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional
volumes:
- e:/dockermount/ll/config:/config
- e:/dockermount/ll/downloads:/downloads
- e:/dockermount/ll/books:/books
ports:
- 5299:5299
restart: unless-stopped

36
nextcloud/docker-compose.yml Executable file
View File

@ -0,0 +1,36 @@
version: '2'
volumes:
nextcloud:
db:
services:
mariadb:
container_name: mariadb
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
#- ./db:/var/lib/mysql:cached
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=secretpassword
- MYSQL_PASSWORD=secretpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
container_name: nextcloud
build: .
ports:
- 8282:80
links:
- mariadb
volumes:
#- ./nextcloud:/var/www/html:cached
- nextcloud:/var/www/html
restart: always

22
organizr/docker-compose.yaml Executable file
View File

@ -0,0 +1,22 @@
#docker create \
# --name=organizr \
# -v <path to data>:/config \
# -e PGID=<gid> -e PUID=<uid> \
# -p 80:80 \
# -e fpm="false" \ # optional
# -e branch="v2-master" \ # optional
# organizr/organizr
version: "3.3"
services:
db:
image: "organizr/organizr"
container_name: organizr
environment:
- "PGID=100"
- "PUID=1000"
- "fpm=true"
volumes:
- "./data:/config"
ports:
- "8111:80"
restart: unless-stopped

77
ownphotos/docker-compose.yml Executable file
View File

@ -0,0 +1,77 @@
version: '2'
services:
proxy:
image: guysoft/ownphotos-proxy
tty: true
container_name: ownphotos-proxy
restart: always
links:
- "backend:backend"
- "frontend:frontend"
ports:
- "3333:80"
ownphotos-db:
image: postgres
container_name: ownphotos-db
restart: always
environment:
# This db password is internal, you can change it if you want, but also change it in ownphotos-backend container
- POSTGRES_PASSWORD=AaAa1234
- POSTGRES_DB=ownphotos
volumes:
- ownphotos-data:/var/lib/postgresql/data
frontend:
container_name: ownphotos-frontend
image: guysoft/ownphotos-frontend:dev
tty: true
environment:
# This is the path to the backend host public facing. if your website is ownphotos.org then this should be "ownphotos.org".
# Default here is assuming you are running on localhost on port 3000 as given in ownphotos-proxy service
- BACKEND_HOST=localhost:3333
links:
- "backend:backend"
backend:
image: hooram/ownphotos:dev
# For development uncomment this and comment the image name above
#build: .
container_name: ownphotos-backend
volumes:
# Your photos go here
- ./Pictures/:/data
- ./ownphotos_media:/code/protected_media
environment:
- SECRET_KEY=change_meme
# This is backend host from within the service, you dont need to change this
- BACKEND_HOST=backend
- ADMIN_EMAIL=admin@example.com
- ADMIN_USERNAME=admin
# Change your admin password!
- ADMIN_PASSWORD=admin
- DEBUG=true
- DB_BACKEND=postgresql
- DB_NAME=ownphotos
- DB_USER=postgres
# This db password is internal, you can change it if you want, but also change it in ownphotos-db container
- DB_PASS=AaAa1234
- DB_HOST=ownphotos-db
- DB_PORT=5432
- REDIS_HOST=ownphotos-redis
- REDIS_PORT=6379
- MAPBOX_API_KEY=CHANGE_MEAAAA
- TIME_ZONE=UTC
links:
- "ownphotos-db:ownphotos-db"
- "ownphotos-redis:ownphotos-redis"
ownphotos-redis:
image: redis
container_name: ownphotos-redis
volumes:
ownphotos-data:
media:

View File

@ -0,0 +1,88 @@
version: '3.5'
# Example Docker Compose config file for PhotoPrism (Intel / AMD64)
#
# Documentation : https://docs.photoprism.org/getting-started/docker-compose/
# Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/
#
# Please run behind a reverse proxy like Caddy, Traefik or Nginx if you need HTTPS / SSL support
# e.g. when running PhotoPrism on a public server outside your home network.
#
# Usage: docker-compose up
services:
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- 2342:2342 # [local port]:[container port]
healthcheck: # Optional
test: "photoprism status"
interval: 60s
timeout: 15s
retries: 5
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
PHOTOPRISM_DEBUG: "false" # Run in debug mode (shows additional log messages)
PHOTOPRISM_PUBLIC: "false" # No authentication required (disables password protection)
PHOTOPRISM_READONLY: "true" # Don't modify originals directory (reduced functionality)
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive
PHOTOPRISM_DETECT_NSFW: "true" # Flag photos as private that MAY be offensive
PHOTOPRISM_EXPERIMENTAL: "true" # Enable experimental features
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Initial admin password (can be changed in settings)
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
PHOTOPRISM_DATABASE_DRIVER: "mysql" # Using MariaDB or MySQL instead of SQLite is optional
PHOTOPRISM_DATABASE_DSN: "user:passwd@tcp(photoprism-db:3306)/photoprism?charset=utf8mb4,utf8&parseTime=true"
PHOTOPRISM_SIDECAR_JSON: "true" # Read metadata from JSON sidecar files created by exiftool
PHOTOPRISM_SIDECAR_YAML: "true" # Backup photo metadata to YAML sidecar files
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
PHOTOPRISM_THUMB_UNCACHED: "false" # Enable on-demand thumbnail rendering (high memory and cpu usage)
PHOTOPRISM_THUMB_SIZE: 2048 # Pre-rendered thumbnail size limit (default 2048, min 720, max 7680)
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # On-demand rendering size limit (default 7680, min 720, max 7680)
PHOTOPRISM_JPEG_SIZE: 7680 # Size limit for converted image files in pixels (720-30000)
PHOTOPRISM_JPEG_QUALITY: 80 # Set to 95 for high-quality thumbnails (25-100)
PHOTOPRISM_DARKTABLE_PRESETS: "false" # Use darktable presets (disables concurrent raw to jpeg conversion)
volumes:
- "./Originals:/photoprism/originals" # [local path]:[container path]
# Multiple folders can be indexed by mounting them as subfolders of /photoprism/originals:
# - "~/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1]
# - "~/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2]
#- "~/PhotoPrism/Storage:/photoprism/storage" # Settings, index, sidecar files, and generated thumbnails
- "./Import:/photoprism/import" # Mounting the import folder is optional (see docs)
- "./Cache:/photoprism/storage/cache"
# Uncomment the following lines to use MariaDB instead of SQLite for improved performance & scalability:
#
photoprism-db:
image: mariadb:10.5 # Alternatively mysql:8.0
container_name: photoprism-db
restart: unless-stopped
command: mysqld --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=50
volumes:
- "./mariadb:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: photoprism
MYSQL_USER: user
MYSQL_PASSWORD: passwd
MYSQL_DATABASE: photoprism
# Uncomment the following lines to upgrade automatically whenever there are new images available:
#
# watchtower:
# image: containrrr/watchtower
# restart: unless-stopped
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"

90
photoprism/docker-compose.yml Executable file
View File

@ -0,0 +1,90 @@
version: '3.5'
# Example Docker Compose config file for PhotoPrism (Intel / AMD64)
#
# Documentation : https://docs.photoprism.org/getting-started/docker-compose/
# Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/
#
# Please run behind a reverse proxy like Caddy, Traefik or Nginx if you need HTTPS / SSL support
# e.g. when running PhotoPrism on a public server outside your home network.
#
# Usage: docker-compose up
services:
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- 2342:2342 # [local port]:[container port]
healthcheck: # Optional
test: "photoprism status"
interval: 60s
timeout: 15s
retries: 5
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
PHOTOPRISM_DEBUG: "false" # Run in debug mode (shows additional log messages)
PHOTOPRISM_PUBLIC: "true" # No authentication required (disables password protection)
PHOTOPRISM_READONLY: "true" # Don't modify originals directory (reduced functionality)
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive
PHOTOPRISM_DETECT_NSFW: "true" # Flag photos as private that MAY be offensive
PHOTOPRISM_EXPERIMENTAL: "true" # Enable experimental features
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Initial admin password (can be changed in settings)
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
PHOTOPRISM_DATABASE_DRIVER: "mysql" # Using MariaDB or MySQL instead of SQLite is optional
PHOTOPRISM_DATABASE_DSN: "user:passwd@tcp(photoprism-db:3306)/photoprism?charset=utf8mb4,utf8&parseTime=true"
PHOTOPRISM_SIDECAR_JSON: "true" # Read metadata from JSON sidecar files created by exiftool
PHOTOPRISM_SIDECAR_YAML: "true" # Backup photo metadata to YAML sidecar files
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
PHOTOPRISM_THUMB_UNCACHED: "false" # Enable on-demand thumbnail rendering (high memory and cpu usage)
PHOTOPRISM_THUMB_SIZE: 2048 # Pre-rendered thumbnail size limit (default 2048, min 720, max 7680)
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # On-demand rendering size limit (default 7680, min 720, max 7680)
PHOTOPRISM_JPEG_SIZE: 7680 # Size limit for converted image files in pixels (720-30000)
PHOTOPRISM_JPEG_QUALITY: 80 # Set to 95 for high-quality thumbnails (25-100)
PHOTOPRISM_DARKTABLE_PRESETS: "false" # Use darktable presets (disables concurrent raw to jpeg conversion)
volumes:
- "./takeout:/photoprism/originals/takeout" # [local path]:[container path]
- "/dockermount/syncthing/sync/S21Camera:/photoprism/originals/S21Camera"
- "/dockermount/syncthing/sync/photos:/photoprism/originals/photos"
- "/dockermount/syncthing/sync/Oppo F11 Pro:/photoprism/originals/Oppo F11 Pro"
# Multiple folders can be indexed by mounting them as subfolders of /photoprism/originals:
# - "~/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1]
# - "~/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2]
#- "~/PhotoPrism/Storage:/photoprism/storage" # Settings, index, sidecar files, and generated thumbnails
- "./Import:/photoprism/import" # Mounting the import folder is optional (see docs)
- "./Cache:/photoprism/storage/cache"
# Uncomment the following lines to use MariaDB instead of SQLite for improved performance & scalability:
#
photoprism-db:
image: mariadb:10.5 # Alternatively mysql:8.0
container_name: photoprism-db
restart: unless-stopped
command: mysqld --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=50
volumes:
- "./mariadb:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: photoprism
MYSQL_USER: user
MYSQL_PASSWORD: passwd
MYSQL_DATABASE: photoprism
# Uncomment the following lines to upgrade automatically whenever there are new images available:
#
# watchtower:
# image: containrrr/watchtower
# restart: unless-stopped
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"

View File

@ -0,0 +1,87 @@
version: '3.5'
# Example Docker Compose config file for PhotoPrism (Intel / AMD64)
#
# Documentation : https://docs.photoprism.org/getting-started/docker-compose/
# Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/
#
# Please run behind a reverse proxy like Caddy, Traefik or Nginx if you need HTTPS / SSL support
# e.g. when running PhotoPrism on a public server outside your home network.
#
# Usage: docker-compose up
services:
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
restart: unless-stopped
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- 2342:2342 # [local port]:[container port]
healthcheck: # Optional
test: "photoprism status"
interval: 60s
timeout: 15s
retries: 5
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
PHOTOPRISM_DEBUG: "false" # Run in debug mode (shows additional log messages)
PHOTOPRISM_PUBLIC: "false" # No authentication required (disables password protection)
PHOTOPRISM_READONLY: "false" # Don't modify originals directory (reduced functionality)
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive
PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_HTTP_PORT: 2342
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Initial admin password (can be changed in settings)
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
PHOTOPRISM_DATABASE_DRIVER: "mysql" # Using MariaDB or MySQL instead of SQLite is optional
PHOTOPRISM_DATABASE_DSN: "user:passwd@tcp(photoprism-db:3306)/photoprism?charset=utf8mb4,utf8&parseTime=true"
PHOTOPRISM_SIDECAR_JSON: "true" # Read metadata from JSON sidecar files created by exiftool
PHOTOPRISM_SIDECAR_YAML: "true" # Backup photo metadata to YAML sidecar files
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
PHOTOPRISM_THUMB_UNCACHED: "false" # Enable on-demand thumbnail rendering (high memory and cpu usage)
PHOTOPRISM_THUMB_SIZE: 2048 # Pre-rendered thumbnail size limit (default 2048, min 720, max 7680)
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # On-demand rendering size limit (default 7680, min 720, max 7680)
PHOTOPRISM_JPEG_SIZE: 7680 # Size limit for converted image files in pixels (720-30000)
PHOTOPRISM_JPEG_QUALITY: 42 # Set to 95 for high-quality thumbnails (25-100)
PHOTOPRISM_DARKTABLE_PRESETS: "false" # Use darktable presets (disables concurrent raw to jpeg conversion)
volumes:
- "./Originals:/photoprism/originals" # [local path]:[container path]
# Multiple folders can be indexed by mounting them as subfolders of /photoprism/originals:
# - "~/Family:/photoprism/originals/Family" # [folder_1]:/photoprism/originals/[folder_1]
# - "~/Friends:/photoprism/originals/Friends" # [folder_2]:/photoprism/originals/[folder_2]
#- "~/PhotoPrism/Storage:/photoprism/storage" # Settings, index, sidecar files, and generated thumbnails
- "./Import:/photoprism/import" # Mounting the import folder is optional (see docs)
- "./Cache:/photoprism/storage/cache"
# Uncomment the following lines to use MariaDB instead of SQLite for improved performance & scalability:
#
photoprism-db:
image: mariadb:10.5 # Alternatively mysql:8.0
container_name: photoprism-db
restart: unless-stopped
command: mysqld --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=50
volumes:
- "./mariadb:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: photoprism
MYSQL_USER: user
MYSQL_PASSWORD: passwd
MYSQL_DATABASE: photoprism
# Uncomment the following lines to upgrade automatically whenever there are new images available:
#
# watchtower:
# image: containrrr/watchtower
# restart: unless-stopped
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"

26
piwigo/docker-compose.yml Executable file
View File

@ -0,0 +1,26 @@
---
version: "2.1"
services:
piwigo_db:
image: linuxserver/mariadb
container_name: piwigo_db
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=secretpassword
- TZ=Asia/Kuala_Lumpur
volumes:
- ./db/config:/config
restart: unless-stopped
piwigo:
image: linuxserver/piwigo
container_name: piwigo
environment:
- PUID=1000
- PGID=1000
- TZ="Asia/Kuala_Lumpur"
volumes:
- ./config:/config
ports:
- 86:80
restart: unless-stopped

113
plex/docker-compose.yml Normal file
View File

@ -0,0 +1,113 @@
---
version: "2.1"
services:
lidarr:
image: linuxserver/lidarr
container_name: lidarr
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- UMASK_SET=022 #optional
volumes:
- ./lidarr/config:/config
- /Media/Music:/Music
#- /path/to/music:/music
- ./qBittorrent/downloads:/downloads
ports:
- 8686:8686
restart: unless-stopped
radarr:
image: linuxserver/radarr
container_name: radarr
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- UMASK_SET=022 #optional
volumes:
- ./radarr/data:/config
- /Media/Movie:/movies/Movies
- "/Media/Kids movies:/movies/Kids movies"
- ./qBittorrent/downloads:/downloads
ports:
- 7878:7878
restart: unless-stopped
sonarr:
image: linuxserver/sonarr
container_name: sonarr
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- UMASK_SET=022 #optional
volumes:
- ./sonarr/data:/config
- /Media/TV:/tv
#- ./transmission/downloads:/downloads
- ./qBittorrent/downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped
jackett:
image: linuxserver/jackett
container_name: jackett
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
- AUTO_UPDATE=true #optional
#- RUN_OPTS=run options here #optional
volumes:
- ./jackett/config:/config
- ./jackett/blackhole:/downloads
ports:
- 9117:9117
restart: unless-stopped
qbittorrent:
image: linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
#- UMASK_SET=022
- WEBUI_PORT=8080
volumes:
- ./qBittorrent/config:/config
- ./qBittorrent/downloads:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
# transmission:
# image: ghcr.io/linuxserver/transmission
# container_name: transmission
# environment:
# - PUID=1000
# - PGID=100
# - TZ=Asia/Kuala_Lumpur
# - TRANSMISSION_WEB_HOME=/combustion-release/ #optional
# - USER=admin #optional
# - PASS=ahmadfarhan #optional
# - WHITELIST="" #optional
# volumes:
# - ./transmission/config:/config
# - ./transmission/downloads:/downloads
# - ./transmission/watch:/watch
# ports:
# - 9091:9091
# - 51413:51413
# - 51413:51413/udp
# restart: unless-stopped

17
portainer/docker-compose.yml Executable file
View File

@ -0,0 +1,17 @@
version: '2'
services:
portainer:
container_name: portainer
image: portainer/portainer
ports:
#- 8000:8000
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/data
#- ./Files:/portainer/Files/
restart: unless-stopped

View File

@ -0,0 +1,21 @@
version: "3.3"
services:
db:
image: "postgres"
environment:
- "POSTGRES_PASSWORD=pyshelf"
- "POSTGRES_USER=pyshelf"
- "POSTGRES_DB=pyshelf"
volumes:
- "./data:/var/lib/postgresql/data/"
pyshelf:
image: "pyshelf/pyshelf"
ports:
- "8011:8000"
- "1337:1337"
volumes:
- "/Media/Books:/books"
depends_on:
- db

View File

@ -0,0 +1,25 @@
---
version: "2.1"
services:
scrutiny:
image: linuxserver/scrutiny
container_name: scrutiny
privileged: true
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
- SCRUTINY_API_ENDPOINT=http://localhost:8080
- SCRUTINY_WEB=true
- SCRUTINY_COLLECTOR=true
volumes:
- ./config:/config
- /dev/sda:/dev/sda:ro
- /dev/sdb:/dev/sdv:ro
- /dev/sdc:/dev/sdc:ro
- /dev/sdd:/dev/sdd:ro
- /dev/nvme0n1:/dev/nvme0n1:ro
- /run/udev:/run/udev:ro
ports:
- 8182:8080
restart: unless-stopped

19
syncthing/docker-compose.yml Executable file
View File

@ -0,0 +1,19 @@
---
version: "2.1"
services:
syncthing:
image: linuxserver/syncthing
container_name: syncthing
#hostname: syncthing #optional
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kuala_Lumpur
volumes:
- ./config:/config
- ./sync:/sync
ports:
- 8384:8384
- 22000:22000
- 21027:21027/udp
restart: unless-stopped

View File

@ -0,0 +1,7 @@
version: "3"
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --cleanup

26
wireguard/docker-compose.yml Executable file
View File

@ -0,0 +1,26 @@
---
version: "2.1"
services:
wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
#- PUID=1000
#- PGID=1000
- TZ=Asia/Kuala_Lumpur
- SERVERURL=athena.ahmadfarhan.com #optional
- SERVERPORT=51820 #optional
- PEERS=1 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=192.168.0.0 #optional
volumes:
- ./config:/config
- ./lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped