svnWebUI是一款图形化管理Subversion的配置得工具, 虽说现在已进入git的时代, 但svn依然有不少使用场景, 比如公司内的文档管理与共享, svn的概念比git的少很多, 非常适合非程序员使用.
但众所周知svn的Linux服务端软件即Subversion的用户和权限配置全部依靠手写配置文件完成, 非常繁琐且不便, 已有的几款图像界面软件已经非常古老, 安装麻烦而且依赖环境非常古老, 比如csvn还使用python2作为运行环境.
Windows上倒是有不错的svn服务端软件即VisualSVN, 但一来Windows服务器少之又少, 第二VisualSVN没有web界面, 每次配置需要开启远程桌面, 安全性不高.
经历几次失败的图形界面配置后, 萌生了写一个现代svn服务端管理软件, 让svn的服务端管理有gitea一般的轻松体验的想法.
本项目是基于solon的java项目, 数据库使用h2, 因此服务器上不需要安装任何数据库, 同时也兼容使用mysql
本地运行本软件,请先安装Subversion,并使用svn:\\协议进行checkout。
使用docker版则无需安装任何其他软件,使用http:\\协议进行checkout。
Giehub:https://github.com/cym1102/svnWebUI
演示地址: http://svn.nginxwebui.cn:6060
用户名: admin
密码: admin
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
在服务管理器中停止并禁用VisualSVN相关服务
配置JAVA环境变量
JAVA_HOME : JDK安装目录
Path : JDK安装目录\bin
重启电脑
2.下载最新版发行包jar
Linux: mkdir /home/svnWebUI/
wget -O /home/svnWebUI/svnWebUI.jar https://gitee.com/cym1102/svnWebUI/releases/download/1.8.7/svnWebUI-1.8.7.jar
Windows: 直接使用浏览器下载 https://gitee.com/cym1102/svnWebUI/releases/download/1.8.7/svnWebUI-1.8.7.jar 到 D:/home/svnWebUI/svnWebUI.jar
有新版本只需要修改路径中的版本即可
3.启动程序
Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/svnWebUI/svnWebUI.jar --server.port=6060 > /dev/null &
Windows: java -jar -Dfile.encoding=UTF-8 D:/home/svnWebUI/svnWebUI.jar --server.port=6060
参数说明(都是非必填)
--server.port 占用端口, 默认以6060端口启动
--project.home 项目配置文件目录,存放仓库文件, 数据库文件等, 默认为/home/svnWebUI/
--database.type=mysql 使用其他数据库,不填为使用本地h2数据库
--database.url=jdbc:mysql://ip:port/dbname 数据库url
--database.username=root 数据库用户
--database.password=pass 数据库密码
注意命令最后加一个&号, 表示项目后台运行
本项目制作了docker镜像, 支持 x86_64/arm64 平台,同时包含subversion apache2和svnWebUI在内, 与jar版不同的是docker版支持使用http协议访问svn
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
或者国内源
docker run -itd -v /home/svnWebUI:/home/svnWebUI -e BOOT_OPTIONS="--server.port=6060" --privileged=true -p 6060:6060 -p 3690:3690 registry.cn-hangzhou.aliyuncs.com/cym19871102/svnwebui:latest
注意:
需要映射6060端口与3690端口, 6060为web网页端口, 3690为svn默认端口.
容器需要映射路径/home/svnWebUI:/home/svnWebUI, 此路径下存放项目所有数据文件, 包括数据库, 配置文件, 日志等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份.
-e BOOT_OPTIONS可以填写和jar启动一样的参数
使用maven编译打包
mvn clean package
使用docker构建镜像
docker build -t svnwebui:latest .
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 -Dfile.encoding=UTF-8 /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, 十分方便
选择对应的用户对仓库进行授权, 可以授权到某个目录
选择对应的小组对仓库进行授权, 可以授权到某个目录
用户管理, 可添加和编辑用户, 用户分两种, 管理员和普通用户, 普通用户只能看到自己的信息, 管理员可管理整个平台的信息
小组管理, 可添加和编辑小组
如果忘记了登录密码,可按如下教程找回密码
1.停止svnWebUI
pkill java
2.使用找回密码参数运行svnWebUI.jar
java -jar svnWebUI.jar --project.home=/home/svnWebUI/ --project.findPass=true
--project.home 为项目文件所在目录
--project.findPass 为是否打印用户名密码
运行成功后即可打印出全部用户名密码
(另一款UI界面SVN SvnAdminV2.0):https://github.com/witersen/SvnAdminV2.0
没法导入现有库,怎么操作?