基礎設施
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
| Domain | share.你的域名 |
| Scheme | http |
| Forward Hostname/IP | 172.17.0.1(Docker 網關) |
| Forward Port | 12345 |
| 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