removed old folders
This commit is contained in:
parent
767bce946f
commit
26282240e5
604 changed files with 0 additions and 313797 deletions
|
|
@ -1,66 +0,0 @@
|
||||||
services:
|
|
||||||
semaphore-postgres:
|
|
||||||
image: postgres:15
|
|
||||||
container_name: semaphore-postgres
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- /docker/ansible/postgres:/var/lib/postgresql/data
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: semaphore
|
|
||||||
POSTGRES_PASSWORD: ${SEMAPHORE_DB_PASSWORD}
|
|
||||||
POSTGRES_DB: semaphore
|
|
||||||
networks:
|
|
||||||
- ansible_internal
|
|
||||||
labels:
|
|
||||||
- "komodo.skip=true"
|
|
||||||
|
|
||||||
semaphore:
|
|
||||||
image: semaphoreui/semaphore:latest
|
|
||||||
container_name: semaphore
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- semaphore-postgres
|
|
||||||
ports:
|
|
||||||
- "3000:3000"
|
|
||||||
environment:
|
|
||||||
# Database Connection
|
|
||||||
SEMAPHORE_DB_DIALECT: postgres
|
|
||||||
SEMAPHORE_DB_HOST: semaphore-postgres
|
|
||||||
SEMAPHORE_DB_USER: semaphore
|
|
||||||
SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASSWORD}
|
|
||||||
SEMAPHORE_DB_PORT: 5432
|
|
||||||
SEMAPHORE_DB: semaphore
|
|
||||||
|
|
||||||
# Admin User Setup (Created on first run)
|
|
||||||
SEMAPHORE_ADMIN: admin
|
|
||||||
SEMAPHORE_ADMIN_PASSWORD: ${SEMAPHORE_ADMIN_PASSWORD}
|
|
||||||
SEMAPHORE_ADMIN_NAME: "Admin"
|
|
||||||
SEMAPHORE_ADMIN_EMAIL: "admin@mapletree.email"
|
|
||||||
|
|
||||||
# Security & Config
|
|
||||||
# Generate this with: head -c32 /dev/urandom | base64
|
|
||||||
SEMAPHORE_ACCESS_KEY_ENCRYPTION: ${SEMAPHORE_ENCRYPTION_KEY}
|
|
||||||
SEMAPHORE_Tmp_Path: /tmp/semaphore
|
|
||||||
volumes:
|
|
||||||
# Map your host SSH keys so Semaphore can SSH into your servers
|
|
||||||
- /root/.ssh:/root/.ssh:ro
|
|
||||||
# Allow Semaphore to control Docker on the host (optional, but useful for Ansible)
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
# Persist configuration
|
|
||||||
- /docker/ansible/semaphore:/etc/semaphore
|
|
||||||
networks:
|
|
||||||
- ansible_external # For Traefik access
|
|
||||||
- ansible_internal # For Database access
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.docker.network=ansible_external"
|
|
||||||
- "traefik.http.routers.semaphore.rule=Host(`ansible.mapletree.email`)"
|
|
||||||
- "traefik.http.routers.semaphore.entrypoints=web,websecure"
|
|
||||||
- "traefik.http.routers.semaphore.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.services.semaphore.loadbalancer.server.port=3000"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
ansible_external:
|
|
||||||
external: true
|
|
||||||
ansible_internal:
|
|
||||||
internal: true
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"postgres": {
|
|
||||||
"host": "semaphore-postgres:5432",
|
|
||||||
"user": "semaphore",
|
|
||||||
"pass": "34reSVI6GKdr5xEGzC6eHKi+a2Int5xvp9eyx+tC+0Y=",
|
|
||||||
"name": "semaphore",
|
|
||||||
"options": {
|
|
||||||
"sslmode": "disable"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dialect": "postgres",
|
|
||||||
"tmp_path": "/tmp/semaphore",
|
|
||||||
"cookie_hash": "S7ijkMPos6enLgDYyFlMC+2nI0/8isOMbWI24PnqBhk=",
|
|
||||||
"cookie_encryption": "CWqqZ1L0z6Y/0CE/MSFHA7JM5IW2y/Vgx+nMO3m0rfY=",
|
|
||||||
"access_key_encryption": "vETTM8BJ2uMMAHJ74KOdlRKGw0QYWhWjq9xaBa8vuJU="
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
- name: Ping Test
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- name: Ping
|
|
||||||
ansible.builtin.ping:
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#!/usr/bin/with-contenv bash
|
|
||||||
# shellcheck shell=bash
|
|
||||||
#
|
|
||||||
# beets music tagger - post-processing script
|
|
||||||
#
|
|
||||||
# Author: Rich Manton (overbyrn)
|
|
||||||
# Date: 29-04-13
|
|
||||||
#
|
|
||||||
# $1 - Fullpath of directory to be processed. eg./mnt/user/downloads/some.artist_some.album
|
|
||||||
|
|
||||||
# $7 - Status of post processing. 0 = OK, 1 = failed verification, 2 = failed unpack, 3 = 1+2
|
|
||||||
if [ -n "$7" ] && [ "$7" -gt 0 ]; then
|
|
||||||
echo "post-processing failed, bypassing script"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# process files
|
|
||||||
echo "--------------------------"
|
|
||||||
printf %b "$(date)\n"
|
|
||||||
echo "Starting beets.sh for $(basename "$1")"
|
|
||||||
|
|
||||||
BEETSDIR=/config
|
|
||||||
export BEETSDIR
|
|
||||||
FPCALC=/usr/bin/fpcalc
|
|
||||||
export FPCALC
|
|
||||||
/lsiopy/bin/beet -v import -q "$1"
|
|
||||||
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
directory: /music/combined
|
|
||||||
library: /config/musiclibrary.db
|
|
||||||
import:
|
|
||||||
copy: no # Use files in place
|
|
||||||
plugins:
|
|
||||||
- musicbrainz # Example plugin for fetching metadata
|
|
||||||
- web
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
beet -c /config/config.yaml import -q /music
|
|
||||||
Binary file not shown.
|
|
@ -1,16 +0,0 @@
|
||||||
services:
|
|
||||||
beets:
|
|
||||||
image: linuxserver/beets
|
|
||||||
container_name: beets
|
|
||||||
environment:
|
|
||||||
- PUID=1000 # Your user ID
|
|
||||||
- PGID=1000 # Your group ID
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
# Your timezone
|
|
||||||
volumes:
|
|
||||||
- /docker/beets/config:/config # Mount your Beets config directory
|
|
||||||
- /pool/music:/music # Mount your music library
|
|
||||||
#- /path/to/your/import_source:/import # Optional: directory for importing new music
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- 8337:8337
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
services:
|
|
||||||
ddns:
|
|
||||||
image: qmcgaw/ddns-updater
|
|
||||||
user: 0:0
|
|
||||||
container_name: ddns
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "8000:8000/tcp"
|
|
||||||
environment:
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
- PERIOD=5m
|
|
||||||
- PUBLICIP_FETCHERS=http
|
|
||||||
- PUBLICIP_HTTP_PROVIDERS=all
|
|
||||||
- CONFIG={"settings":[{"provider":"desec","domain":"mapletree.email","host":"@","token":"${DESEC_TOKEN}","ip_version":"ipv4"}]}
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- /docker/core/ddns:/updater/data
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
services:
|
|
||||||
dns:
|
|
||||||
image: technitium/dns-server:latest
|
|
||||||
container_name: dns-${NODE_ID} # Becomes dns-1 or dns-2
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "53:53/udp"
|
|
||||||
- "53:53/tcp"
|
|
||||||
- "5381:5380/tcp"
|
|
||||||
environment:
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
- DNS_SERVER_DOMAIN=dns${NODE_ID}.mapletree.email # dns1... or dns2...
|
|
||||||
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
|
|
||||||
volumes:
|
|
||||||
# Updated path to match your new 'infrastructure' folder structure
|
|
||||||
- /docker/core/dns/config:/etc/dns
|
|
||||||
networks:
|
|
||||||
- dns_external
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.docker.network=dns_external"
|
|
||||||
# Dynamic Router Name (dns1 vs dns2)
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.rule=Host(`dns${NODE_ID}.mapletree.email`)"
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.entrypoints=web,websecure"
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.services.dns${NODE_ID}.loadbalancer.server.port=5380"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
dns_external:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
services:
|
|
||||||
dns:
|
|
||||||
image: technitium/dns-server:latest
|
|
||||||
container_name: dns-${NODE_ID} # Becomes dns-1 or dns-2
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "53:53/udp"
|
|
||||||
- "53:53/tcp"
|
|
||||||
- "5381:5380/tcp"
|
|
||||||
environment:
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
- DNS_SERVER_DOMAIN=dns${NODE_ID}.mapletree.email # dns1... or dns2...
|
|
||||||
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
|
|
||||||
volumes:
|
|
||||||
# Updated path to match your new 'infrastructure' folder structure
|
|
||||||
- /docker/core/dns/config:/etc/dns
|
|
||||||
networks:
|
|
||||||
- dns_external
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.docker.network=dns_external"
|
|
||||||
# Dynamic Router Name (dns1 vs dns2)
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.rule=Host(`dns${NODE_ID}.mapletree.email`)"
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.entrypoints=web,websecure"
|
|
||||||
- "traefik.http.routers.dns${NODE_ID}.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.services.dns${NODE_ID}.loadbalancer.server.port=5380"
|
|
||||||
|
|
||||||
traefik:
|
|
||||||
image: traefik:latest
|
|
||||||
container_name: traefik
|
|
||||||
network_mode: host
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
cpus: 1.0
|
|
||||||
mem_limit: "1024m"
|
|
||||||
mem_reservation: "128m"
|
|
||||||
restart: always
|
|
||||||
#ports:
|
|
||||||
# - "80:80" # HTTP
|
|
||||||
# - "443:443" # HTTPS
|
|
||||||
# - "888:8080" # Traefik Dashboard (optional, password-protect in production!)
|
|
||||||
command:
|
|
||||||
- "--api.dashboard=true"
|
|
||||||
- "--api.insecure=true" # Remove or secure in prod
|
|
||||||
- "--providers.docker=true"
|
|
||||||
- "--providers.docker.exposedbydefault=false"
|
|
||||||
- "--entrypoints.web.address=:80"
|
|
||||||
- "--entrypoints.websecure.address=:443"
|
|
||||||
- "--providers.docker.network=web,request"
|
|
||||||
- "--providers.file.directory=/etc/traefik/dynamic"
|
|
||||||
- "--providers.file.watch=true"
|
|
||||||
##DNS resolver
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge=true"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=desec"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.delaybeforecheck=90"
|
|
||||||
- --certificatesresolvers.myresolver.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53
|
|
||||||
- "--certificatesresolvers.myresolver.acme.email=admin@mapletree.email"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
|
||||||
##HTTP resolver
|
|
||||||
- --certificatesresolvers.le_http.acme.httpchallenge=true
|
|
||||||
- --certificatesresolvers.le_http.acme.httpchallenge.entrypoint=web
|
|
||||||
- --certificatesresolvers.le_http.acme.email=admin@mapletree.email
|
|
||||||
- --certificatesresolvers.le_http.acme.storage=/letsencrypt/acme.json
|
|
||||||
environment:
|
|
||||||
# Pass the variables through
|
|
||||||
- DESEC_TOKEN=${DESEC_TOKEN}
|
|
||||||
- DESEC_DOMAIN=${DESEC_DOMAIN}
|
|
||||||
# (Any other Traefik env vars you need)
|
|
||||||
volumes:
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
- "/docker/core/traefik/letsencrypt:/letsencrypt"
|
|
||||||
- "${REPO_ROOT}/traefik/dynamic:/etc/traefik/dynamic"
|
|
||||||
#networks:
|
|
||||||
# - guac_external
|
|
||||||
# - komodo_external
|
|
||||||
# - ansible_external
|
|
||||||
# - dns_external
|
|
||||||
# - homepage_external
|
|
||||||
|
|
||||||
# DDNS UPDATER (IP Updates)
|
|
||||||
ddns:
|
|
||||||
image: qmcgaw/ddns-updater
|
|
||||||
user: 0:0
|
|
||||||
container_name: ddns
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "8000:8000/tcp"
|
|
||||||
environment:
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
- PERIOD=5m
|
|
||||||
- PUBLICIP_FETCHERS=http
|
|
||||||
- PUBLICIP_HTTP_PROVIDERS=all
|
|
||||||
- CONFIG={"settings":[{"provider":"desec","domain":"mapletree.email","host":"@","token":"${DESEC_TOKEN}","ip_version":"ipv4"}]}
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- /docker/core/ddns:/updater/data
|
|
||||||
|
|
||||||
networks:
|
|
||||||
guac_external:
|
|
||||||
external: true
|
|
||||||
komodo_external:
|
|
||||||
external: true
|
|
||||||
ansible_external:
|
|
||||||
external: true
|
|
||||||
dns_external:
|
|
||||||
external: true
|
|
||||||
homepage_external:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
services:
|
|
||||||
traefik:
|
|
||||||
image: traefik:latest
|
|
||||||
container_name: traefik
|
|
||||||
network_mode: host
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
cpus: 1.0
|
|
||||||
mem_limit: "1024m"
|
|
||||||
mem_reservation: "128m"
|
|
||||||
restart: always
|
|
||||||
#ports:
|
|
||||||
# - "80:80" # HTTP
|
|
||||||
# - "443:443" # HTTPS
|
|
||||||
# - "888:8080" # Traefik Dashboard (optional, password-protect in production!)
|
|
||||||
command:
|
|
||||||
- "--api.dashboard=true"
|
|
||||||
- "--api.insecure=true" # Remove or secure in prod
|
|
||||||
- "--providers.docker=true"
|
|
||||||
- "--providers.docker.exposedbydefault=false"
|
|
||||||
- "--providers.docker.useBindPortIP=false"
|
|
||||||
- "--entrypoints.web.address=:80"
|
|
||||||
- "--entrypoints.websecure.address=:443"
|
|
||||||
- "--providers.docker.network=${DOCKER_NETWORK_LIST}"
|
|
||||||
- "--providers.file.directory=/etc/traefik/dynamic"
|
|
||||||
- "--providers.file.watch=true"
|
|
||||||
##DNS resolver
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge=true"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=desec"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.delaybeforecheck=90"
|
|
||||||
- --certificatesresolvers.myresolver.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53
|
|
||||||
- "--certificatesresolvers.myresolver.acme.email=admin@mapletree.email"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
|
||||||
##HTTP resolver
|
|
||||||
- --certificatesresolvers.le_http.acme.httpchallenge=true
|
|
||||||
- --certificatesresolvers.le_http.acme.httpchallenge.entrypoint=web
|
|
||||||
- --certificatesresolvers.le_http.acme.email=admin@mapletree.email
|
|
||||||
- --certificatesresolvers.le_http.acme.storage=/letsencrypt/acme.json
|
|
||||||
environment:
|
|
||||||
# Pass the variables through
|
|
||||||
- DESEC_TOKEN=${DESEC_TOKEN}
|
|
||||||
- DESEC_DOMAIN=${DESEC_DOMAIN}
|
|
||||||
# (Any other Traefik env vars you need)
|
|
||||||
volumes:
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
- "/docker/core/traefik/letsencrypt:/letsencrypt"
|
|
||||||
- "${REPO_ROOT}/traefik/dynamic:/etc/traefik/dynamic"
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
# JELLYFIN ROUTER
|
|
||||||
jellyfin:
|
|
||||||
rule: "Host(`media.mapletree.email`)"
|
|
||||||
service: jellyfin-service
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
tls:
|
|
||||||
certResolver: myresolver
|
|
||||||
stash:
|
|
||||||
rule: "Host(`stash.mapletree.email`)"
|
|
||||||
service: stash-service
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
tls:
|
|
||||||
certResolver: myresolver
|
|
||||||
|
|
||||||
services:
|
|
||||||
# JELLYFIN SERVICE (The Destination)
|
|
||||||
jellyfin-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
# The IP address of pve2-lxc2
|
|
||||||
- url: "http://172.16.201.202:8096"
|
|
||||||
passHostHeader: true
|
|
||||||
stash-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
# The IP address of pve2-lxc2
|
|
||||||
- url: "http://172.16.201.202:9999"
|
|
||||||
passHostHeader: true
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
overseerr:
|
|
||||||
rule: "Host(`request.mapletree.email`)"
|
|
||||||
service: overseerr-service
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
tls:
|
|
||||||
certResolver: myresolver
|
|
||||||
|
|
||||||
services:
|
|
||||||
overseerr-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: "http://172.16.201.202:8096"
|
|
||||||
passHostHeader: true
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
smf-web:
|
|
||||||
rule: "Host(`archive.westernsubaruclub.ca`)"
|
|
||||||
service: smf-service
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
tls:
|
|
||||||
certResolver: le_http
|
|
||||||
|
|
||||||
services:
|
|
||||||
smf-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: "http://172.16.201.202:80"
|
|
||||||
passHostHeader: true
|
|
||||||
|
|
||||||
middlewares:
|
|
||||||
https-redirect:
|
|
||||||
redirectScheme:
|
|
||||||
scheme: https
|
|
||||||
permanent: true
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
{
|
|
||||||
"settings": [
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "activepieces",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "firefly",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "firefly-import",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "ha",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "media",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "music",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "request",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "stash",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "syncthing",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "lukas",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "josh",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "rustdesk",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"provider": "namecheap",
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"host": "ssh",
|
|
||||||
"password": "1ca674aff7c34051babec029f0c4eb78"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,238 +0,0 @@
|
||||||
{
|
|
||||||
"records": [
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "activepieces",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.598594845Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:56:36.805186025Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "firefly",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.044336038Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T12:06:36.327383699Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "firefly-import",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.685644543Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T12:01:36.408325056Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "ha",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:36.545872198Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T12:01:36.51727364Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "media",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:36.697141701Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:46:36.591132154Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "music",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.130094711Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T12:01:36.611585284Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "request",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:36.78400893Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:51:38.14005314Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "stash",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.215898786Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:46:36.691068393Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "syncthing",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.322103667Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:56:36.529780427Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "lukas",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T00:11:12.727495911Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:36.867839801Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:56:36.617891144Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "josh",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T01:49:10.258641795Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.428639266Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:46:36.782529426Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "rustdesk",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T18:35:24.275438034Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:37.514619364Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T11:56:36.705830114Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"domain": "mapletree.email",
|
|
||||||
"owner": "ssh",
|
|
||||||
"ips": [
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-20T18:35:24.275438034Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "108.173.3.22",
|
|
||||||
"time": "2026-01-21T11:36:36.957924863Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ip": "50.65.208.7",
|
|
||||||
"time": "2026-01-21T12:06:36.452443906Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
services:
|
|
||||||
ddns:
|
|
||||||
image: qmcgaw/ddns-updater
|
|
||||||
container_name: ddns
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- /docker/ddns/config:/updater/data
|
|
||||||
dns:
|
|
||||||
- 1.1.1.1
|
|
||||||
- 8.8.8.8
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,47 +0,0 @@
|
||||||
services:
|
|
||||||
# --- Node 1 (Primary) ---
|
|
||||||
dns:
|
|
||||||
image: technitium/dns-server:latest
|
|
||||||
container_name: dns-01
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "53:53/udp" # Live DNS
|
|
||||||
- "53:53/tcp"
|
|
||||||
- "5381:5380/tcp" # Web UI -> 5381
|
|
||||||
environment:
|
|
||||||
- TZ=America/Edmonton
|
|
||||||
- DNS_SERVER_DOMAIN=dns1.mapletree.email
|
|
||||||
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
|
|
||||||
volumes:
|
|
||||||
#- ${CONFIG_PATH}/primary:/etc/dns/config
|
|
||||||
- /docker/dns/config:/etc/dns
|
|
||||||
networks:
|
|
||||||
dns_internal:
|
|
||||||
dns_external: {}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.docker.network=dns_external"
|
|
||||||
- "traefik.http.routers.dns01.rule=Host(`dns1.mapletree.email`)"
|
|
||||||
- "traefik.http.routers.dns01.entrypoints=web,websecure"
|
|
||||||
- "traefik.http.routers.dns01.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.services.dns01.loadbalancer.server.port=5380"
|
|
||||||
|
|
||||||
# --- Metrics Sidecar ---
|
|
||||||
dns-exporter:
|
|
||||||
image: ghcr.io/guycalledseven/technitium-dns-prometheus-exporter:latest
|
|
||||||
container_name: dns-exporter
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
# Note the simplified variable names
|
|
||||||
- TECHNITIUM_BASE_URL=http://172.35.0.101:5380
|
|
||||||
- TECHNITIUM_TOKEN=${DNS_API_TOKEN}
|
|
||||||
ports:
|
|
||||||
- "8081:9105" # Maps container 8080 to host 8081
|
|
||||||
networks:
|
|
||||||
- dns_internal
|
|
||||||
|
|
||||||
networks:
|
|
||||||
dns_internal:
|
|
||||||
internal: true
|
|
||||||
dns_external:
|
|
||||||
external: true
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue