diff --git a/.env_template b/.env_template new file mode 100644 index 0000000..4a57389 --- /dev/null +++ b/.env_template @@ -0,0 +1,37 @@ + +#SYSINFO +# Time zone - get identifier here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +TZ= +# UID & GID - get by running 'id' command as user who should own files +UID= +GID= +#because home assistant throws a fit if the reverse proxy ip address changes, which it tends to when recreated/restarted. Make this something like "172.1.1." +SUBNET_PREFIX= + +#URLS +#lldap server url +LLDAP_SERVER= + +#PATHS +# Data Path - this is the parent directory where all of your persistent container data will be stored +DATA_PATH= +# Media Path - this is the parent directory where all of your media is stored- you can use samba to connect to remote media drive +MEDIA_PATH= + +#PORTS +#These are the ports services will be available at. I've left my reccomendations here +DDNS_PORT=8001 +KUMA_PORT=3001 + +LLDAP_LDAP_PORT=3890 +LLDAP_LDAPS_PORT=6360 +LLDAP_WEBUI_PORT=17170 + +ORGANIZR_PORT=8449 + +NGINX_HTTP_PORT=80 +NGINX_WEBUI_PORT=81 +NGINX_HTTPS_PORT=443 + +WYOMING_PIPER_PORT=10200 +WYOMING_WHISPER_PORT=10300 diff --git a/.gitignore b/.gitignore index 9102de1..4c49bd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1 @@ -ddns-updater/data/ -home_assistant/config/ -kuma/data/ -lldap/lldap_data/ -nginx/config/ -wyoming_piper/data/ -wyoming_whisper/data/ +.env diff --git a/ddns-updater/docker-compose.yml b/ddns-updater/docker-compose.yml deleted file mode 100644 index 3c732bb..0000000 --- a/ddns-updater/docker-compose.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: "3.7" -services: - ddns-updater: - image: qmcgaw/ddns-updater - container_name: ddns-updater - network_mode: bridge - ports: - - 8001:8000/tcp - volumes: - - ./data:/updater/data - environment: - - CONFIG= - - PERIOD=5m - - UPDATE_COOLDOWN_PERIOD=5m - - PUBLICIP_FETCHERS=all - - PUBLICIP_HTTP_PROVIDERS=all - - PUBLICIPV4_HTTP_PROVIDERS=all - - PUBLICIPV6_HTTP_PROVIDERS=all - - PUBLICIP_DNS_PROVIDERS=all - - PUBLICIP_DNS_TIMEOUT=3s - - HTTP_TIMEOUT=10s - - # Web UI - - LISTENING_PORT=8000 - - ROOT_URL=/ - - # Backup - - BACKUP_PERIOD=0 # 0 to disable - - BACKUP_DIRECTORY=/updater/data - - # Other - - LOG_LEVEL=info - - LOG_CALLER=hidden - - SHOUTRRR_ADDRESSES= - restart: always diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..855f065 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,170 @@ +version: "3.8" + +networks: + authelia: + driver: bridge + docker-local: + driver: bridge + ipam: + driver: default + config: + - subnet: ${SUBNET_PREFIX}0/24 + +volumes: + portainer_data: + name: portainer_data + +services: + + portainer: #Portainer is a web UI for managing your docker containers https://www.portainer.io/ + image: portainer/portainer-ce:latest + container_name: portainer + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer_data:/data + ports: + - "8000:8000" + - "9443:9443" + restart: always + + organizr: #organizr is a server control panel https://github.com/causefx/Organizr + image: organizr/organizr + container_name: organizr + volumes: + - ${DATA_PATH}/organizr/config:/config + environment: + - PGID=${GID} + - PUID=${UID} + - TZ=${TZ} + - branch=v2-master + ports: + - ${ORGANIZR_PORT}:80 + restart: unless-stopped + + ddns-updater: # dns updater, prevents issues caused by cycling residential ip address https://hub.docker.com/r/qmcgaw/ddns-updater + image: qmcgaw/ddns-updater:latest + container_name: ddns-updater + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}2 + environment: + - LISTENING_PORT=8000 + - ROOT_URL=/ + - TZ=${TZ} + volumes: + - ${DATA_PATH}/ddns-updater/data:/updater/data + ports: + - ${DDNS_PORT}:8000/tcp + restart: unless-stopped + + home-assistant: #home automation hub. Control lights, audio, temperature, etc. https://www.home-assistant.io/installation/linux#docker-compose + image: ghcr.io/home-assistant/home-assistant:stable + container_name: home-assistant + volumes: + - ${DATA_PATH}/home-assistant/config:/config + - /etc/localtime:/etc/localtime:ro + - /run/dbus:/run/dbus:ro + - ${MEDIA_PATH}:/media/Media:ro + privileged: true + network_mode: host + restart: unless-stopped + + uptime-kuma: # uptime watcher, send notifications when something is down https://github.com/louislam/uptime-kuma + image: louislam/uptime-kuma:latest + container_name: uptime-kuma + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}3 + volumes: + - ${DATA_PATH}/uptime-kuma/data:/app/data + ports: + - ${KUMA_PORT}:3001 + restart: unless-stopped + + lldap: #very simple LDAP implementation- in case you want a central account for all other services https://github.com/lldap/lldap + image: nitnelave/lldap:stable + container_name: lldap + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}4 + volumes: + - ${DATA_PATH}/lldap/data:/data + hostname: ${LLDAP_SERVER} + ports: + - ${LLDAP_LDAP_PORT}:3890 + - ${LLDAP_WEBUI_PORT}:17170 + - ${LLDAP_LDAPS_PORT}:6360 + restart: unless-stopped + + nginx-proxy-manager: # web ui for managing nginx reverse proxy config https://nginxproxymanager.com/ + image: jc21/nginx-proxy-manager:latest + container_name: nginx-proxy-manager + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}5 + volumes: + - ${DATA_PATH}/nginx-proxy-manager/data:/data + - ${DATA_PATH}/nginx-proxy-manager/letsencrypt:/etc/letsencrypt + - ${DATA_PATH}/nginx-proxy-manager/static:/static + - ${DATA_PATH}/nginx-proxy-manager/snippets:/snippets:ro + ports: + - ${NGINX_HTTP_PORT}:80 + - ${NGINX_WEBUI_PORT}:81 + - ${NGINX_HTTPS_PORT}:443 + restart: unless-stopped + + authelia: # authentication frontend for services that don't natively support external login + image: authelia/authelia + container_name: authelia + environment: + - PUID=${UID} + - PGID=${GID} + - TZ=${TZ} + volumes: + - ${DATA_PATH}/authelia/config:/config + networks: + - authelia + ports: + - 9091:9091 + restart: unless-stopped + + authelia-redis: # data structure server for authelia #https://redis.io/docs/about/ + image: redis:alpine + container_name: authelia-redis + environment: + - TZ=${TZ} + - PUID=${UID} + - PGID=${GID} + volumes: + - ${DATA_PATH}/authelia/redis:/data + networks: + - authelia + expose: + - 6379 + restart: unless-stopped + + wyoming-piper: # text to speech for home assistant https://github.com/rhasspy/wyoming-addons + image: rhasspy/wyoming-piper + container_name: wyoming-piper + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}6 + volumes: + - ${DATA_PATH}/wyoming_piper/data:/data + ports: + - ${WYOMING_PIPER_PORT}:10200 + command: --voice en-us-libritts-high + restart: unless-stopped + + wyoming-whisper: #speech to text for home assistant https://github.com/rhasspy/wyoming-addons + image: rhasspy/wyoming-whisper + container_name: wyoming_whisper + networks: + docker-local: + ipv4_address: ${SUBNET_PREFIX}7 + volumes: + - ${DATA_PATH}/wyoming_whisper/data:/data + ports: + - ${WYOMING_WHISPER_PORT}:10300 + command: --model tiny-int8 --language en + restart: unless-stopped diff --git a/home_assistant/docker-compose.yml b/home_assistant/docker-compose.yml deleted file mode 100644 index 5b88009..0000000 --- a/home_assistant/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - homeassistant: - container_name: homeassistant - image: "ghcr.io/home-assistant/home-assistant:stable" - volumes: - - ./config:/config - - /etc/localtime:/etc/localtime:ro - - /run/dbus:/run/dbus:ro - - /mnt/smb/Plex/Music:/media/Music:ro - restart: unless-stopped - privileged: true - network_mode: host diff --git a/kuma/docker-compose.yml b/kuma/docker-compose.yml deleted file mode 100644 index 12bd997..0000000 --- a/kuma/docker-compose.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3.3' -services: - uptime-kuma: - restart: always - ports: - - '3001:3001' - volumes: - - './data:/app/data' - container_name: uptime-kuma - image: 'louislam/uptime-kuma:1' diff --git a/lldap/docker-compose.yml b/lldap/docker-compose.yml deleted file mode 100644 index 1eeb216..0000000 --- a/lldap/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3.3' -services: - lldap: - volumes: - - './lldap_data:/data' - restart: always - hostname: accounts.pogmom.me - ports: - - '3890:3890' - - '17170:17170' - - '6360:6360' - image: 'nitnelave/lldap:stable' diff --git a/nginx/docker-compose.yml b/nginx/docker-compose.yml deleted file mode 100644 index 1ecf222..0000000 --- a/nginx/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3.8' -services: - app: - image: 'jc21/nginx-proxy-manager:2.9.22' - restart: unless-stopped - ports: - - '80:80' - - '81:81' - - '443:443' - volumes: - - ./config/data:/data - - ./config/letsencrypt:/etc/letsencrypt - - ./config/static:/static diff --git a/wyoming_piper/docker.sh b/wyoming_piper/docker.sh deleted file mode 100755 index 527de0a..0000000 --- a/wyoming_piper/docker.sh +++ /dev/null @@ -1 +0,0 @@ -docker run --restart=always -it -p 10200:10200 -v /home/pogmom/Dockers/wyoming_piper/data:/data rhasspy/wyoming-piper --voice en-us-libritts-high diff --git a/wyoming_whisper/docker.sh b/wyoming_whisper/docker.sh deleted file mode 100755 index 81c51ab..0000000 --- a/wyoming_whisper/docker.sh +++ /dev/null @@ -1 +0,0 @@ -docker run --restart=always -it -p 10300:10300 -v /home/pogmom/Dockers/wyoming_whisper/data:/data rhasspy/wyoming-whisper --model tiny-int8 --language en