最近闲来无事打开了腾讯云的官网,发现2核2g的云服务器一年只需要六十多,和好友拼团还能多加一个月,果断购买。
但是买完之后发现不知道用来干嘛,思来想去后还是决定部署一个gitea。步骤如下:
安装必备软件
sudo apt install sqlite3 git
下载及部署gitea
可访问官方地址来下载最新版的gitea。
wget -O gieta https://dl.gitea.com/gitea/1.23.5/gitea-1.23.5-linux-amd64
为gitea创建专门的用户:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git git
处理目录
sudo mv /tmp/gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
创建服务
gitea官方提供了systemd unit的文件,所以我们只需要下载并且复制到对应的目录即可。
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
sudo systemctl enable --now gitea
此时,可以通过ip:3000来访问gitea。
配置ssl证书
此时虽然搭建完成,但是还不够,如果访问会提示不安全的网站。为了安全性,就需要配置证书和反向代理。ssl证书可以在各大云服务提供商申请,我的服务器是腾讯云的,就在腾讯云申请好了。申请好后去dns服务提供商那按照要求添加域名解析记录。
安装nginx:sudo apt install nginx
nginx配置
在 Nginx 的配置目录中创建一个新的配置文件, /etc/nginx/sites-available/gitea
,并添加以下内容:
server {
listen 80;
server_name git.hecuihua.top;
# 强制将所有 HTTP 请求重定向到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name git.hecuihua.top;
# SSL 配置
ssl_certificate /etc/gitea/ssl/git.hecuihua.top_bundle.crt;
ssl_certificate_key /etc/gitea/ssl/git.hecuihua.top.key;
# 提高安全性
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 反向代理配置
location / {
proxy_pass http://115.159.214.224:3000;
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;
}
# 其他优化配置
client_max_body_size 100M; # 允许上传大文件
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
同时配置/etc/gitea/app.ini
配置server字段的部分。
此时,完成了gitea的配置。