這是一個使用 PocketBase 作為後端的相簿網站專案。
docker-compose up -d在 Docker 環境下使用新版 PocketBase 時,可能無法直接透過網頁介面建立第一組管理員帳號。 請務必使用以下指令直接在容器內建立:
# 語法:docker exec -it <container_name> /pb/pocketbase superuser create <email> <password>
docker exec -it baby-album-backend /pb/pocketbase superuser create [email protected] 1234567890注意:請將
[email protected]與1234567890替換為您實際想要使用的帳號與密碼 (密碼至少需 8 碼)。
建立完成後,您即可前往網站管理後台 /_/ (例如 http://localhost:8090/_/ 或您的網域名稱) 進行登入。
本專案使用 expose 而非 ports 是因為 demo network 中有 nginx reverse server 負責反向代理。如果您需要直接從宿主機訪問 PocketBase 的端口,可以修改 docker-compose.yaml 中的配置:
將 expose: 替換為 ports:,並設定為 "${PB_PORT}:${PB_PORT}"。
- pb_data/: 存放 SQLite 資料庫與使用者上傳的檔案 (已加入 gitignore,請勿刪除)。
- pb_public/: 存放前端靜態網頁檔案 (HTML/CSS/JS)。
- pb_migrations/: 存放資料庫結構變更紀錄 (用於版本控管)。
- .env: 環境變數設定 (包含 PocketBase 版本與 Port 設定)。
本專案已加入兩層圖片最佳化:
-
後端自動壓縮原始上傳圖
pb_hooks/image_optimize.pb.js會在以下 Collection 新增/更新圖片後,使用 ImageMagick 壓縮原始檔:photos.imageabout_content.imagesite_settings.photo
預設會將圖片最大邊縮到
1920px、移除 EXIF metadata,並調整 JPG/WebP/PNG 品質。這可以節省pb_data/storage的儲存空間。 -
前台使用 PocketBase thumb 參數 前台顯示圖片時會使用
?thumb=...輸出較小圖,例如相簿列表使用500x500、背景圖使用1600x0、About 頭像使用250x250,降低前台流量與載入時間。
若是既有 Docker image,請重新 build 才會安裝 ImageMagick:
docker-compose up -d --build