Floci Az¶
Floci Az(又稱 floci-az)係一套以 Docker 容器形式發佈嘅自助託管服務,主要針對 Oracle Cloud Infrastructure(OCI)嘅運作環境而設計。條目名「Az」可以理解為 Availability Zone,亦有人將佢解釋為「Automation Zone」,代表 Floci 生態系統中負責喺雲端區域內提供持續服務嘅輕量組件。Floci Az 使用 floci/floci-az:latest 映像檔,透過 Docker Compose 管理,適合個人開發者、小型團隊,以及需要將 AI 服務私有化部署嘅機構。
Overview¶
Floci Az 嘅核心定位係一個「邊緣服務層」,位於用戶端應用程式與大型語言模型(LLM)之間。佢可以統一處理 API 請求、執行存取控制、記錄使用量,並提供快取功能以降低模型供應商嘅 API 成本。同 litellm 相似,Floci Az 支援多模型供應商嘅統一介面;但 Floci Az 更著重喺 Oracle Cloud 上嘅單一實例部署,並同 Cloudflare 網絡整合,以獲得穩定嘅對外連線。
「Az」亦有「可用區域」嘅意思,表示服務設計上具備高可用性特質。透過 Oracle Cloud 嘅免費方案(Always Free Tier),用戶可以低成本運行 Floci Az。容器內嘅資料會持久化儲存喺 Docker volume floci-az-data,確保容器重啟後設定同日誌依然保留。
Architecture¶
Floci Az 採用單一容器架構,配合外部 Docker network cf_network 同其他服務連接。
主要組件:
- floci-az 容器:執行 Floci Az 主程式,負責 API 處理、資料儲存及後台任務。
- cf_network:一個預先建立嘅 Docker bridge network,通常由 Cloudflare Tunnel 或其他反向代理容器建立。Floci Az 會以靜態 IP
172.21.0.84接入,令其他容器可以透過固定地址存取。 - floci-az-data volume:掛載到
/app/data,保存應用程式數據。
呢種架構適合配合 Cloudflare Tunnel 使用:外部流量先經 Cloudflare 進入反向代理,再轉發至 Floci Az。Oracle Cloud 實例只需要開放必要嘅端口,甚至可以用 Private Subnet 配合 Cloudflare 連接,減少暴露攻擊面。
Deployment¶
前置條件¶
- Oracle Cloud 帳戶及已建立嘅 Compute Instance(建議使用 Ubuntu 22.04 LTS 或 Oracle Linux 8)。
- 已安裝 Docker Engine 同 Docker Compose Plugin。
- 已建立外部網絡
cf_network:
docker network create cf_network
- (可選)已部署 Cloudflare Tunnel,並設定好
cf_network。
部署步驟¶
- 建立專案目錄:
mkdir ~/floci-az && cd ~/floci-az
- 建立
docker-compose.yml,內容如下:
services:
floci-az:
image: floci/floci-az:latest
restart: unless-stopped
networks:
cf_network:
ipv4_address: 172.21.0.84
environment:
TZ: Asia/Hong_Kong
volumes:
- floci-az-data:/app/data
networks:
cf_network:
external: true
volumes:
floci-az-data:
- 啟動服務:
docker compose up -d
- 檢查狀態:
docker compose ps
docker logs -f floci-az
部署後,Floci Az 會以 172.21.0.84 喺 cf_network 內提供服務。若需要畀外部存取,請喺 Cloudflare Tunnel 設定中將流量轉發至 http://172.21.0.84 嘅對應端口。
Configuration¶
Floci Az 支援透過環境變數同資料目錄內嘅設定檔進行配置。最基本嘅環境變數係 TZ,用嚟設定容器時區;示例中使用 Asia/Hong_Kong,確保日誌同排程工作跟隨香港時間。
網絡設定¶
cf_network 必須係 external network,因為 Floci Az 需要同其他服務(例如 Cloudflare Tunnel、Nginx Proxy Manager)共享網絡。靜態 IP 172.21.0.84 避免容器重啟後 IP 改變,簡化反向代理設定。如果實際子網唔同,需要根據現有網絡範圍調整 IP。
資料持久化¶
/app/data 係 Floci Az 嘅數據目錄,存放包括:
- 設定檔(例如
config.yaml、floci.toml) - 日誌檔
- SQLite 或其他嵌入式資料庫
- 快取資料
用戶可以直接編輯數據卷內嘅設定檔,然後重啟容器:
docker compose restart floci-az
如需備份,可以用 tar 打包 volume,或者直接備份 Oracle Cloud 嘅 block volume snapshot。
Operations¶
日常管理¶
- 查看日誌:
docker compose logs -f floci-az - 重新啟動:
docker compose restart floci-az - 停止服務:
docker compose down(保留 volume) - 徹底重置:
docker compose down -v(刪除 volume,謹慎使用)
更新¶
Floci Az 使用 latest 標籤,更新步驟:
docker compose pull
docker compose up -d
建議喺更新前備份 /app/data,因為新版本可能進行資料庫遷移。
健康檢查¶
容器本身未包含 healthcheck 指令,但用戶可以喺 compose 檔案加入自訂 healthcheck,例如:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
亦可以使用 Oracle Cloud Monitoring 監察實例 CPU、記憶體及磁碟用量。
FAQ¶
Floci Az 係咪免費?¶
Floci Az 本身係開放原始碼專案,可以喺任何 Docker 主機免費運行。Oracle Cloud Always Free Tier 提供 ARM 或 AMD 微執行個體,適合低流量用途。
點解需要 cf_network?¶
因為 Floci Az 要同其他容器(如 Cloudflare Tunnel)通訊。建立外部網絡可以令容器之間用固定 IP 互連,避免使用 Docker 預設網絡而產生 IP 變動。
可以唔用 Oracle Cloud 嗎?¶
可以。任何支援 Docker 嘅 Linux 主機都能執行,但 Floci Az 嘅設計同部署文件以 Oracle Cloud 為預設環境。
點解 TZ 要設為 Asia/Hong_Kong?¶
確保服務日誌、排程同時間戳都以香港時間顯示,方便本地維護。
如何連接 LLM?¶
Floci Az 提供 OpenAI 兼容介面。用戶可以喺設定檔填入模型供應商(例如 OpenAI、Anthropic、或透過 litellm 建構嘅聚合服務)嘅 API 金鑰,然後將應用程式指向 http://floci-az:port。
Related Links¶
- docker
- docker-compose
- litellm
- oracle-cloud
- cloudflare
- openai-api
- proxy
- Self-Hosted
Source¶
Coverage auto (container scan)