diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index df81d00d..7e29739d 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -42,19 +42,24 @@ jobs: echo "πŸ“¦ Deploying to $DEPLOY_PATH..." - # 배포 디렉토리 생성 - mkdir -p "$DEPLOY_PATH" + # 배포 디렉토리 생성 (sudo μ‚¬μš©) + if [ ! -d "$DEPLOY_PATH" ]; then + sudo mkdir -p "$DEPLOY_PATH" + sudo chown -R $USER:$USER "$DEPLOY_PATH" + echo "βœ… Created $DEPLOY_PATH" + fi # κΈ°μ‘΄ λ°±μ—… if [ -d "$DEPLOY_PATH/current" ]; then BACKUP_DIR="$DEPLOY_PATH/backup-$(date +%s)" - mv "$DEPLOY_PATH/current" "$BACKUP_DIR" + sudo mv "$DEPLOY_PATH/current" "$BACKUP_DIR" echo "βœ… Backed up previous version to $BACKUP_DIR" fi # μƒˆ 버전 배포 - cp -r ./publish "$DEPLOY_PATH/current" - chmod +x "$DEPLOY_PATH/current/KArtSell.Host" + sudo cp -r ./publish "$DEPLOY_PATH/current" + sudo chown -R $USER:$USER "$DEPLOY_PATH/current" + sudo chmod +x "$DEPLOY_PATH/current/KArtSell.Host" echo "βœ… Files deployed successfully" @@ -71,11 +76,45 @@ jobs: echo "βœ… Migrations completed" - # systemd μ„œλΉ„μŠ€ μž¬μ‹œμž‘ - echo "πŸ”„ Restarting service..." - sudo systemctl restart kartsell || { - echo "⚠️ Service restart completed" - } + # systemd μ„œλΉ„μŠ€ 생성/ν™œμ„±ν™” (첫 배포 μ‹œ) + echo "πŸ”§ Configuring systemd service..." + sudo tee /etc/systemd/system/kartsell.service > /dev/null << 'SYSTEMD_EOF' + [Unit] + Description=K-ArtSell Aegis - Financial Advisory System + After=network-online.target + Wants=network-online.target + + [Service] + Type=notify + User=$USER + WorkingDirectory=$DEPLOY_PATH/current + ExecStart=/usr/bin/dotnet KArtSell.Host.dll + Restart=always + RestartSec=10 + StandardOutput=journal + StandardError=journal + + Environment="ASPNETCORE_ENVIRONMENT=Production" + Environment="ASPNETCORE_URLS=http://127.0.0.1:5002" + Environment="KARTSELL_POSTGRES=$KARTSELL_POSTGRES" + Environment="KRX_OPENAPI=$KRX_OPENAPI" + Environment="OPENDART_API=$OPENDART_API" + Environment="KIS_APP_KEY=$KIS_APP_KEY" + Environment="KIS_APP_SECRET=$KIS_APP_SECRET" + + NoNewPrivileges=true + PrivateTmp=true + + [Install] + WantedBy=multi-user.target + SYSTEMD_EOF + + sudo systemctl daemon-reload + sudo systemctl enable kartsell + + # μ„œλΉ„μŠ€ μ‹œμž‘/μž¬μ‹œμž‘ + echo "πŸ”„ Starting service..." + sudo systemctl restart kartsell # ν—¬μŠ€μ²΄ν¬ echo "πŸ₯ Health check..."