基礎設施

FileCodeBox 文件快遞櫃

輕量級匿名文件分享服務 — 像拿快遞一樣取文件。Docker 一鍵部署,口令取件,過期自動刪除。

使用的技術

DockerFileCodeBoxNginx Proxy ManagerCloudflareDDNSReverse ProxyUbuntu 24.04

背景

在家中或是外面公共環境中需要一個輕量的文件分享工具,讓不同設備之間、或與他人之間快速傳遞檔案。 FileCodeBox 是一個開源的「文件快遞櫃」— 上傳檔案後生成取件碼,對方輸入取件碼即可下載, 像拿快遞一樣簡單,無需登入註冊。

部署架構

訪問流程
用戶Cloudflare DNS公網 IP (DDNS)路由器端口轉發Nginx Proxy Manager (SSL)FileCodeBox :12345

Docker 部署

1. 一鍵啟動容器

docker run -d \
  --restart=always \
  -p 12345:12345 \
  -v /opt/FileCodeBox/:/app/data \
  --name filecodebox \
  lanol/filecodebox:latest

2. 配置 .env

容器啟動後,在 /opt/FileCodeBox/ 下建立.env 檔案,可自訂管理密碼、文件大小限制、上傳頻率等。

# /opt/FileCodeBox/.env
ADMIN_ADDRESS=admin
ADMIN_PASSWORD=你的密碼
FILE_SIZE_LIMIT=10          # MB
UPLOAD_COUNT=60             # 每分鐘上傳次數
DELETE_EXPIRE_FILES_INTERVAL=10  # 過期掃描間隔(分鐘)
STORAGE_ENGINE=filesystem

💡 密碼存在資料庫中(哈希存儲),修改 .env 後需重啟容器:docker restart filecodebox

外網訪問設定

與自我介紹網站共用同一套外網訪問架構:DDNS + Cloudflare + Nginx Proxy Manager。

1. Cloudflare DNS 設定

新增一筆 A 記錄(或 CNAME),子域名指向 DDNS 位址,開啟 Proxy(橘色雲朵)。

2. 路由器端口轉發

將外部 443/80 端口轉發到 Nginx Proxy Manager 所在的內網 IP。

3. Nginx Proxy Manager 新增 Proxy Host

Domainshare.你的域名
Schemehttp
Forward Hostname/IP172.17.0.1(Docker 網關)
Forward Port12345
SSL啟用 — 選 Request a new SSL Certificate
Force SSL✅ 開啟

主要功能

📤
匿名上傳
無需登入,拖拽或貼上即可上傳
🔑
口令取件
生成隨機取件碼,像拿快遞一樣取檔案
⏱️
過期控制
按天/小時/分鐘/次數設定有效期
🗑️
自動清理
過期檔案每 10 分鐘自動掃描刪除
🛡️
安全防護
錯誤次數限制 + IP 上傳頻率限制
🔧
管理後台
查看所有檔案、刪除、配置設定

常用指令

# 查看日誌(含初始密碼)
docker logs filecodebox

# 重啟服務
docker restart filecodebox

# 更新到最新版
docker stop filecodebox && docker rm filecodebox
docker pull lanol/filecodebox:latest
docker run -d --restart=always -p 12345:12345 \
  -v /opt/FileCodeBox/:/app/data \
  --name filecodebox lanol/filecodebox:latest