This commit is contained in:
administrator
2026-06-21 20:30:44 +03:00
parent 74265a4bf5
commit e7667fe801
12 changed files with 210 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
# /opt/docker/core/caddy/Caddyfile (bcrypt-хеш скрыт — реальный в файле на VPS)
(protected) {
basic_auth {
admin <bcrypt-хеш в файле на VPS>
}
}
portainer.nao-kvn.ru {
import protected
reverse_proxy portainer:9000
}
status.nao-kvn.ru {
import protected
reverse_proxy uptime-kuma:3001
}
vault.nao-kvn.ru {
reverse_proxy vaultwarden:80
}
+38
View File
@@ -0,0 +1,38 @@
# /opt/docker/core/docker-compose.yml (ADMIN_TOKEN скрыт — реальный в файле на VPS)
services:
caddy:
image: caddy:2
restart: unless-stopped
ports: ["80:80", "443:443"]
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
networks: [proxy]
portainer:
image: portainer/portainer-ce:lts
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
networks: [proxy]
uptime-kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
volumes: [uptime_data:/app/data]
networks: [proxy]
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
environment:
DOMAIN: "https://vault.nao-kvn.ru"
SIGNUPS_ALLOWED: "false"
ADMIN_TOKEN: "<задан в файле на VPS>"
volumes: [vaultwarden_data:/data]
networks: [proxy]
volumes: { caddy_data: , caddy_config: , portainer_data: , uptime_data: , vaultwarden_data: }
networks: { proxy: }
+1
View File
@@ -0,0 +1 @@
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }
+10
View File
@@ -0,0 +1,10 @@
# /etc/fail2ban/jail.local
[DEFAULT]
banaction = ufw
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
backend = systemd
+15
View File
@@ -0,0 +1,15 @@
# rclone remotes — /root/.config/rclone/rclone.conf
Секреты (токен Google Drive, obscured-пароль SMB) — в самом rclone.conf на VPS, здесь не приводятся.
## gdrive (Google Drive)
- type: drive, scope: drive.file (видит только свои файлы)
- путь бэкапов: `gdrive:vaultwarden-backups/`
- (пере)авторизация: на машине с браузером `rclone config` (auto-config), затем скопировать
`~/.config/rclone/rclone.conf` на VPS в `/root/.config/rclone/`.
## homesmb (домашний SMB через WG)
- type: smb, host: 172.16.0.1, user: only_vps, pass: зашифрован (--obscure)
- путь: `"homesmb:TOSHIBA EXT/vaultwarden-backups/"` (кавычки из-за пробела в имени шары)
- пересоздать:
`rclone config create homesmb smb host 172.16.0.1 user only_vps pass "<пароль>" --obscure`
- зависит от поднятого туннеля wg0.
+6
View File
@@ -0,0 +1,6 @@
# /etc/ssh/sshd_config.d/00-hardening.conf
# Префикс 00- намеренно: sshd берёт первое значение, перебивает cloud-init.
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
+12
View File
@@ -0,0 +1,12 @@
# /etc/wireguard/wg0.conf (приватный ключ и endpoint скрыты — реальные в файле на VPS)
[Interface]
PrivateKey = <в файле на VPS>
Address = 10.0.0.5/32
[Peer]
PublicKey = <публичный ключ WG-сервера Keenetic>
Endpoint = 91.122.209.x:<порт>
AllowedIPs = 10.0.0.0/24, 172.16.0.0/24
PersistentKeepalive = 25
# VPS в туннеле 10.0.0.5; Keenetic 10.0.0.1; домашняя LAN/SMB 172.16.0.0/24 (хост 172.16.0.1)
# systemd: wg-quick@wg0 enabled (автоподъём при загрузке)