最近闲来无事打开了腾讯云的官网,发现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的配置。