使用nginx搭建自己的Mercurial服务器

先安装nginx和mercurial,这里只把nginx当做前端的代理

mkdir /var/www/hgrep
cd /var/www/hgrep
hg init

创建一个mercurial项目,建立一个配置文件 vi /var/www/hgrep/hgweb.config 内容如下:

[web]
push_ssl = false
allow_push = *
encoding = "UTF-8"
[paths]
/hgrep = /var/www/hgrep
 
[hooks]
changegroup = hg update

这里建立了一个hook,当用户提交时自动更新

开启服务

hg serve -d -a localhost --webdir-conf hgweb.config

开始配置nginx:

http://trac.edgewall.org/browser/trunk/contrib/htpasswd.py下载该程序(点击此处直接下载),并拷贝至/etc/nginx目录,用于创建密码文件。

我是直接打开这个连接复制的,复制下来的文件是有行号的,先保存到/etc/nginx/htpasswd.py,再使用sed替换行号

sed -i 's/^[0-9]*//g' htpasswd.py

创建你的用户

cd /etc/nginx/
python htpasswd.py -c -b htpasswd user1 123
python htpasswd.py -b htpasswd user2 123

修改nginx的配置文件

vi /etc/nginx/sites-enabled/default

增加如下:

location /hgrep {
  root   html;
  index  index.html index.htm;
  proxy_pass  http://127.0.0.1:8000;
  auth_basic "Restricted";
  auth_basic_user_file htpasswd;
}

重启nginx服务器即可

在浏览器可以使用localhost/hirep访问

局域网内也能直接访问,需要clone的可以用 hg clone http://user1@host/hirep 此处host换成服务器IP

发表评论