From 1c802463c79b4c90eaa4de90df86da3df87e2540 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Fri, 26 Jun 2026 15:25:32 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EC=A0=95:=20Gitea=20Actions=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20-=20master=20?= =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EC=B9=98=20=EB=B0=8F=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 브랜치: main → master 변경 - 프로젝트 경로: src/ 제거 (루트 수준) - SSH 에이전트 활용 (webfactory/ssh-agent) 배포 자동화 준비 완료 Co-Authored-By: Claude Haiku 4.5 --- .gitea/workflows/deploy.yml | 6 +-- SERVER_SETUP.sh | 77 +++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 SERVER_SETUP.sh diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 877ede5..09d822f 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,7 +3,7 @@ name: TaxBaik CI/CD on: push: branches: - - main + - master jobs: build-and-deploy: @@ -25,10 +25,10 @@ jobs: run: dotnet build TaxBaik.sln -c Release --no-restore - name: Publish Web - run: dotnet publish src/TaxBaik.Web/ -c Release -o ./publish/web + run: dotnet publish TaxBaik.Web/ -c Release -o ./publish/web - name: Publish Admin - run: dotnet publish src/TaxBaik.Admin/ -c Release -o ./publish/admin + run: dotnet publish TaxBaik.Admin/ -c Release -o ./publish/admin - name: Setup SSH key uses: webfactory/ssh-agent@v0.9.0 diff --git a/SERVER_SETUP.sh b/SERVER_SETUP.sh new file mode 100644 index 0000000..273b623 --- /dev/null +++ b/SERVER_SETUP.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# TaxBaik Server Setup Script +# Run on Ubuntu 26.04 server as root or with sudo + +set -e + +echo "===== TaxBaik Server Setup =====" + +# Colors for output +GREEN='\033[0;32m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Configuration +DEPLOY_USER="kjh2064" +DB_NAME="taxbaikdb" +DB_USER="taxbaik" +DB_PASSWORD="${DB_PASSWORD:-$(openssl rand -base64 12)}" # Use env var or generate +DEPLOY_DIR="/home/$DEPLOY_USER" + +echo -e "${BLUE}1. Installing .NET 8 Runtime${NC}" +sudo apt-get update +sudo apt-get install -y dotnet-runtime-8.0 aspnetcore-runtime-8.0 + +echo -e "${BLUE}2. Installing PostgreSQL 18${NC}" +sudo apt-get install -y postgresql postgresql-contrib + +echo -e "${BLUE}3. Creating database and user${NC}" +sudo -u postgres psql << EOF +CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD'; +CREATE DATABASE $DB_NAME OWNER $DB_USER; +GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER; +EOF + +echo -e "${BLUE}4. Creating deployment directories${NC}" +sudo -u $DEPLOY_USER mkdir -p $DEPLOY_DIR/deployments +sudo -u $DEPLOY_USER mkdir -p $DEPLOY_DIR/taxbaik_active +sudo -u $DEPLOY_USER mkdir -p $DEPLOY_DIR/taxbaik_admin_active + +echo -e "${BLUE}5. Installing systemd service files${NC}" +sudo cp deploy/taxbaik.service /etc/systemd/system/ +sudo cp deploy/taxbaik-admin.service /etc/systemd/system/ + +# Update environment variables in service files +sudo sed -i "s/YOUR_SECURE_PASSWORD_HERE/$DB_PASSWORD/g" /etc/systemd/system/taxbaik.service +sudo sed -i "s/YOUR_SECURE_PASSWORD_HERE/$DB_PASSWORD/g" /etc/systemd/system/taxbaik-admin.service + +echo -e "${BLUE}6. Configuring Nginx${NC}" +sudo mkdir -p /etc/nginx/conf.d +sudo cp deploy/nginx-taxbaik-locations.conf /etc/nginx/conf.d/taxbaik.conf +sudo nginx -t +sudo systemctl reload nginx + +echo -e "${BLUE}7. Enabling services${NC}" +sudo systemctl daemon-reload +sudo systemctl enable taxbaik taxbaik-admin +sudo systemctl enable postgresql + +echo -e "${GREEN}===== Setup Complete =====" +echo "" +echo "Database credentials:" +echo " Host: localhost" +echo " Database: $DB_NAME" +echo " User: $DB_USER" +echo " Password: $DB_PASSWORD" +echo "" +echo "Next steps:" +echo " 1. Copy the first deployment to ~/deployments/taxbaik_TIMESTAMP/" +echo " 2. Create symlinks:" +echo " ln -s ~/deployments/taxbaik_TIMESTAMP ~/taxbaik_active" +echo " ln -s ~/deployments/taxbaik_admin_TIMESTAMP ~/taxbaik_admin_active" +echo " 3. Start services:" +echo " sudo systemctl start taxbaik taxbaik-admin" +echo " 4. Verify:" +echo " sudo systemctl status taxbaik taxbaik-admin" +echo " curl http://127.0.0.1:5001/taxbaik" +echo " curl http://127.0.0.1:5002/taxbaik/admin/login"