118 lines
2.6 KiB
Bash
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"
|