diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index b4bd915..5591bf8 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -15,6 +15,8 @@ env: DEPLOY_USER: kjh2064 SERVICE_NAME: quantengine DOTNET_VERSION: '10.0.x' + QUANTENGINE_DB_NAME: quantenginedb + QUANTENGINE_DB_USER: quantengine_app TELEGRAM_BOT_TOKEN_DEFAULT: "8734507814:AAFyacLMai8GB4K-hQ_Nd3t3D01A-H1ZdV0" TELEGRAM_CHAT_ID_DEFAULT: "-5460205872" @@ -97,6 +99,14 @@ jobs: chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -H ${{ env.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null || true + - name: Prepare QuantEngine DB Env + run: | + mkdir -p ./deploy + cat > ./deploy/quantengine.env <(new DbConnectionFactory(connectionString)); builder.Services.AddSingleton(); builder.Services.AddScoped(); diff --git a/src/dotnet/QuantEngine.Web/appsettings.json b/src/dotnet/QuantEngine.Web/appsettings.json index b1a203e..59bdd44 100644 --- a/src/dotnet/QuantEngine.Web/appsettings.json +++ b/src/dotnet/QuantEngine.Web/appsettings.json @@ -7,7 +7,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "Host=127.0.0.1;Database=giteadb;Username=gitea;Password=;Search Path=quantengine;" + "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=;Search Path=quantengine;" }, "AdminSettings": { "Username": "admin", diff --git a/tools/setup_host.sh b/tools/setup_host.sh index d4ac476..d4e5ad3 100644 --- a/tools/setup_host.sh +++ b/tools/setup_host.sh @@ -6,6 +6,7 @@ set -e NGINX_CONF="/etc/nginx/sites-available/gitea-ip.conf" SERVICE_FILE="/etc/systemd/system/quantengine.service" +APP_ENV_FILE="/home/kjh2064/.config/quantengine.env" echo "=========================================" echo "Configuring Host Infrastructure Services" @@ -61,6 +62,7 @@ User=kjh2064 Environment=ASPNETCORE_ENVIRONMENT=Production Environment=ASPNETCORE_URLS=http://127.0.0.1:5000 Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false +EnvironmentFile=-/home/kjh2064/.config/quantengine.env [Install] WantedBy=multi-user.target diff --git a/tools/setup_quantengine_postgresql_db.sh b/tools/setup_quantengine_postgresql_db.sh new file mode 100644 index 0000000..5cbfc48 --- /dev/null +++ b/tools/setup_quantengine_postgresql_db.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# Create the QuantEngine database and application role on the local PostgreSQL instance. + +set -euo pipefail + +DB_NAME="${DB_NAME:-quantenginedb}" +DB_USER="${DB_USER:-quantengine_app}" +DB_PASSWORD="${DB_PASSWORD:-CHANGE_ME}" +DB_HOST="${DB_HOST:-127.0.0.1}" +DB_PORT="${DB_PORT:-5432}" +ADMIN_DB="${ADMIN_DB:-postgres}" +SCHEMA_NAME="${SCHEMA_NAME:-quantengine}" + +echo "Creating database and role for ${DB_NAME}..." +sudo -u postgres psql -h "${DB_HOST}" -p "${DB_PORT}" -d "${ADMIN_DB}" -v ON_ERROR_STOP=1 < "${APP_ENV_FILE}" <