commit 246130f7804adcd5abf5b24e05c6240902f5c01e Author: Mitchell Date: Sun Nov 27 22:21:32 2022 -0600 init diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..fd25781 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,21 @@ +version: "2" +services: + web: + image: gitea/gitea:latest + restart: unless-stopped + volumes: + - /raid-pool/samba/webservers/gitea/data:/data + ports: + - "5022:3000" + depends_on: + - db + db: + image: mariadb:10 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=password + - MYSQL_DATABASE=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=password + volumes: + - /raid-pool/samba/webservers/gitea/db:/var/lib/mysql diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..f472f12 --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3" + +services: + nextcloud: + image: nextcloud:25.0.1 + ports: + - 5002:80 + volumes: + - /raid-pool/samba/webservers/nextcloud:/var/www/html + - /raid-pool/samba/webservers/nextcloud/mysql:/var/lib/mysql + - /raid-pool/samba/webservers/nextcloud/postgresql:/var/lib/postgresql/data + restart: unless-stopped diff --git a/photoprism/docker-compose.yml b/photoprism/docker-compose.yml new file mode 100644 index 0000000..e1cf6e2 --- /dev/null +++ b/photoprism/docker-compose.yml @@ -0,0 +1,108 @@ +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 + security_opt: + - seccomp:unconfined + - apparmor:unconfined + ports: + - 5050:2342 # [local port]:[container port] + # Uncomment the following lines to enable regular health checks (causes automatic restarts): + restart: unless-stopped + # healthcheck: + # test: ["CMD", "photoprism", "status"] + # interval: 60s + # timeout: 15s + # retries: 5 + # + # Run "photoprism help" and "photoprism config" too see all config options and current values: + environment: # Run "photoprism help" and "photoprism config" too see all config options and current values + PHOTOPRISM_ADMIN_PASSWORD: "insecure" # PLEASE CHANGE: This is your initial admin password + 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_EXPERIMENTAL: "false" # Enable experimental features + PHOTOPRISM_SITE_URL: "" # 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_DISABLE_BACKUPS: "false" # Don't backup photo and album metadata to YAML files + PHOTOPRISM_DISABLE_WEBDAV: "false" # Disable built-in WebDAV server + PHOTOPRISM_DISABLE_SETTINGS: "false" # Users can not view or change settings + PHOTOPRISM_DISABLE_PLACES: "false" # Disables reverse geocoding and maps + PHOTOPRISM_DISABLE_EXIFTOOL: "false" # Don't create ExifTool JSON files for improved metadata extraction + PHOTOPRISM_DISABLE_TENSORFLOW: "false" # Don't use TensorFlow for image classification + PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive (requires TensorFlow) + PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive + PHOTOPRISM_DARKTABLE_PRESETS: "false" # Use Darktable presets (disables concurrent raw image conversion) + PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server + # PHOTOPRISM_DATABASE_DRIVER: "mysql" # Use MariaDB (or MySQL) instead of SQLite for improved performance + PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB database server (hostname:port) + PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB database schema name + PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB database user name + PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB database user password + 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: 92 # Set to 95 for high-quality thumbnails (25-100) + # You may optionally set a user / group id using environment variables if your Docker version or NAS does not + # support this natively (see next example): + # UID: 1000 + # GID: 1000 + # UMASK: 0000 + # Uncomment and edit the following line to set a specific user / group id (native): + # user: "1000:1000" + volumes: + # Storage folder for settings, index & sidecar files (DON'T REMOVE): + # 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] + # Mounting the import folder is optional (see docs): + # - "~/Import:/photoprism/import" + + ofelia: + restart: unless-stopped + image: mcuadros/ofelia:latest + container_name: ofelia-photoprism + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "./jobs.ini:/etc/ofelia/config.ini" +# Uncomment the following lines to use MariaDB instead of SQLite for improved performance & scalability: +# +# mariadb: +# image: mariadb:10.5 +# 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: +# - "/var/lib/mysql" +# environment: +# MYSQL_ROOT_PASSWORD: insecure +# MYSQL_DATABASE: photoprism +# MYSQL_USER: photoprism +# MYSQL_PASSWORD: insecure + +# Uncomment the following lines to upgrade automatically, whenever there is a new Docker image available: +# +# watchtower: +# image: containrrr/watchtower +# restart: unless-stopped +# volumes: +# - "/var/run/docker.sock:/var/run/docker.sock" diff --git a/photoprism/jobs.ini b/photoprism/jobs.ini new file mode 100644 index 0000000..86500e5 --- /dev/null +++ b/photoprism/jobs.ini @@ -0,0 +1,41 @@ +# See https://github.com/mcuadros/ofelia/blob/master/docs/jobs.md for job settings! +# +# Cron expressions in "schedule" represent times using 6 space-separated fields: +# +# Field name | Mandatory? | Allowed values | Allowed special characters +# ---------- | ---------- | -------------- | -------------------------- +# Seconds | Yes | 0-59 | * / , - +# Minutes | Yes | 0-59 | * / , - +# Hours | Yes | 0-23 | * / , - +# Day of month | Yes | 1-31 | * / , - ? +# Month | Yes | 1-12 or JAN-DEC | * / , - +# Day of week | Yes | 0-6 or SUN-SAT | * / , - ? + +# Uncomment to enable background indexing of files in your originals folder at 1am: +# +[job-exec "photoprism index"] +schedule = 0 0 1 * * * +container = photoprism +command = photoprism index --cleanup +no-overlap = true + +# Uncomment to automatically import every 2 hours: +# +# [job-exec "photoprism import"] +# schedule = @every 2h +# container = photoprism +# command = photoprism import +# no-overlap = true + +#[job-exec "photoprism convert"] +#schedule = @daily +#container = photoprism +#command = photoprism convert +#no-overlap = true + +#[job-exec "photoprism backup"] +#schedule = @daily +#container = photoprism +#command = photoprism backup -a -i -f /photoprism/storage/index-backup.sql +#no-overlap = true + diff --git a/plex/docker-compose.yml b/plex/docker-compose.yml new file mode 100644 index 0000000..f989ad0 --- /dev/null +++ b/plex/docker-compose.yml @@ -0,0 +1,20 @@ +version: '2' + +services: + plex: + image: lscr.io/linuxserver/plex:latest + restart: unless-stopped +# ports: +# - 5039:32400 + environment: + - TZ=America/Chicago + - PGID=1000 + - PUID=1000 + # - VERSION=docker + - VERSION=latest + network_mode: host + volumes: + - ./config:/config + - ./transcode:/data/transcode + - /wd2/webservers/media/sonarr/tv:/data/tvshows:ro + - /wd2/webservers/media/radarr/movies:/data/movies:ro diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml new file mode 100644 index 0000000..b7b8564 --- /dev/null +++ b/portainer/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' + +services: + portainer: + image: portainer/portainer-ce:latest + restart: unless-stopped + ports: + - 5006:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /raid-pool/samba/webservers/portainer:/data + diff --git a/prowlarr/docker-compose.yml b/prowlarr/docker-compose.yml new file mode 100644 index 0000000..1c5a4c5 --- /dev/null +++ b/prowlarr/docker-compose.yml @@ -0,0 +1,16 @@ +version: "2.1" + +services: + prowlarr: + image: lscr.io/linuxserver/prowlarr:develop + container_name: prowlarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - /raid-pool/samba/webservers/prowlarr:/config + ports: + - 5053:9696 + restart: unless-stopped + diff --git a/radarr/docker-compose.yml b/radarr/docker-compose.yml new file mode 100644 index 0000000..d07fb96 --- /dev/null +++ b/radarr/docker-compose.yml @@ -0,0 +1,18 @@ +version: '2' + +services: + radarr: + image: linuxserver/radarr:latest + restart: always + ports: + - 5013:7878 + volumes: + - /wd2/webservers/media/radarr/config:/config + - /wd2/webservers/media/radarr/downloads:/downloads + - /wd2/webservers/media/radarr/movies:/movies + - /wd2/webservers/media/data/transmission:/data + - /etc/localtime:/etc/localtime:ro + environment: + - PUID=1000 + - PGID=1000 + diff --git a/sonarr/docker-compose.yml b/sonarr/docker-compose.yml new file mode 100644 index 0000000..9ad6954 --- /dev/null +++ b/sonarr/docker-compose.yml @@ -0,0 +1,20 @@ +version: '2' + +services: + sonarr: + image: linuxserver/sonarr:latest + restart: always + ports: + - 5012:8989 + volumes: + - /etc/localtime:/etc/localtime:ro + - /wd2/webservers/media/sonarr/config:/config + - /wd2/webservers/media/sonarr/tv:/tv + - /wd2/webservers/media/sonarr/downloads:/downloads + # use the transmission data folder currently + - /wd2/webservers/media/data/transmission:/data + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Chicago + diff --git a/transmission/.env b/transmission/.env new file mode 100644 index 0000000..3f2f067 --- /dev/null +++ b/transmission/.env @@ -0,0 +1,5 @@ +OPENVPN_USERNAME=user +OPENVPN_PASSWORD=password +TRANSMISSION_RPC_USERNAME=user +TRANSMISSION_RPC_PASSWORD=password + diff --git a/transmission/docker-compose.yml b/transmission/docker-compose.yml new file mode 100644 index 0000000..8c369dc --- /dev/null +++ b/transmission/docker-compose.yml @@ -0,0 +1,41 @@ +version: '3' + +# - /etc/localtime:/etc/localtime:ro +# - /your/storage/path/:/data +services: + transmission: + image: haugene/transmission-openvpn + cap_add: + - NET_ADMIN + devices: + - /dev/net/tun + volumes: + - /wd2/webservers/media/data/transmission:/data + - /wd2/webservers/transmission/config:/config + - /etc/localtime:/etc/localtime:ro + restart: unless-stopped + ports: + - 5027:9091 +# - 51413:51413 + dns: + - 8.8.8.8 + - 8.8.4.4 + env_file: + - .env + environment: + - OPENVPN_PROVIDER=PIA + - OPENVPN_USERNAME=${OPENVPN_USERNAME} + - OPENVPN_PASSWORD=${OPENVPN_PASSWORD} + - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60 + - LOCAL_NETWORK=192.168.1.0/24 + - PGID=1000 + - PUID=1000 + - TRANSMISSION_WEB_UI=transmission-web-control + - TRANSMISSION_SPEED_LIMIT_UP=1 + - TRANSMISSION_SPEED_LIMIT_UP_ENABLED=true + - TRANSMISSION_DOWNLOAD_QUEUE_SIZE=50 + - TRANSMISSION_PEER_PORT_RANDOM_ON_START=true + - TRANSMISSION_RPC_USERNAME=${TRANSMISSION_RPC_USERNAME} + - TRANSMISSION_RPC_PASSWORD=${TRANSMISSION_RPC_PASSWORD} + - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true +