Archive Legacy Setup And Add Ansible Control Plane

This commit is contained in:
Dmitry
2026-07-08 12:47:37 +03:00
parent 841d56380b
commit 4bafa7d09e
203 changed files with 1663 additions and 11 deletions
@@ -0,0 +1,46 @@
services:
adguard:
image: adguard/adguardhome:latest
container_name: adguard
#network_mode: "host" # DHCP server - optional, only if AdGuard handles DHCP
restart: always
deploy:
resources:
limits:
memory: 256M
reservations:
memory: 64M
healthcheck:
test:
- CMD-SHELL
- /opt/adguardhome/AdGuardHome --check-config -w /opt/adguardhome/work
-c /opt/adguardhome/conf/AdGuardHome.yaml
interval: 45s
timeout: 30s
retries: 3
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Moscow
volumes:
- /opt/data/adguard/work:/opt/adguardhome/work:rw
- /opt/configs/adguard:/opt/adguardhome/conf:rw
- /etc/hosts:/etc/hosts:ro
ports:
- 53:53/tcp # DNS - **mandatory**
- 53:53/udp # DNS - **mandatory**
#- "67:67/udp" # DHCP server - optional, only if AdGuard handles DHCP
#- "68:68/udp" # DHCP server - optional
- 8088:80/tcp # Dashboard HTTP - optional, only if not using HTTPS
- 4438:443/tcp # DNS-over-HTTPS / dashboard HTTPS - optional but recommended if using DoH
- 784:784/udp # DNS-over-QUIC (beta) - optional, experimental
- 853:853/tcp # DNS-over-TLS - optional
- 3015:3000/tcp # Dashboard initial config - optional, only for initial setup
- 5443:5443/tcp # DNSCrypt / alternative DoH - optional
- 5443:5443/udp # DNSCrypt depends on TCP - optional
#- "6060:6060/tcp" # Internal API - optional, do not expose
#- "8853:8853/udp" # DNS mTLS (beta) - optional, experimental
cap_add:
- NET_ADMIN
- SYS_MODULE
networks: {}
@@ -0,0 +1,2 @@
LEGO_EMAIL=you@example.com
TIMEWEBCLOUD_AUTH_TOKEN=changeme
@@ -0,0 +1,19 @@
git.ada-dev.ru {
tls /config/lego/certificates/ada-dev.ru.crt /config/lego/certificates/ada-dev.ru.key
reverse_proxy 192.168.1.5:3002
}
cloud.ada-dev.ru {
tls /config/lego/certificates/ada-dev.ru.crt /config/lego/certificates/ada-dev.ru.key
reverse_proxy 192.168.1.5:8081
}
router.ada-dev.ru {
tls /config/lego/certificates/ada-dev.ru.crt /config/lego/certificates/ada-dev.ru.key
reverse_proxy 192.168.1.1:80
}
dns.ada-dev.ru {
tls /config/lego/certificates/ada-dev.ru.crt /config/lego/certificates/ada-dev.ru.key
reverse_proxy 192.168.1.10:8088
}
@@ -0,0 +1,68 @@
services:
caddy:
image: caddy:2-alpine
container_name: caddy
restart: unless-stopped
dns:
- 1.1.1.1
- 8.8.8.8
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- /opt/data/caddy:/data
- /opt/configs/caddy:/config
entrypoint: /bin/sh
command:
- -c
- |
while [ ! -f /config/lego/certificates/ada-dev.ru.crt ] || [ ! -f /config/lego/certificates/ada-dev.ru.key ]; do
sleep 10
done
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
lego:
image: git.ada-dev.ru/ada/lego:latest
container_name: caddy-lego
dns:
- 1.1.1.1
- 8.8.8.8
env_file:
- .env
restart: unless-stopped
volumes:
- /opt/configs/caddy/lego:/lego-data
entrypoint: /bin/sh
command:
- -c
- |
while true; do
if [ -f /lego-data/certificates/ada-dev.ru.crt ]; then
/lego renew \
--email "$$LEGO_EMAIL" \
--dns timewebcloud \
--dns.resolvers 1.1.1.1:53 \
--dns.resolvers 8.8.8.8:53 \
--dns.propagation-timeout 5m \
--domains ada-dev.ru \
--domains '*.ada-dev.ru' \
--path /lego-data \
--days 30
sleep 24h
else
/lego run \
--email "$$LEGO_EMAIL" \
--accept-tos \
--dns timewebcloud \
--dns.resolvers 1.1.1.1:53 \
--dns.resolvers 8.8.8.8:53 \
--dns.propagation-timeout 5m \
--domains ada-dev.ru \
--domains '*.ada-dev.ru' \
--path /lego-data
sleep 10m
fi
done
networks: {}
@@ -0,0 +1,4 @@
FROM gitea/act_runner:latest
USER root
RUN apk add --no-cache docker-cli docker-cli-compose openssh-client
@@ -0,0 +1,16 @@
services:
gitea-runner:
build: .
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/services:/opt/services
- /opt/data/gitea-runner:/data
environment:
GITEA_INSTANCE_URL: https://git.ada-dev.ru
GITEA_RUNNER_REGISTRATION_TOKEN: ${TOKEN}
GITEA_RUNNER_NAME: mini-pc-runner
GITEA_RUNNER_LABELS: mini-pc
dns:
- 1.1.1.1
- 8.8.8.8
@@ -0,0 +1,13 @@
services:
memoir-bot:
image: git.ada-dev.ru/ada/memoir_bot:0.1
restart: unless-stopped
env_file:
- .env
environment:
OBSIDIAN_VAULT_PATH: /vault
TZ: ${TIMEZONE:-Europe/Moscow}
volumes:
- /opt/data/memoir_bot:/vault
- /home/ada/.ssh:/root/.ssh:ro
network_mode: host
@@ -0,0 +1,38 @@
version = "1"
[global]
scheduler = "systemd"
[default]
password-file = "/etc/restic/password"
initialize = true
[default.forget]
keep-daily = 7
keep-weekly = 4
keep-monthly = 6
schedule-permission = "system"
schedule-after-backup = true
prune = true
[default.check]
schedule = "Sun 04:00"
schedule-permission = "system"
schedule-after-network-online = true
[services]
inherit = "default"
repository = "rclone:yadisk:System/Backups/mini-pc/restic/services"
[services.backup]
source = ["/opt/data", "/opt/configs"]
tag = ["mini-pc", "services"]
exclude-caches = true
one-file-system = true
schedule = "03:00"
schedule-permission = "system"
schedule-after-network-online = true
schedule-log = "/var/log/resticprofile/services.log"
[services.forget]
schedule = "03:30"
@@ -0,0 +1,13 @@
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
hostname: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
environment:
TZ: Europe/Moscow
volumes:
- /opt/data/uptime-kuma:/app/data
networks: {}
@@ -0,0 +1,14 @@
services:
v2raya:
image: mzz2017/v2raya:latest
container_name: v2raya
restart: unless-stopped
network_mode: host
privileged: true
volumes:
- /opt/data/v2raya:/etc/v2raya
- /opt/data/v2raya-extra:/etc/v2raya-extra
environment:
- V2RAYA_LOG_FILE=/tmp/v2raya.log
- V2RAYA_V2RAY_BIN_PATH=/usr/local/bin/v2ray
- V2RAYA_V2RAY_CONFDIR=/etc/v2raya-extra
@@ -0,0 +1,8 @@
ADMIN_TOKEN=changeme
SMTP_HOST=smtp.yandex.ru
SMTP_PORT=465
SMTP_SECURITY=force_tls
SMTP_USERNAME=info.ada-dev@yandex.ru
SMTP_PASSWORD=changeme
SMTP_FROM=info.ada-dev@yandex.ru
SMTP_FROM_NAME=Vaultwarden
@@ -0,0 +1,17 @@
services:
vaultwarden:
hostname: vaultwarden
image: vaultwarden/server:latest
ports:
- target: 80
published: "10380"
protocol: tcp
restart: unless-stopped
env_file: .env
volumes:
- type: bind
source: /opt/data/vaultwarden
target: /data
networks:
default:
name: vaultwarden_default
@@ -0,0 +1,15 @@
services:
zerotier:
container_name: zerotier
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- SYS_ADMIN
devices:
- /dev/net/tun
volumes:
- /opt/data/zerotier:/var/lib/zerotier-one
image: zerotier/zerotier:latest
command: ["743993800fa5a34c"]
networks: {}