feat/applely #4

Merged
daniel.w merged 3 commits from feat/applely into main 2026-08-31 05:30:23 +00:00
7 changed files with 19 additions and 13 deletions
Showing only changes of commit 1fd6362b3e - Show all commits

View File

@ -51,6 +51,12 @@ vi.mock("../data/DataContext", () => {
return { product_id: "p1", state: "empty", pains: [], scenarios: [], audiences: [], exclusions: [], updated_at: 1 };
},
async suggestWatchTerms() { return []; },
async getRadarSchedule() {
return { hours: [6], timezone: "Asia/Taipei" };
},
async saveRadarSchedule(hours: number[]) {
return { hours: [...hours].sort((a, b) => a - b), timezone: "Asia/Taipei" };
},
},
};
return { useRepos: () => repos };

View File

@ -1,6 +1,6 @@
# Harbor Desk Production Deployment
This deployment targets Ubuntu amd64 at `daniel@10.0.0.33` and serves
This deployment targets Ubuntu amd64 at `daniel@10.0.0.9` and serves
`threads-tool.30cm.net`.
## Layout
@ -29,7 +29,7 @@ only for the validated activate, rollback, and status scripts.
Edit external provider credentials after bootstrap:
```bash
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.33
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.9
sudoedit /etc/harbor/harbor.env
```
@ -113,14 +113,14 @@ sudo /opt/harbor/deploy/remote/enable-tls.sh
```
Ensure Cloudflare Tunnel, router forwarding, or split DNS sends origin traffic
to `10.0.0.33`. A public Cloudflare DNS record alone cannot reach a private IP.
to `10.0.0.9`. A public Cloudflare DNS record alone cannot reach a private IP.
## Monitoring
All monitoring ports bind to localhost. Open Grafana through an SSH tunnel:
```bash
ssh -i ~/.ssh/harbor_deploy -L 3000:127.0.0.1:3000 daniel@10.0.0.33
ssh -i ~/.ssh/harbor_deploy -L 3000:127.0.0.1:3000 daniel@10.0.0.9
```
Then browse `http://127.0.0.1:3000`. The generated Grafana password is in
@ -129,9 +129,9 @@ Then browse `http://127.0.0.1:3000`. The generated Grafana password is in
Useful commands:
```bash
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.33 \
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.9 \
sudo /opt/harbor/deploy/remote/status.sh
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.33 \
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.9 \
journalctl -u 'harbor-gateway@*' -f
```
@ -162,8 +162,8 @@ by default but is a no-op until you set `RESTIC_REPOSITORY` and
configured, verify with:
```bash
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.33 \
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.9 \
sudo systemctl start harbor-offsite-backup.service
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.33 \
ssh -i ~/.ssh/harbor_deploy daniel@10.0.0.9 \
sudo journalctl -u harbor-offsite-backup.service -n 50
```

View File

@ -2,7 +2,7 @@
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.33}
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.9}
SSH_KEY=${DEPLOY_SSH_KEY:-$HOME/.ssh/harbor_deploy}
REMOTE_STAGE=/tmp/harbor-prod-bootstrap
ssh_opts=(-i "$SSH_KEY" -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes)

View File

@ -11,7 +11,7 @@ upstream harbor_minio {
server {
listen 80;
listen [::]:80;
server_name threads-tool.30cm.net 10.0.0.33;
server_name threads-tool.30cm.net 10.0.0.9;
root /opt/harbor/current/web;
index index.html;

View File

@ -2,7 +2,7 @@
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.33}
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.9}
SSH_KEY=${DEPLOY_SSH_KEY:-$HOME/.ssh/harbor_deploy}
artifact=${1:-}

View File

@ -2,7 +2,7 @@
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.33}
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.9}
SSH_KEY=${DEPLOY_SSH_KEY:-$HOME/.ssh/harbor_deploy}
ssh_opts=(-i "$SSH_KEY" -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.33}
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.9}
SSH_KEY=${DEPLOY_SSH_KEY:-$HOME/.ssh/harbor_deploy}
ssh -i "$SSH_KEY" -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes "$TARGET" sudo /opt/harbor/deploy/remote/rollback.sh