Script-Collected/sh/git/init_gitea.sh

118 lines
2.6 KiB
Bash

#!/bin/bash
# Gitea 快速安装配置脚本
# 前提条件:
# 1. PostgreSQL 已安装,用户 postgres 密码 hsc1825713423
# 2. Redis 已安装,密码 hsc1825713423
# 3. 安装目录:/data/gitea
# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; then
echo "请使用root用户运行此脚本!"
exit 1
fi
# 配置参数
GITEA_VERSION="1.21.0"
GITEA_USER="gitea"
GITEA_HOME="/data/gitea"
GITEA_CONFIG="$GITEA_HOME/custom/conf/app.ini"
# 创建用户和目录结构
echo "创建Gitea用户和目录结构..."
useradd -d $GITEA_HOME -m -s /bin/bash $GITEA_USER
mkdir -p $GITEA_HOME/{custom,data,log}
chown -R $GITEA_USER:$GITEA_USER $GITEA_HOME
# 下载Gitea
echo "下载Gitea $GITEA_VERSION..."
wget -O /tmp/gitea https://dl.gitea.io/gitea/$GITEA_VERSION/gitea-$GITEA_VERSION-linux-amd64
chmod +x /tmp/gitea
mv /tmp/gitea $GITEA_HOME/gitea
chown $GITEA_USER:$GITEA_USER $GITEA_HOME/gitea
# 创建配置文件
echo "创建Gitea配置文件..."
cat > $GITEA_CONFIG <<EOF
[server]
APP_DATA_PATH = $GITEA_HOME/data
HTTP_PORT = 3000
ROOT_URL = http://$(hostname):3000/
DISABLE_SSH = false
SSH_PORT = 22
DOMAIN = $(hostname)
LFS_START_SERVER = true
OFFLINE_MODE = false
[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gitea
USER = gitea
PASSWD = hsc1825713423
SSL_MODE = disable
[redis]
ENABLED = true
HOST = 127.0.0.1:6379
PASSWORD = hsc1825713423
DB = 0
[session]
PROVIDER = redis
[cache]
ADAPTER = redis
[queue]
TYPE = redis
[log]
ROOT_PATH = $GITEA_HOME/log
MODE = file
LEVEL = Info
[security]
INSTALL_LOCK = true
SECRET_KEY = $(head -c 16 /dev/urandom | sha256sum | head -c 64)
EOF
# 设置权限
chown $GITEA_USER:$GITEA_USER $GITEA_CONFIG
chmod 640 $GITEA_CONFIG
# 创建systemd服务
echo "创建systemd服务..."
cat > /etc/systemd/system/gitea.service <<EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=postgresql.service
After=redis.service
[Service]
RestartSec=2s
Type=simple
User=$GITEA_USER
Group=$GITEA_USER
WorkingDirectory=$GITEA_HOME
ExecStart=$GITEA_HOME/gitea web --config $GITEA_CONFIG
Restart=always
Environment=USER=$GITEA_USER HOME=$GITEA_HOME
[Install]
WantedBy=multi-user.target
EOF
# 启用并启动服务
systemctl daemon-reload
systemctl enable --now gitea
# 输出信息
echo "Gitea 安装完成!"
echo "访问地址: http://$(hostname -I | awk '{print $1}'):3000"
echo "安装目录: $GITEA_HOME"
echo "配置文件: $GITEA_CONFIG"
echo "管理命令: systemctl [start|stop|restart|status] gitea"