sciagent code + Gitea Actions CI/CD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# ============================================================================
|
||||
# 04 — Install Gitea 1.23 + NSSM service (port 3000, SQLite)
|
||||
# Run as Administrator. Pattern từ NamGroup skill cicd-gitea-windows.
|
||||
# ============================================================================
|
||||
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
$GiteaDir = 'C:\Gitea'
|
||||
$DataDir = 'C:\Gitea\data'
|
||||
$LogsDir = 'C:\Gitea\log'
|
||||
$NSSMDir = 'C:\Tools\nssm'
|
||||
|
||||
# --- DOWNLOAD GITEA ---------------------------------------------------------
|
||||
Write-Host "1/5 — Download Gitea 1.23.7" -ForegroundColor Cyan
|
||||
New-Item -ItemType Directory -Force -Path $GiteaDir, $DataDir, $LogsDir | Out-Null
|
||||
|
||||
$giteaExe = "$GiteaDir\gitea.exe"
|
||||
if (-not (Test-Path $giteaExe)) {
|
||||
$url = 'https://dl.gitea.com/gitea/1.23.7/gitea-1.23.7-windows-4.0-amd64.exe'
|
||||
Invoke-WebRequest -Uri $url -OutFile $giteaExe
|
||||
Write-Host " [OK] gitea.exe downloaded" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [OK] gitea.exe exists" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# --- DOWNLOAD NSSM ----------------------------------------------------------
|
||||
Write-Host "2/5 — Download NSSM" -ForegroundColor Cyan
|
||||
New-Item -ItemType Directory -Force -Path $NSSMDir | Out-Null
|
||||
|
||||
$nssmExe = "$NSSMDir\nssm.exe"
|
||||
if (-not (Test-Path $nssmExe)) {
|
||||
$zip = "$env:TEMP\nssm.zip"
|
||||
Invoke-WebRequest -Uri 'https://nssm.cc/release/nssm-2.24.zip' -OutFile $zip
|
||||
Expand-Archive -Path $zip -DestinationPath "$env:TEMP\nssm-extract" -Force
|
||||
Copy-Item "$env:TEMP\nssm-extract\nssm-2.24\win64\nssm.exe" $nssmExe -Force
|
||||
Remove-Item $zip, "$env:TEMP\nssm-extract" -Recurse -Force
|
||||
Write-Host " [OK] nssm.exe ready" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [OK] nssm.exe exists" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# --- CONFIG FILE -------------------------------------------------------------
|
||||
Write-Host "3/5 — Create app.ini" -ForegroundColor Cyan
|
||||
$appIni = "$GiteaDir\custom\conf\app.ini"
|
||||
New-Item -ItemType Directory -Force -Path (Split-Path $appIni) | Out-Null
|
||||
|
||||
if (-not (Test-Path $appIni)) {
|
||||
@'
|
||||
APP_NAME = DYD Git (Gitea)
|
||||
RUN_USER = LOCAL SYSTEM
|
||||
RUN_MODE = prod
|
||||
|
||||
[server]
|
||||
PROTOCOL = http
|
||||
DOMAIN = 103.124.94.58
|
||||
HTTP_ADDR = 127.0.0.1
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = http://103.124.94.58:3000/
|
||||
DISABLE_SSH = true
|
||||
OFFLINE_MODE = false
|
||||
|
||||
[database]
|
||||
DB_TYPE = sqlite3
|
||||
PATH = C:/Gitea/data/gitea.db
|
||||
LOG_SQL = false
|
||||
|
||||
[repository]
|
||||
ROOT = C:/Gitea/data/gitea-repositories
|
||||
|
||||
[log]
|
||||
MODE = file
|
||||
LEVEL = info
|
||||
ROOT_PATH = C:/Gitea/log
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = false
|
||||
; SECRET_KEY sẽ được tự sinh khi chạy lần đầu qua web installer
|
||||
|
||||
[service]
|
||||
DISABLE_REGISTRATION = true
|
||||
REQUIRE_SIGNIN_VIEW = true
|
||||
ENABLE_NOTIFY_MAIL = false
|
||||
REGISTER_EMAIL_CONFIRM = false
|
||||
|
||||
[picture]
|
||||
DISABLE_GRAVATAR = true
|
||||
|
||||
[actions]
|
||||
ENABLED = true
|
||||
'@ | Set-Content -Path $appIni -Encoding UTF8
|
||||
Write-Host " [OK] app.ini created" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [OK] app.ini exists (skip)" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# --- INSTALL SERVICE --------------------------------------------------------
|
||||
Write-Host "4/5 — Install NSSM service 'gitea'" -ForegroundColor Cyan
|
||||
$existingService = Get-Service -Name 'gitea' -ErrorAction SilentlyContinue
|
||||
if (-not $existingService) {
|
||||
& $nssmExe install gitea $giteaExe web --config "$appIni" --work-path "$GiteaDir"
|
||||
& $nssmExe set gitea AppStdout "$LogsDir\stdout.log"
|
||||
& $nssmExe set gitea AppStderr "$LogsDir\stderr.log"
|
||||
& $nssmExe set gitea AppRotateFiles 1
|
||||
& $nssmExe set gitea AppRotateBytes 10485760
|
||||
& $nssmExe set gitea DisplayName 'Gitea Service (DYD)'
|
||||
& $nssmExe set gitea Description 'Gitea self-hosted git + Actions for DYD project'
|
||||
& $nssmExe set gitea Start SERVICE_AUTO_START
|
||||
Write-Host " [OK] Service installed" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [OK] Service 'gitea' exists" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# --- START -------------------------------------------------------------------
|
||||
Write-Host "5/5 — Start Gitea service" -ForegroundColor Cyan
|
||||
Start-Service gitea
|
||||
Start-Sleep 5
|
||||
|
||||
$svc = Get-Service gitea
|
||||
Write-Host " Service status: $($svc.Status)" -ForegroundColor $(if ($svc.Status -eq 'Running') {'Green'} else {'Red'})
|
||||
|
||||
# --- Test HTTP ---------------------------------------------------------------
|
||||
try {
|
||||
$r = Invoke-WebRequest 'http://127.0.0.1:3000' -UseBasicParsing -TimeoutSec 10
|
||||
Write-Host " Gitea web responds: HTTP $($r.StatusCode)" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host " [WARN] Gitea chưa response, check log: $LogsDir" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# --- SUMMARY -----------------------------------------------------------------
|
||||
Write-Host ""
|
||||
Write-Host "=========================================================" -ForegroundColor Green
|
||||
Write-Host " Gitea installed" -ForegroundColor Green
|
||||
Write-Host "=========================================================" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "Next steps MANUAL:" -ForegroundColor Yellow
|
||||
Write-Host " 1. Mở browser: http://103.124.94.58:3000"
|
||||
Write-Host " 2. Complete installer wizard (SQLite OK, admin account)"
|
||||
Write-Host " 3. Sau khi setup: Site Admin → Disable Registration"
|
||||
Write-Host " 4. Tạo repo 'DYD' và push code"
|
||||
Write-Host " 5. Site Admin → Actions → Runner Management → Create Runner"
|
||||
Write-Host " → copy registration token → chạy 05-install-act-runner.ps1"
|
||||
Write-Host ""
|
||||
Write-Host "Config file: $appIni"
|
||||
Write-Host "Logs: $LogsDir"
|
||||
Reference in New Issue
Block a user