使用 Docker 安装 Gitea
安装 Gitea
创建目录:
rm -rf /data/gitea
mkdir -p /data/gitea/{data,config}
sudo chown 1000:1000 /data/gitea/config/ /data/gitea/data/
使用 docker 命令安装:
docker run -d --name=gitea -p 2222:2222 -p 3000:3000 -v /data/gitea/data:/var/lib/gitea -v /data/gitea/config:/etc/gitea --restart=always gitea/gitea:1.23.7-rootless
注意:
- Gitea 的 SSH 服务端口,默认为 2222 。具体可以参考 gitea/gitea:1.23-rootless dockerfile
- Gitea 的 HTTP 服务端口,默认为 3000
启动成功之后,可以通过 http://ip:3000/ 访问。
配置反向代理
使用 nginx 配置:
server {
listen 80;
listen [::]:80;
server_name gitea.chensoul.cc;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name gitea.chensoul.cc;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/chensoul.cc.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000;
client_max_body_size 512M;
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
注意:
- ssl 证书需要提前生成,并放到指定目录,我这里是 /etc/nginx/ssl
执行 nginx -s reload
之后,需要在 dns 服务商配置域名解析,gitea.chensoul.cc 指定到你的 VPS IP。
然后,就可以通过域名访问 https://gitea.chensoul.cc/ 了
SSH 容器直通
如果主机的 22 端口已被使用,使用 Docker
安装 Gitea
时只能把容器的 2222 端口映射到主机的其它端口(如:2222),这是没有任何问题的。但是以 SSH
方式 clone
项目时,URL
长这样
ssh://[email protected]:2222:username/project.git
如果我们想要类似以下这样的 URL
时就需要把 Gitea
容器的和主机共享 22 端口
[email protected]:username/project.git