自架文件管理系統:MinDoc 部署教學
如果你是一個 IT 團隊,常常需要管理技術文件、API 文件或是團隊知識庫,那麼一個好用的文件管理系統絕對是必備工具。今天要介紹的 MinDoc,就是專為這種需求設計的開源方案。
為什麼選擇 MinDoc?
市面上的文件系統百百種,但 MinDoc 有幾個特點讓它特別適合中小型團隊:
1. 部署超級簡單:支援 Docker,安裝過程不用 10 分鐘
2. 維護成本低:預設使用 SQLite,不需要另外架資料庫
3. 功能剛剛好:文件管理、權限控制、搜尋功能都有,但不會太複雜
4. 完全免費:開源專案,商用水準的功能免費使用
MinDoc 最早叫做 SmartWiki,當初是用 PHP 的 Laravel 框架開發的。但 PHP 環境對一般使用者來說不太好架,所以後來改用 Golang 重寫,部署就變得非常簡單了。
開始安裝:環境準備
這次我們用 Docker 來部署,適合用在群暉(Synology)或其他支援 Docker 的 Linux 環境。
首先 SSH 進去你的伺服器,建立資料夾結構:
建立 mindoc 目錄和子目錄
mkdir p /volume1/docker/mindoc/{conf,database,runtime,static,uploads,views}
進入目錄
cd /volume1/docker/mindoc
安裝選項一:Docker CLI 直接執行
如果你比較熟悉指令列,用這個方式最快:
docker run d \
restart always \
name mindoc \
p 8185:8181 \
v $(pwd)/conf:/mindoc/conf \
v $(pwd)/static:/mindoc/static \
v $(pwd)/views:/mindoc/views \
v $(pwd)/uploads:/mindoc/uploads \
v $(pwd)/runtime:/mindoc/runtime \
v $(pwd)/database:/mindoc/database \
e MINDOC_RUN_MODE=prod \
e MINDOC_DB_ADAPTER=sqlite3 \
e MINDOC_DB_DATABASE=./database/mindoc.db \
e MINDOC_CACHE=true \
e MINDOC_CACHE_PROVIDER=file \
e MINDOC_ENABLE_EXPORT=false \
e MINDOC_BASE_URL= \
e MINDOC_CDN_IMG_URL= \
e MINDOC_CDN_CSS_URL= \
e MINDOC_CDN_JS_URL= \
registry.cnhangzhou.aliyuncs.com/mindocorg/mindoc:v2.1
這裡簡單說明一下幾個重要的環境變數:
變數名稱 說明 範例值
MINDOC_RUN_MODE 執行模式,prod 為正式環境 prod
MINDOC_DB_ADAPTER 資料庫類型,可選 sqlite3 或 mysql sqlite3
MINDOC_DB_DATABASE 資料庫檔案位置 ./database/mindoc.db
MINDOC_BASE_URL 網站根路徑,如果有子目錄需求才需要設定 /mindoc
安裝選項二:Docker Compose(推薦)
如果想要後續管理比較方便,我更推薦用 dockercompose 的方式。先建立一個 dockercompose.yml 檔案:
version: "3"
services:
mindoc:
image: registry.cnhangzhou.aliyuncs.com/mindocorg/mindoc:v2.1
container_name: mindoc
privileged: false
restart: always
ports:
8185:8181
volumes:
./conf:/mindoc/conf
./static:/mindoc/static
./views:/mindoc/views
./uploads:/mindoc/uploads
./runtime:/mindoc/runtime
./database:/mindoc/database
environment:
MINDOC_RUN_MODE=prod
MINDOC_DB_ADAPTER=sqlite3
MINDOC_DB_DATABASE=./database/mindoc.db
MINDOC_CACHE=true
MINDOC_CACHE_PROVIDER=file
MINDOC_ENABLE_EXPORT=false
然後執行:
dockercompose up d
這樣就搞定了!
使用 MySQL 作為資料庫(進階)
如果你的團隊規模比較大,或者想要更好的效能,可以改用 MySQL。以下是修改的重點:
首先編輯 conf/app.conf,加入 MySQL 設定:
db_adapter = mysql
db_host = 你的資料庫主機IP
db_port = 3306
db_database = mindoc
db_username = 你的資料庫帳號
db_password = 你的資料庫密碼
要注意的是,如果要使用 MySQL,在 dockercompose 中要把環境變數改成:
environment:
MINDOC_DB_ADAPTER=mysql
MINDOC_DB_HOST=db伺服器IP
MINDOC_DB_PORT=3306
MINDOC_DB_DATABASE=mindoc
MINDOC_DB_USERNAME=帳號
MINDOC_DB_PASSWORD=密碼
另外記得建立一個空的資料庫,編碼用 utf8mb4。
啟動後的初始設定
等容器啟動完成(約需 30~60 秒),打開瀏覽器訪問:
http://你的伺服器IP:8185
你應該會看到登入畫面。預設的帳號密碼是:
登入後會看到一個示範項目,點擊「編輯」就可以開始寫文件了。功能相當直觀,如果遇到問題,官方文件網址是:https://mindoc.com.cn/docs/mindochelp
實際使用體驗
用了一陣子下來,MinDoc 幾個功能我覺得很實用:
1. Markdown 支援:可以直接用 Markdown 寫文件,程式碼區塊、表格都能正常顯示
2. 權限管理:可以設定哪些人只能看、哪些人可以編輯
3. 全文搜尋:要找文件內容直接搜尋關鍵字就找到了
4. 版本控制:文件編輯歷史都有記錄,萬一改壞了可以救回來
5. 匯出功能:可以把文件匯出成 PDF(但預設關閉,要設定 MINDOC_ENABLE_EXPORT=true)
可能的問題與解決
Q: 容器啟動後無法訪問?
A: 檢查防火牆是否有開放 8185 port,以及 Docker 映射是否正確。
Q: 檔案上傳失敗?
A: 確認 uploads 目錄的權限,Docker 容器內的程式需要寫入權限。
Q: 想改密碼怎麼辦?
A: 登入後到「個人設置」裡面可以修改密碼,記得改成強度較高的密碼。
總結
MinDoc 是一個輕量級但功能齊全的文件管理系統,特別適合:
如果你只是想要一個簡單的地方存放技術文件,不需要太複雜的功能,MinDoc 絕對是首選。安裝時間不超過 10 分鐘,而且後續幾乎不需要維護。
官方 GitHub:https://github.com/mindocorg/mindoc
官方網站:https://mindoc.com.cn/

發佈留言