62 lines
2.8 KiB
Markdown
62 lines
2.8 KiB
Markdown
# CT124 NocoDB(自架 Airtable 替代)— 操作手冊
|
||
|
||
> 主機:CT124(192.168.42.124,Ubuntu 24.04 LXC) | 位置:`/opt/noco`
|
||
> 用途:在關聯式資料庫上加一層「會動的試算表」UI + REST API,做內部工具 / no-code 應用
|
||
|
||
---
|
||
|
||
## 一、基本資訊
|
||
|
||
- 版本:**NocoDB 2026.06.1**(`nocodb/nocodb:latest`,2026-06-22 更新)+ **PostgreSQL 16**(後端 metadata/資料庫)
|
||
- 容器:`noco_app`、`noco_postgres`(皆 `restart: unless-stopped`,共用 bridge `nocodb_net`)
|
||
- 埠:`28080 → 8080`(Web/API)、`5432 → 5432`(Postgres,**對 LAN 開放**)
|
||
- 對外:**NPM 反代 `https://noco.timmy.edu.kg`**(注意:此服務用 `timmy.edu.kg`,非其他服務的 `lotimmy.com`)
|
||
- 後台:`https://noco.timmy.edu.kg/dashboard` | 官方:https://github.com/nocodb/nocodb
|
||
|
||
## 二、操作
|
||
|
||
```bash
|
||
cd /opt/noco
|
||
docker compose up -d # 啟動 / 套用設定(Makefile 亦含 make up/down/restart/logs/ps)
|
||
docker compose pull && docker compose up -d # 更新 image
|
||
docker compose logs -f noco
|
||
docker compose ps
|
||
```
|
||
|
||
## 三、存取
|
||
|
||
- Web/後台:`https://noco.timmy.edu.kg/dashboard`(內網 `http://192.168.42.124:28080`)
|
||
- Super Admin:`admin@example.com` / `Admin@1234`(由 compose 的 `NC_ADMIN_EMAIL`/`NC_ADMIN_PASSWORD` 帶入)
|
||
- DB 連線(內網):`pg://noco_postgres:5432?u=root&p=password&d=d1`
|
||
|
||
## 四、資料
|
||
|
||
| 項目 | 位置 |
|
||
|---|---|
|
||
| Postgres 資料(metadata + 表) | `./pgdata`(→ 容器 `/var/lib/postgresql/data`,目前 ~65M) |
|
||
| NocoDB app data | `./nocodb`(→ `/usr/app/data`) |
|
||
|
||
備份:停服務或低流量時 `cp -a pgdata nocodb <備份目的地>`;或對 `noco_postgres` 跑 `pg_dump`。
|
||
|
||
## 五、REST API(v2)
|
||
|
||
`noco_clear_table.sh` 是清空某表所有記錄的範例,要點:
|
||
|
||
```bash
|
||
TOKEN="<API token,後台 → Account → Tokens 產生>"
|
||
TABLE_ID="<表 ID>"
|
||
BASE="https://noco.timmy.edu.kg/api/v2/tables/$TABLE_ID"
|
||
|
||
# 列記錄
|
||
curl -s -H "xc-token: $TOKEN" "$BASE/records?limit=1000" | jq '.list'
|
||
# 批次刪除(帶 [{"Id":..}] 陣列)
|
||
IDS=$(curl -s -H "xc-token: $TOKEN" "$BASE/records?limit=1000" | jq -c '[.list[]|{Id:.Id}]')
|
||
curl -X DELETE "$BASE/records" -H "xc-token: $TOKEN" -H "Content-Type: application/json" --data "$IDS"
|
||
```
|
||
|
||
## 六、注意事項(安全)
|
||
|
||
- **Postgres `:5432` 對 LAN 全開**,帳密 `root` / `password`(寫在 compose)。任何能連到 CT124 的人可直連 DB。要鎖:把 compose 的 `ports: 5432:5432` 拿掉(NocoDB 走內網即可),或改強密碼。
|
||
- **Super Admin 是弱/預設帳密**(`admin@example.com` / `Admin@1234`,明文在 compose)。建議登入後改密碼,並移除 compose 裡的 `NC_ADMIN_*`(那只在首次建立時需要)。
|
||
- 對外 443 經 NPM → 依賴 docker daemon 與 NPM 容器(見 [`CT124_故障復原_20260529.md`](CT124_故障復原_20260529.md));NPM 掛了 `noco.timmy.edu.kg` 不通。
|