#!/bin/bash # Gitea 初始化脚本 - 在服务器上运行 echo "==========================================" echo " Gitea 一键初始化脚本" echo "==========================================" # 配置 ADMIN_USER="gch3n" ADMIN_EMAIL="admin@gch3n.online" ADMIN_PASS="Gch3n@2026!" SERVER_IP="49.235.172.252" # 获取 CSRF token echo "[1/4] 获取安装令牌..." CSRF_TOKEN=$(curl -s -c /tmp/gitea_cookies.txt http://localhost:8080/install | grep -o 'name="_csrf" value="[^"]*"' | sed 's/.*value="\([^"]*\)".*/\1/') if [ -z "$CSRF_TOKEN" ]; then echo "错误: 无法获取 CSRF token" exit 1 fi echo "[2/4] 提交安装表单..." curl -s -b /tmp/gitea_cookies.txt \ -X POST http://localhost:8080/install \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "_csrf=$CSRF_TOKEN" \ -d "db_type=SQLite3" \ -d "db_path=/data/gitea/gitea.db" \ -d "app_name=gch3n+Git" \ -d "repo_root_path=/data/git/gitea-repositories" \ -d "lfs_root_path=/data/gitea/lfs" \ -d "run_user=git" \ -d "domain=$SERVER_IP" \ -d "ssh_port=2222" \ -d "http_port=3000" \ -d "app_url=http://$SERVER_IP:8080/" \ -d "log_root_path=/data/gitea/log" \ -d "enable_federated_avatar=on" \ -d "default_allow_create_organization=on" \ -d "default_enable_timetracking=on" \ -d "no_reply_address=noreply.localhost" \ -d "admin_name=$ADMIN_USER" \ -d "admin_passwd=$ADMIN_PASS" \ -d "admin_confirm_passwd=$ADMIN_PASS" \ -d "admin_email=$ADMIN_EMAIL" \ -L > /tmp/gitea_install.log 2>&1 # 检查安装结果 if [ -f ~/gch3n-infra/data/gitea/gitea.db ]; then echo "[3/4] ✓ 数据库创建成功" else echo "[3/4] ✗ 数据库创建失败" cat /tmp/gitea_install.log exit 1 fi # 测试登录 echo "[4/4] 测试登录..." LOGIN_RESULT=$(curl -s -o /dev/null -w "%{http_code}" \ -X POST http://localhost:8080/user/login \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "user_name=$ADMIN_USER" \ -d "password=$ADMIN_PASS") if [ "$LOGIN_RESULT" = "302" ]; then echo "✓ 登录成功" else echo "✗ 登录失败 (HTTP $LOGIN_RESULT)" fi echo "" echo "==========================================" echo " Gitea 初始化完成!" echo "==========================================" echo "" echo "访问地址: http://$SERVER_IP:8080" echo "管理员: $ADMIN_USER" echo "密码: $ADMIN_PASS" echo "" echo "建议立即登录并修改密码"