2.8 KiB
2.8 KiB
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,共用 bridgenocodb_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
二、操作
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 是清空某表所有記錄的範例,要點:
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);NPM 掛了noco.timmy.edu.kg不通。