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"