added back plex (but commented out for now - works on dining tv, so need to consider this again. Moved myth into containers (and learnt about entrypoint). Big chaneover from prometheus, cadvisor, *exporters containers to influxdb, telegraf and a few scripts running in containers like mail, myth and some native crons on mara
This commit is contained in:
@@ -18,8 +18,6 @@ services:
|
||||
- "--providers.file.watch=true"
|
||||
- "--entrypoints.web.address=:80"
|
||||
- "--entrypoints.secureweb.address=:443"
|
||||
- "--metrics"
|
||||
- "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
|
||||
- "--accessLog"
|
||||
- "--accessLog.filePath=/var/log/access.log"
|
||||
- "--accesslog.fields.names.StartUTC=drop"
|
||||
@@ -160,6 +158,28 @@ services:
|
||||
- /srv/docker/container/calibre/config:/config
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
# plex:
|
||||
# container_name: plex
|
||||
# image: plexinc/pms-docker
|
||||
# restart: always
|
||||
# environment:
|
||||
# - TZ=Australia/Melbourne
|
||||
# - PLEX_CLAIM=claim-Mgs3KDD_zM-rheXvz6FJ
|
||||
# - PLEX_UID=500
|
||||
# - PLEX_GID=500
|
||||
# hostname: plex_dp
|
||||
# labels:
|
||||
# - "com.centurylinklabs.watchtower.enable=true"
|
||||
# depends_on:
|
||||
# - pihole
|
||||
# volumes:
|
||||
# - /srv/docker/container/plex/config:/config
|
||||
# - /srv/docker/container/plex/transcode:/transcode
|
||||
# - /srv/docker/container/plex/storage:/data
|
||||
# - /etc/localtime:/etc/localtime:ro
|
||||
# ports:
|
||||
# - "32400:32400"
|
||||
|
||||
# this is running network_mode: host to be on 192.168.0/24 subnet, so that
|
||||
# direct play on tv works (from memory)
|
||||
emby:
|
||||
@@ -204,7 +224,7 @@ services:
|
||||
#
|
||||
mail:
|
||||
image: docker.io/mailserver/docker-mailserver:12.1.0
|
||||
hostname: mail
|
||||
hostname: depaoli.id.au
|
||||
domainname: depaoli.id.au
|
||||
container_name: mail
|
||||
restart: always
|
||||
@@ -225,6 +245,9 @@ services:
|
||||
- /srv/docker/container/mail/config/:/tmp/docker-mailserver/
|
||||
- /srv/docker/container/letsencrypt/etc:/etc/letsencrypt
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
# used (via .../mail/config/user-patches.sh) to insert a cron job running from .../mara-bin, and writing to .../monitoring-results)
|
||||
- /srv/docker/container/mail/mara-bin:/root/bin
|
||||
- /srv/docker/container/mail/monitoring-results:/monitoring-results
|
||||
environment:
|
||||
- ENABLE_SPAMASSASSIN=1
|
||||
- ENABLE_SPAMASSASSIN_KAM=1
|
||||
@@ -317,31 +340,6 @@ services:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "389:1389"
|
||||
# - "1636:1636"
|
||||
|
||||
# This isn't really needed, so for now trying to live without it -- its not maintained, and really, I can use ldapsearch anyway
|
||||
# phpldapadmin:
|
||||
# image: ghcr.io/colibris-xyz/phpldapadmin
|
||||
# container_name: phpldapadmin
|
||||
# restart: always
|
||||
# environment:
|
||||
# LDAP_HOST: "openldap"
|
||||
# LDAP_USE_TLS: "false"
|
||||
# LDAP_BASE: "dc=depaoli,dc=id,dc=au"
|
||||
# labels:
|
||||
# - "com.centurylinklabs.watchtower.enable=true"
|
||||
# - "traefik.enable=true"
|
||||
# - "traefik.http.routers.phpldapadmin.rule=PathPrefix(`/phpldapadmin/`)"
|
||||
# - "traefik.http.middlewares.stripprefix-phpldapadmin.stripprefix.prefixes=/phpldapadmin"
|
||||
# - "traefik.http.routers.phpldapadmin.middlewares=stripprefix-phpldapadmin@docker"
|
||||
# - "traefik.http.routers.phpldapadmin.entrypoints=web"
|
||||
# depends_on:
|
||||
# - pihole
|
||||
# - openldap
|
||||
# volumes:
|
||||
# - /srv/docker/container/phpldapadmin/var/www/phpldapadmin:/var/www/html
|
||||
# - /etc/localtime:/etc/localtime:ro
|
||||
|
||||
|
||||
# webmail
|
||||
roundcubemail:
|
||||
@@ -367,9 +365,9 @@ services:
|
||||
environment:
|
||||
- ROUNDCUBEMAIL_DB_TYPE=sqlite
|
||||
- ROUNDCUBEMAIL_SKIN=elastic
|
||||
- ROUNDCUBEMAIL_DEFAULT_HOST=ssl://mail.depaoli.id.au
|
||||
- ROUNDCUBEMAIL_DEFAULT_HOST=ssl://depaoli.id.au
|
||||
- ROUNDCUBEMAIL_DEFAULT_PORT=993
|
||||
- ROUNDCUBEMAIL_SMTP_SERVER=ssl://mail.depaoli.id.au
|
||||
- ROUNDCUBEMAIL_SMTP_SERVER=ssl://depaoli.id.au
|
||||
- ROUNDCUBEMAIL_SMTP_PORT=465
|
||||
|
||||
|
||||
@@ -494,100 +492,59 @@ services:
|
||||
- "traefik.http.routers.sabnzbd.rule=PathPrefix(`/sabnzbd/`)"
|
||||
- "traefik.http.routers.sabnzbd.entrypoints=web"
|
||||
|
||||
# Monitoring
|
||||
speedtest-exporter:
|
||||
image: miguelndecarvalho/speedtest-exporter
|
||||
container_name: speedtest-exporter
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
depends_on:
|
||||
- pihole
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
restart: always
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
container_name: prometheus
|
||||
depends_on:
|
||||
- pihole
|
||||
volumes:
|
||||
- /srv/docker/container/prometheus/:/etc/prometheus/
|
||||
- /srv/docker/container/prometheus/data:/prometheus
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus'
|
||||
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
|
||||
- '--web.console.templates=/usr/share/prometheus/consoles'
|
||||
- '--web.enable-lifecycle'
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.prometheus.rule=PathPrefix(`/prometheus/`)"
|
||||
- "traefik.http.routers.prometheus.entrypoints=web"
|
||||
links:
|
||||
- cadvisor:cadvisor
|
||||
- node-exporter:node-exporter
|
||||
- blackbox_exporter:blackbox_exporter
|
||||
influxdb:
|
||||
image: influxdb:latest
|
||||
container_name: influxdb
|
||||
ports:
|
||||
- 9090:9090
|
||||
restart: always
|
||||
|
||||
node-exporter:
|
||||
image: prom/node-exporter
|
||||
container_name: node-exporter
|
||||
- "8086:8086"
|
||||
environment:
|
||||
- DOCKER_INFLUXDB_INIT_MODE=setup
|
||||
- DOCKER_INFLUXDB_INIT_USERNAME=telegraf_user
|
||||
- DOCKER_INFLUXDB_INIT_PASSWORD=my-password
|
||||
- DOCKER_INFLUXDB_INIT_ORG=mara
|
||||
- DOCKER_INFLUXDB_INIT_BUCKET=telegraf
|
||||
- DOCKER_INFLUXDB_INIT_RETENTION=2w
|
||||
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=3qBckkybwMWoyZ16dqVD9gufoYYLwKkX_i296J30wekVpwxuCQe8p
|
||||
env_file:
|
||||
- /srv/docker/config/secrets/influxdb
|
||||
volumes:
|
||||
- /proc:/host/proc:ro
|
||||
- /sys:/host/sys:ro
|
||||
- /:/rootfs:ro
|
||||
- /srv/docker/container/node-exporter/textfile_collector:/var/lib/node_exporter/textfile_collector
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /export:/export:ro
|
||||
- /boot:/boot:ro
|
||||
- /srv/docker/container/influxdb/data:/var/lib/influxdb2
|
||||
- /srv/docker/container/influxdb/config:/etc/influxdb2
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
command:
|
||||
- '--path.rootfs=/rootfs'
|
||||
- '--path.procfs=/host/proc'
|
||||
- '--path.sysfs=/host/sys'
|
||||
- --collector.filesystem.ignored-mount-points
|
||||
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
|
||||
- --collector.textfile.directory
|
||||
- "/var/lib/node_exporter/textfile_collector"
|
||||
restart: always
|
||||
|
||||
cadvisor:
|
||||
image: gcr.io/cadvisor/cadvisor:v0.47.2
|
||||
# image: gcr.io/cadvisor/cadvisor:v0.48.1
|
||||
container_name: cadvisor
|
||||
telegraf:
|
||||
image: telegraf:latest
|
||||
container_name: telegraf
|
||||
# needs to be 0 / root to run smartmontools / nvme
|
||||
user: 0:139
|
||||
entrypoint: /entrypoint-wrapper.sh
|
||||
volumes:
|
||||
- /srv/docker/container/telegraf:/etc/telegraf
|
||||
- /srv/docker/container/telegraf/sudoers/smart:/etc/sudoers.d/smart
|
||||
- /srv/docker/container/telegraf/entrypoint-wrapper.sh:/root/entrypoint-wrapper.sh
|
||||
- /srv/docker/container/telegraf/monitoring-results:/usr/local/external-results/mara
|
||||
- /srv/docker/container/telegraf/entrypoint-wrapper.sh:/entrypoint-wrapper.sh
|
||||
# for telegraf to get external script output
|
||||
- /srv/docker/container/mythtv/monitoring-results:/usr/local/external-results/myth
|
||||
- /srv/docker/container/mail/monitoring-results:/usr/local/external-results/mail
|
||||
# for telegraf to see host details
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- /:/host:ro
|
||||
- /run/udev:/run/udev:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
privileged: true
|
||||
command:
|
||||
- '--disable_metrics=udp'
|
||||
- '-v=2'
|
||||
- '--housekeeping_interval=30s'
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
- /dev/disk/:/dev/disk:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
devices:
|
||||
- "/dev/kmsg"
|
||||
restart: always
|
||||
|
||||
blackbox_exporter:
|
||||
image: prom/blackbox-exporter
|
||||
container_name: blackbox-exporter
|
||||
command:
|
||||
- '--config.file=/etc/blackboxexporter/config.yml'
|
||||
- /dev:ro
|
||||
environment:
|
||||
- HOST_MOUNT_PREFIX=/host
|
||||
- HOST_PROC=/host/proc
|
||||
- HOST_SYS=/host/sys
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
volumes:
|
||||
- /srv/docker/container/blackboxexporter/:/etc/blackboxexporter/
|
||||
depends_on:
|
||||
- influxdb
|
||||
restart: always
|
||||
|
||||
grafana:
|
||||
@@ -781,9 +738,6 @@ services:
|
||||
ENV: "production"
|
||||
build:
|
||||
context: '/home/ddp/src/snow-ticket-analysis'
|
||||
args:
|
||||
PJM_UID: 500
|
||||
PJM_GID: 500
|
||||
volumes:
|
||||
- /srv/docker/container/letsencrypt/etc:/etc/letsencrypt
|
||||
- /home/ddp/src/snow-ticket-analysis/stats.db:/stats.db
|
||||
@@ -885,6 +839,8 @@ services:
|
||||
- "COUNTRY=AU"
|
||||
- "DEBUG=-v"
|
||||
- "TRUSTED_DEVICE_NAME=Pixel Pro 7"
|
||||
env_file:
|
||||
- /srv/docker/config/secrets/eufy_security_ws
|
||||
ports:
|
||||
- "3000:3000"
|
||||
labels:
|
||||
@@ -913,47 +869,25 @@ services:
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
|
||||
# autodiscover:
|
||||
# image: monogramm/autodiscover-email-settings:latest
|
||||
# container_name: autodiscover
|
||||
# environment:
|
||||
# - COMPANY_NAME=depaoli
|
||||
# - SUPPORT_URL=https://autodiscover.depaoli.id.au
|
||||
# - DOMAIN=depaoli.id.au
|
||||
# # IMAP configuration (host mandatory to enable)
|
||||
# - IMAP_HOST=mail.depaoli.id.au
|
||||
# - IMAP_PORT=993
|
||||
# - IMAP_SOCKET=SSL
|
||||
# # POP configuration (host mandatory to enable)
|
||||
# #- POP_HOST=pop3.example.com
|
||||
# #- POP_PORT=995
|
||||
# #- POP_SOCKET=SSL
|
||||
# # SMTP configuration (host mandatory to enable)
|
||||
# - SMTP_HOST=mail.depaoli.id.au
|
||||
# - SMTP_PORT=587
|
||||
# - SMTP_SOCKET=STARTTLS
|
||||
# # MobileSync/ActiveSync configuration (url mandatory to enable)
|
||||
# #- MOBILESYNC_URL=https://sync.example.com
|
||||
# #- MOBILESYNC_NAME=sync.example.com
|
||||
# # LDAP configuration (host mandatory to enable)
|
||||
# #- LDAP_HOST=ldap.example.com
|
||||
# #- LDAP_PORT=636
|
||||
# #- LDAP_SOCKET=SSL
|
||||
# #- LDAP_BASE=dc=ldap,dc=example,dc=com
|
||||
# #- LDAP_USER_FIELD=uid
|
||||
# #- LDAP_USER_BASE=ou=People,dc=ldap,dc=example,dc=com
|
||||
# #- LDAP_SEARCH=(|(objectClass=PostfixBookMailAccount))
|
||||
# # Apple mobile config identifiers (identifier mandatory to enable)
|
||||
# - PROFILE_IDENTIFIER=au.id.depaoli.autodiscover
|
||||
# - PROFILE_UUID=92943D26-CAB3-4086-897D-DC6C0D8B1E86
|
||||
# - MAIL_UUID=7A981A9E-D5D0-4EF8-87FE-39FD6A506FAC
|
||||
# - LDAP_UUID=6ECB6BA9-2208-4ABF-9E60-4E9F4CD7309E
|
||||
# labels:
|
||||
# - "com.centurylinklabs.watchtower.enable=true"
|
||||
# - "traefik.enable=true"
|
||||
# - "traefik.http.routers.radarr.rule=Host(`autodiscover.depaoli.id.au`)"
|
||||
# - "traefik.http.routers.radarr.tls=true"
|
||||
# - "traefik.http.routers.radarr.entrypoints=secureweb"
|
||||
autodiscover:
|
||||
image: monogramm/autodiscover-email-settings:latest
|
||||
container_name: autodiscover
|
||||
environment:
|
||||
- COMPANY_NAME=depaoli
|
||||
- SUPPORT_URL=https://autodiscover.depaoli.id.au
|
||||
- DOMAIN=depaoli.id.au
|
||||
- IMAP_HOST=depaoli.id.au
|
||||
- IMAP_PORT=993
|
||||
- IMAP_SOCKET=SSL
|
||||
- SMTP_HOST=depaoli.id.au
|
||||
- SMTP_PORT=587
|
||||
- SMTP_SOCKET=STARTTLS
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.autodiscover.rule=Host(`autodiscover.depaoli.id.au`)"
|
||||
- "traefik.http.routers.autodiscover.tls=true"
|
||||
- "traefik.http.routers.autodiscover.entrypoints=secureweb"
|
||||
|
||||
# ark-server:
|
||||
# restart: always
|
||||
@@ -1016,8 +950,70 @@ services:
|
||||
- "/srv/docker/container/sshwifty/:/etc/"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
|
||||
# myth?
|
||||
# this: https://github.com/delnaught/mythtv-containers/blob/main/compose-mythtv/docker-compose.yml
|
||||
# in this link, there is also up a dir, docker/* that proivide Docker files, rather than compose to this guys repo?
|
||||
# OR: https://hub.docker.com/r/instantlinux/mythtv-backend/tags
|
||||
# should probably create 3 containers, mysql for mythtv, shepherd and then mythtv-backend
|
||||
mythdb:
|
||||
container_name: mythdb
|
||||
image: mysql:latest
|
||||
restart: always
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
environment:
|
||||
MYSQL_DATABASE: 'mythconverg'
|
||||
MYSQL_USER: 'mythtv'
|
||||
MYSQL_PASSWORD: 'mythtv'
|
||||
MYSQL_UID: 133
|
||||
MYSQL_GID: 140
|
||||
MYSQL_ROOT_PASSWORD: 'NWNlfa01'
|
||||
ports:
|
||||
- '3306:3306'
|
||||
volumes:
|
||||
- /srv/docker/container/mythtv/db/sql:/docker-entrypoint-initdb.d
|
||||
- /srv/docker/container/mythtv/db/data:/var/lib/mysql
|
||||
- /srv/docker/container/mythtv/db/log:/var/log/mysql
|
||||
- /srv/docker/container/mythtv/db/mythtv.cnf:/etc/mysql/conf.d/mythtv.cnf
|
||||
|
||||
# hacked entrypoint to 'add' to this container so it works as mara needs
|
||||
mythbackend:
|
||||
container_name: mythtvbackend
|
||||
image: instantlinux/mythtv-backend:latest
|
||||
hostname: ${HOSTNAME_MYTHTV:-mythtv}
|
||||
restart: always
|
||||
# needed to renice / ionice just the mythbackend process inside this container
|
||||
# (it also runs cron, shepherd and various binaries out of /usr/local/bin)
|
||||
cap_add:
|
||||
- sys_nice
|
||||
- sys_admin
|
||||
environment:
|
||||
APACHE_LOG_DIR: /var/log/apache2
|
||||
DBNAME: mythconverg
|
||||
DBSERVER: mythdb
|
||||
LANG: en_US.UTF-8
|
||||
LANGUAGE: en_US.UTF-8
|
||||
LOCALHOSTNAME: mara
|
||||
TZ: Australia/Melbourne
|
||||
network_mode: host
|
||||
entrypoint: >
|
||||
/bin/bash -c "
|
||||
/root/mara-init/fix_uids.sh
|
||||
/root/mara-init/fix_apache2.sh
|
||||
/root/mara-init/install_shepherd.sh
|
||||
/root/mara-init/install_cron.sh
|
||||
/root/entrypoint.sh"
|
||||
volumes:
|
||||
- /srv/docker/container/mythtv/apache2:/var/log/apache2
|
||||
- /srv/docker/container/mythtv/data:/var/mythdata
|
||||
- /srv/docker/container/mythtv/home:/home/mythtv
|
||||
- /srv/docker/container/mythtv/ssh-config:/etc/ssh
|
||||
- /srv/docker/container/mythtv/var/log:/var/log/mythtv
|
||||
- /srv/docker/container/mythtv/mara-init:/root/mara-init
|
||||
- /srv/docker/container/mythtv/mara-bin:/usr/local/bin
|
||||
- /srv/docker/container/mythtv/db/sql:/db-container/sql
|
||||
- /srv/docker/container/mythtv/db/backups:/db-container/backups
|
||||
- /srv/docker/container/mythtv/monitoring-results:/monitoring-results
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /export/myth:/export/myth
|
||||
devices:
|
||||
- /dev/dvb:/dev/dvb
|
||||
env_file:
|
||||
- /srv/docker/config/secrets/mythtv
|
||||
depends_on:
|
||||
- mythdb
|
||||
|
||||
Reference in New Issue
Block a user