Инструкции
Подключение sand.a2v.space (Leadera Project)
Архитектура
Mac Studio
├─ Frontend (Angular) :4200 (pm2: leadera-fe)
├─ Backend (Go) :8080 (pm2: leadera-api)
└─ PostgreSQL 16 в Docker (Colima, container: app-leadera-db)
→ autossh SSH-туннель (-R 8082:localhost:4200 -R 8083:localhost:8080)
→ VPS 95.163.232.9
→ nginx HTTPS
→ https://sand.a2v.space
Параметры
| Компонент | Локальный порт | Туннель порт | pm2 имя |
|---|---|---|---|
| Frontend (Angular) | 4200 | 8082 | leadera-fe |
| Backend (Go) | 8080 | 8083 | leadera-api |
SSL сертификат: /etc/letsencrypt/live/sand.a2v.space/
nginx конфиг
server {
listen 80;
server_name sand.a2v.space;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name sand.a2v.space;
ssl_certificate /etc/letsencrypt/live/sand.a2v.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sand.a2v.space/privkey.pem;
location /api {
proxy_pass http://127.0.0.1:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
proxy_pass http://127.0.0.1:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
База данных
PostgreSQL 16 в Docker через Colima:
Подключение code.a2v.space (OpenCode)
Архитектура
Mac Studio (localhost:4096)
→ autossh SSH-туннель (-R 8081:localhost:4096)
→ VPS 95.163.232.9:8081
→ nginx HTTPS
→ https://code.a2v.space
Параметры
| Параметр | Значение |
|---|---|
| Локальный порт | 4096 |
| Туннель порт | 8081 |
| pm2 процесс | opencode |
| SSL сертификат | /etc/letsencrypt/live/code.a2v.space/ |
nginx конфиг
server {
listen 80;
server_name code.a2v.space;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name code.a2v.space;
ssl_certificate /etc/letsencrypt/live/code.a2v.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/code.a2v.space/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
SSL-сертификат
certbot certonly --nginx -d code.a2v.space
Подключение claw.a2v.space (OpenClaw)
Архитектура
Mac Studio (192.168.0.37:18789)
→ autossh SSH-туннель
→ VPS 95.163.232.9:8080
→ nginx HTTPS
→ https://claw.a2v.space
Шаги настройки
1. DNS
A-запись claw.a2v.space → 95.163.232.9
NS-серверы: ns1.hosting.reg.ru, ns2.hosting.reg.ru
2. Mac Studio — OpenClaw
- Порт: 18789
- Конфиг:
~/.openclaw/openclaw.json
3. SSH-туннель (launchd)
Plist: ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
Ключевой флаг: -R 8080:localhost:18789
4. VPS — nginx конфиг
server {
listen 80;
server_name claw.a2v.space;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name claw.a2v.space;
ssl_certificate /etc/letsencrypt/live/claw.a2v.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/claw.a2v.space/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
5. SSL-сертификат
certbot certonly --nginx -d claw.a2v.space
6. OpenClaw config
{
"allowedOrigins": ["https://claw.a2v.space"],
"trustedProxies": ["127.0.0.1"]
}
Настройка VPS как реверс-прокси
Общая схема
Mac Studio (локальная сеть)
→ autossh (SSH-туннели)
→ VPS 95.163.232.9 (Debian)
→ nginx (HTTPS reverse proxy)
→ интернет
Что нужно на VPS
1. Установленные пакеты
apt update
apt install nginx certbot python3-certbot-nginx
2. SSH-доступ
- Авторизация только по ключам
- Публичный ключ с Mac Studio добавлен в
/root/.ssh/authorized_keys
3. nginx
Для каждого домена создать server block:
- HTTP → редирект на HTTPS
- HTTPS с SSL-сертификатом Let’s Encrypt
proxy_passна localhost-порт туннеля
Пример структуры:
SSH туннели для VPS reverse proxy
Настройка SSH туннелей
VPS reg.ru (95.163.232.9)
# На Mac Studio: создать туннель для каждого сервиса
ssh -N -R 8080:localhost:8080 root@95.163.232.9 # leadera-api
ssh -N -R 8081:localhost:4096 root@95.163.232.9 # opencode
ssh -N -R 8082:localhost:4200 root@95.163.232.9 # leadera-fe
ssh -N -R 8083:localhost:8080 root@95.163.232.9 # docs-a2v
Настройка launchd plist
Файл: ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.openclaw.sshtunnel</string>
<key>ProgramArguments</key>
<array>
<string>ssh</string>
<string>-N</string>
<string>-R</string>
<string>8080:localhost:8080</string>
<string>root@95.163.232.9</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Автозапуск
# Загрузить plist
launchctl load ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
# Проверить статус
launchctl list | grep sshtunnel
# Удалить (при необходимости)
launchctl unload ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
Доступ к сервисам
Через reverse proxy на VPS: