autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Deployment Commands
|
||||
|
||||
Immutable release deployment for [REDACTED-NAME] API gateway on VPS ([REDACTED-IP]).
|
||||
|
||||
## Release ID convention
|
||||
|
||||
```bash
|
||||
RELEASE_ID=$(date +%Y%m%d_%H%M%S)
|
||||
# Example: 20260804_142027
|
||||
```
|
||||
|
||||
## Deploy workflow
|
||||
|
||||
```bash
|
||||
set -eu
|
||||
RELEASE_ID=20260804_142027
|
||||
SHA=$(sha256sum gateway.py | cut -d' ' -f1)
|
||||
|
||||
ssh root@host "mkdir -p /opt/apioid-echo/releases/${RELEASE_ID}"
|
||||
scp gateway.py root@host:/opt/apioid-echo/releases/${RELEASE_ID}/gateway.py
|
||||
scp [REDACTED-NAME].nginx.conf root@host:/opt/apioid-echo/releases/${RELEASE_ID}/
|
||||
|
||||
ssh root@host "
|
||||
R='${RELEASE_ID}'
|
||||
# backup
|
||||
cp /opt/apioid-echo/releases/current/gateway.py /var/backups/apioid-echo/gateway.before-\${R}.py
|
||||
cp /etc/nginx/sites-available/[REDACTED-NAME] /var/backups/apioid-echo/nginx.before-\${R}.conf
|
||||
# deploy
|
||||
ln -sfn /opt/apioid-echo/releases/\${R} /opt/apioid-echo/releases/current
|
||||
chown root:root /opt/apioid-echo/releases/\${R}/*
|
||||
chmod 0644 /opt/apioid-echo/releases/\${R}/gateway.py
|
||||
cp /opt/apioid-echo/releases/\${R}/[REDACTED-NAME].nginx.conf /etc/nginx/sites-available/[REDACTED-NAME]
|
||||
nginx -t && systemctl reload nginx
|
||||
systemctl restart apioid-echo-gateway.service
|
||||
sleep 1.5
|
||||
systemctl is-active apioid-echo-gateway.service
|
||||
systemctl show -p NRestarts apioid-echo-gateway.service
|
||||
"
|
||||
```
|
||||
|
||||
## Live smoke
|
||||
|
||||
```bash
|
||||
ssh root@host "
|
||||
KEY='rfb_KEY_HERE'
|
||||
# health
|
||||
curl -sk --noproxy '*' --resolve api.[REDACTED-NAME].loc.cc:443:127.0.0.1 https://api.[REDACTED-NAME].loc.cc/health
|
||||
# HTTP/2 + chat
|
||||
curl -skI --resolve api.[REDACTED-NAME].loc.cc:443:127.0.0.1 https://api.[REDACTED-NAME].loc.cc/health 2>&1 | head -1
|
||||
time curl -sk -H \"Authorization: Bearer \${KEY}\" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{\"model\":\"rb-902d95ce37cee7204c89\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}],\"max_tokens\":3}' \
|
||||
https://api.[REDACTED-NAME].loc.cc/v1/chat/completions
|
||||
"
|
||||
```
|
||||
|
||||
## VPS paths
|
||||
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `/opt/apioid-echo/releases/current/` | Active release (symlink) |
|
||||
| `/opt/apioid-echo/releases/<TS>/` | Immutable release directory |
|
||||
| `/etc/apioid-echo/gateway.env` | Env (keys, MODEL_ALIAS_SECRET), chmod 600 |
|
||||
| `/etc/nginx/sites-available/[REDACTED-NAME]` | Nginx config |
|
||||
| `/var/backups/apioid-echo/` | Pre-deploy backups |
|
||||
| `/etc/systemd/system/apioid-echo-gateway.service` | systemd unit |
|
||||
Reference in New Issue
Block a user