安装gitea
sudo pacman -S gitea
使用 MariaDB/MySQL数据库
- 安装数据库
sudo pacman -S mariadb
- 初始化数据库
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
- 启动数据库
sudo systemctl start mariadb
sudo syetemctl enable mariadb
- 安全设置
sudo mysql_secure_installation
- 创建数据库
mysql -u root -p
mysql> CREATE DATABASE `gitea` DEFAULT CHARACTER SET `utf8mb4` COLLATE `utf8mb4_unicode_ci`;
mysql> CREATE USER `gitea`@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON `gitea`.* TO `gitea`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> \q
- 尝试使用新用户登录数据库
mysql -u gitea -p -D gitea
初步配置gitea
- 复制配置文件
cp /etc/gitea/app.example.ini /etc/gitea/app.ini
- 修改配置文件
#/etc/gitea/app.ini
DB_TYPE = mysql
HOST = 127.0.0.1:3306 ; or /run/mysqld/mysqld.sock
NAME = gitea
USER = gitea
PASSWD = password
- 启动gitea
systemctl start gitea
systemctl enable gitea
- 测试登录
打开浏览器输入
http://ip:3000
- 在页面完成初始化操作
| 项目 | 推荐值 | 说明 |
| — | — | — |
| 站点名称 | gitea | 你自己的站点名称 |
| 仓库根目录 | /data/gitea(一个最好是存储盘的路径,最好热备份) | 你的仓库存储目录 |
| 服务器域名 | 这里推荐localhost 或者你的域名 | 你的服务器域名 |
| ssh服务端口 | 22 | 你的ssh服务端口 |
| 端口 | 3000 | 你的gitea服务器端口 |
| 日志目录 | /var/log/gitea | 你的日志目录 |
设置完毕后点击安装等待安装完成
进阶设置 通过https访问
- 设置监听范围为本机
# /etc/gitea/app.ini
[server]
PROTOCOL = unix
DOMAIN = git.domain.tld
ROOT_URL = https://git.domain.tld
HTTP_ADDR = /run/gitea/gitea.socket
LOCAL_ROOT_URL =
[session]
COOKIE_SECURE = true
- 添加nginx反向代理配置文件
# /etc/nginx/conf.d/gitea.conf
server {
listen 80;
listen [::]:80;
server_name gitea.lengyefenghan.top;
# Enforce HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name gitea.lengyefenghan.top;
# Path to the root of your installation
ssl_certificate /etc/ssl/nginx/cert.pem;
ssl_certificate_key /etc/ssl/nginx/key.pem;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
gzip off;
proxy_redirect off;
proxy_buffering off;
client_max_body_size 256M;
proxy_pass http://unix:/run/gitea/gitea.socket;
}
}
- 重启nginx
systemctl restart nginx
设置gitea的数据目录
- 创建数据目录
mkdir /mnt/data/gitea
- 设置目录用户和组
chown -R gitea:gitea /mnt/data/gitea
- 修改servier文件
#/etc/systemd/system/gitea.service.d/data-directory.conf
[Service]
ReadWriteDirectories=/mnt/data/gitea
- 重启gitea
systemctl daemon-reload
systemctl restart gitea
开启ssh与ssh加固
# /etc/ssh/sshd_config
# Port 22 #注释掉port端口 改为listem ip+端口的形式
ListenAddress 0.0.0.0:22 #监听所有ipv4断22端口
ListenAddress 192.168.1.11:5022 #内网单独设置一个端口 只允许192.168.1.11的5022端口其中192.168.1.11为服务器的内网ip地址
# 强制使用公钥验证
PasswordAuthentication no #关闭密码验证
# 开启PAM认证
UsePAM yes
# 进制root用户登录
PermitRootLogin no
#添加允许gitea user登录 @host表示ip登录限制 也就是user只允许192.168.1.*的ip登录
AllowUsers gitea user@192.168.1.*
本站gitea
点我访问