Завершена настройка домена для дева, теста и прода. Соединение через ssh-туннель
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# VPS (186.246.51.17) — реверс-прокси Caddy + точка входа SSH-туннелей
|
||||
|
||||
Единственная публичная точка. На VPS: Caddy терминирует HTTPS твоими сертификатами
|
||||
для двух доменов и проксирует трафик в SSH reverse-туннели от Pi (прод) и ПК (dev/test).
|
||||
|
||||
```
|
||||
forbiddenstars.ru → 127.0.0.1:9000 ← Pi (autossh, постоянно) PROD
|
||||
forbidden-stars.ru → 127.0.0.1:9001 ← ПК (по требованию) DEV/TEST
|
||||
```
|
||||
|
||||
> Туннель `ssh -R` по умолчанию слушает на loopback VPS (127.0.0.1) — ровно туда смотрит
|
||||
> Caddy. `GatewayPorts` включать НЕ нужно. Снаружи порты 9000/9001 недоступны.
|
||||
|
||||
## 0. DNS
|
||||
A-записи обоих доменов → `186.246.51.17`:
|
||||
```
|
||||
forbiddenstars.ru A 186.246.51.17
|
||||
forbidden-stars.ru A 186.246.51.17
|
||||
```
|
||||
Проверка: `dig +short forbiddenstars.ru` (и второго) должны вернуть этот IP.
|
||||
|
||||
## 1. Зайти на VPS
|
||||
```bash
|
||||
ssh root@186.246.51.17 # пароль введёшь сам
|
||||
```
|
||||
|
||||
## 2. Обновление + файрвол
|
||||
```bash
|
||||
apt update && apt -y upgrade
|
||||
apt -y install ufw curl gnupg
|
||||
ufw allow OpenSSH
|
||||
ufw allow 80/tcp
|
||||
ufw allow 443/tcp
|
||||
ufw --force enable
|
||||
```
|
||||
|
||||
## 3. Установить Caddy (официальный репозиторий)
|
||||
```bash
|
||||
apt -y install debian-keyring debian-archive-keyring apt-transport-https
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
|
||||
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
|
||||
| tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
apt update && apt -y install caddy
|
||||
```
|
||||
|
||||
## 4. Пользователь под туннели
|
||||
```bash
|
||||
useradd -m -s /bin/bash tunnel
|
||||
install -d -m 700 -o tunnel -g tunnel /home/tunnel/.ssh
|
||||
install -m 600 -o tunnel -g tunnel /dev/null /home/tunnel/.ssh/authorized_keys
|
||||
```
|
||||
Публичные ключи Pi и ПК добавишь в `/home/tunnel/.ssh/authorized_keys` на шагах настройки
|
||||
Pi (`deploy/pi/README.md`) и ПК (через `ssh-copy-id`).
|
||||
|
||||
## 5. Сертификаты
|
||||
```bash
|
||||
mkdir -p /etc/caddy/certs/forbiddenstars.ru /etc/caddy/certs/forbidden-stars.ru
|
||||
```
|
||||
Залей свои файлы с локальной машины (с каждого домена — свой `fullchain.pem` + `privkey.pem`):
|
||||
```bash
|
||||
# на локальной машине:
|
||||
scp fullchain.pem privkey.pem root@186.246.51.17:/etc/caddy/certs/forbiddenstars.ru/
|
||||
scp fullchain.pem privkey.pem root@186.246.51.17:/etc/caddy/certs/forbidden-stars.ru/
|
||||
```
|
||||
- `fullchain.pem` = твой сертификат + промежуточные GlobalSign **одним файлом** (сначала leaf, затем chain).
|
||||
- `privkey.pem` = приватный ключ (без пароля).
|
||||
```bash
|
||||
# на VPS — права:
|
||||
chown -R caddy:caddy /etc/caddy/certs && chmod -R 640 /etc/caddy/certs
|
||||
```
|
||||
|
||||
## 6. Caddyfile
|
||||
Скопируй `deploy/vps/Caddyfile` из репозитория в `/etc/caddy/Caddyfile`, затем:
|
||||
```bash
|
||||
caddy validate --config /etc/caddy/Caddyfile
|
||||
systemctl reload caddy
|
||||
```
|
||||
|
||||
## 7. Проверка
|
||||
1. Подними туннель прода на Pi (см. `deploy/pi/README.md`) и/или dev/test на ПК (`run.ps1` при `LOCAL_PUBLIC=vps`).
|
||||
2. Открой `https://forbiddenstars.ru` и `https://forbidden-stars.ru`.
|
||||
3. Пока соответствующий туннель не поднят — Caddy отдаёт `502`, это ожидаемо.
|
||||
|
||||
Логи Caddy: `journalctl -u caddy -f`.
|
||||
Reference in New Issue
Block a user