# 📦 Paket S3 — File Provisioning Jobseeker Agent

Semua file yang dibutuhkan mesin baru, siap upload ke S3 (atau hosting statis apa pun).
**Tidak ada rahasia di dalam paket ini** — kunci API/secret di-generate per mesin saat provisioning.

## 🌐 LIVE (sudah ter-upload & terverifikasi)

- **Bucket**: `s3-autoapply-public` (region `ap-southeast-1`)
- **Base URL**: `https://s3-autoapply-public.s3.ap-southeast-1.amazonaws.com/provision`
- **Status**: 29 file ter-upload, `--acl public-read`, checksum 29/29 cocok dengan `MANIFEST.sha256`
- **Pakai**: `SRC_BASE=https://s3-autoapply-public.s3.ap-southeast-1.amazonaws.com/provision bash jobseeker-platform.sh`

## Cara upload

```bash
# pakai aws CLI (di mesin kamu)
aws s3 cp /opt/data/s3-upload/ s3://<bucket>/ --recursive --acl public-read

# atau s3cmd
s3cmd sync /opt/data/s3-upload/ s3://<bucket>/ --acl-public
```

> Rekomendasi: gunakan prefix folder, mis. `s3://<bucket>/provision/` → base URL:
> `https://<bucket>.s3.<region>.amazonaws.com/provision` (atau CloudFront jika mau).

## Base URL (SRC_BASE) — cara mengalihkan dari mesin utama ke S3

| File | Cara alihkan |
|---|---|
| `jobseeker-platform.sh` | `SRC_BASE=https://<bucket>.s3.<region>.amazonaws.com/provision bash jobseeker-platform.sh` |
| `fix-platform-paths.sh` | sama: `SRC_BASE=... bash fix-platform-paths.sh` |
| `bootstrap-mesin.sh` | download dari S3 (bukan web root mesin utama); `BOOTSTRAP_BASE_URL` tetap untuk setup-mesin.sh |
| Dokumen PERINTAH/PANDUAN/INTEGRASI | ganti `https://hermes-3s1llz-6080.jkt3.sumopod.my.id` → `<S3_BASE>` (semua curl) |

## Verifikasi setelah upload

```bash
# contoh cek satu file
curl -sI https://<bucket>.s3.<region>.amazonaws.com/provision/bootstrap-mesin.sh | head -3
# verifikasi checksum vs MANIFEST.sha256
curl -s https://<bucket>.s3.<region>.amazonaws.com/provision/bootstrap-mesin.sh | sha256sum
```

## Isi paket (29 file)

- **Provisioning**: bootstrap-mesin.sh, jobseeker-platform.sh (termasuk setup **venv-cdp** + websocket-client), fix-platform-paths.sh, setup-mesin.sh (legacy), start-vnc.sh, cron-vnc-check.sh, vnc-watchdog.sh
- **Tooling mesin**: accounts.py, portal-check.py, scrape-jobs.py, check-quota.py, report-application.py, sync-profile.py, test_be_listener.py, vnc-token.py, vnc-ws-probe.py, agent-config.env.example
- **Skill**: jobseeker-agent-SKILL.md
- **Dokumen**: PERINTAH-AGEN-MESIN-BARU-TUI.md, PANDUAN-OPERATOR-NONTEKNIS.md, INTEGRASI-LENGKAP.md, PRD-JOBSEEKER-ALUR.md, PROMPT-FE-NUXT4.md, PROMPT-BE-GOLANG.md, **schema.sql** (DDL database + seed portals), hermes-nuxt-chat.zip, hermes-api-monitor.py, n8n-template-hermes-machine.json (legacy)
- **MANIFEST.sha256** — checksum semua file (verifikasi integritas)

## Catatan keamanan
- Paket ini publik-aman: tidak ada secret. `agent-config.env.example` hanya placeholder.
- Kalau bucket public-read, siapa pun bisa unduh — wajar untuk provisioning, tapi jangan pernah menaruh `.env` asli / `vnc-jwt-secret` / `API_SERVER_KEY` di sini.
