功能說明
svnWebUI是一款圖形化管理Subversion的配置得工具, 雖說現在已進入git的時代, 但svn依然有不少使用場景, 比如公司內的文檔管理與共享, svn的概念比git的少很多, 非常適合非程序員使用.
但衆所周知svn的Linux服務端軟件即Subversion的用戶和權限配置全部依靠手寫配置文件完成, 非常繁瑣且不便, 已有的幾款圖像界面軟件已經非常古老, 安裝麻煩而且依賴環境非常古老, 比如csvn還使用python2作爲運行環境.
Windows上倒是有不錯的svn服務端軟件即VisualSVN, 但一來Windows服務器少之又少, 第二VisualSVN沒有web界面, 每次配置需要開啓遠程桌面, 安全性不高.
經歷幾次失敗的圖形界面配置後, 萌生了寫一個現代svn服務端管理軟件, 讓svn的服務端管理有gitea的輕鬆體驗的想法.
技術說明
本項目是基於springBoot的web系統, 數據庫使用sqlite, 因此服務器上不需要安裝任何數據庫
使用本軟件前請先安裝Subversion
演示地址: http://svn.nginxwebui.cn:6060 用戶名: admin 密碼: admin
安裝說明
以Ubuntu操作系統爲例,
1.安裝java運行環境和Subversion
Ubuntu:
apt update apt install openjdk-11-jdk apt install subversion
Centos:
yum install java-11-openjdk yum install subversion
Windows:
下載JDK安裝包 https://www.oracle.com/java/technologies/downloads/ 下載VisualSVN https://www.visualsvn.com/server/download 配置JAVA運行環境 JAVA_HOME : JDK安裝目錄 Path : JDK安裝目錄\bin 重啓電腦
2.下載最新版發行包jar
Linux: wget -O /home/svnWebUI/svnWebUI.jar http://file.nginxwebui.cn/svnWebUI-1.1.0.jar Windows: 直接使用瀏覽器下載 http://file.nginxwebui.cn/svnWebUI-1.1.0.jar
有新版本只需要修改路徑中的版本即可
3.啓動程序
Linux: nohup java -jar -Xmx64m /home/svnWebUI/svnWebUI.jar --server.port=6060 --project.home=/home/svnWebUI/ > /dev/null & Windows: java -jar -Xmx64m D:/home/svnWebUI/svnWebUI.jar --server.port=6060 --project.home=D:/home/svnWebUI/
參數說明(都是非必填)
-Xmx64m 最大分配內存數
--server.port 佔用端口, 默認以6060端口啓動
--project.home 項目配置文件目錄,存放數據庫文件,證書文件,日誌等, 默認爲/home/nginxWebUI/
注意命令最後加一個&號, 表示項目後臺運行
docker安裝說明
本項目製作了docker鏡像, 支持 x86_64/arm64/arm v7 平臺,同時包含Subversion和svnWebUI在內, 一體化管理與運行Subversion.
1.安裝docker容器環境
Ubuntu:
apt install docker.io
Centos:
yum install docker
2.拉取鏡像:
docker pull cym1102/svnwebui:latest
3.啓動容器:
docker run -itd -v /home/svnWebUI:/home/svnWebUI -e BOOT_OPTIONS="--server.port=6060" --privileged=true -p 6060:6060 -p 3690:3690 cym1102/svnwebui:latest
注意:
-
需要映射6060端口與3690端口, 6060爲web網頁端口, 3690爲svn默認端口.
-
容器需要映射路徑/home/svnWebUI:/home/svnWebUI, 此路徑下存放項目所有數據文件, 包括數據庫, 配置文件, 日誌等, 升級鏡像時, 此目錄可保證項目數據不丟失. 請注意備份.
-
-e BOOT_OPTIONS 參數可填充java啓動參數, 可以靠此項參數修改端口號
--server.port 佔用端口, 不填默認以6060端口啓動
- 日誌默認存放在/home/svnWebUI/log/svnWebUI.log
編譯說明
使用maven編譯打包
mvn clean package
使用docker構建鏡像
docker build -t svnwebui:latest .
添加開機啓動
- 編輯service配置
vim /etc/systemd/system/svnwebui.service
[Unit] Description=SvnWebUI After=syslog.target After=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/home/svnWebUI ExecStart=/usr/bin/java -jar /home/svnWebUI/svnWebUI.jar Restart=always [Install] WantedBy=multi-user.target
之後執行
systemctl daemon-reload systemctl enable svnwebui.service systemctl start svnwebui.service
使用說明
打開 http://ip:6060 進入主頁
首次打開頁面, 需要註冊管理員賬戶
註冊完畢後, 進入登錄頁面進行登錄
個人信息, 可在這個頁面查看當前用戶的擁有倉庫, 並可修改用戶密碼.
服務管理, 可在這個頁面查看Subversion服務的開啓情況, 並進行停止和重啓.
倉庫管理, 可添加倉庫及修改倉庫, 添加倉庫後即可獲得倉庫的svn地址, 在Subversion服務開啓的情況下可直接checkout, 十分方便
選擇對應的用戶對倉庫進行授權, 可以授權到某個目錄
選擇對應的小組對倉庫進行授權, 可以授權到某個目錄
用戶管理, 可添加和編輯用戶, 用戶分兩種, 管理員和普通用戶, 普通用戶只能看到自己的信息, 管理員可管理整個平臺的信息
小組管理, 可添加和編輯小組
找回密碼
如果忘記了登錄密碼,可按如下教程找回密碼
安裝sqlite3命令(Docker鏡像已經安裝好了)
apt install sqlite3
讀取sqlite.db文件
sqlite3 /home/svnWebUI/sqlite.db
查找user表
select * from user;
退出sqlite3
.quit