# 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="" 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` 不通。