89 lines
2.5 KiB
Bash
89 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# Host Setup Script for Quant Engine (.NET 10 & Nginx)
|
|
# Must be executed with sudo privileges
|
|
|
|
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"
|
|
echo "========================================="
|
|
|
|
# 1. Update Nginx Site Config
|
|
if [ -f "$NGINX_CONF" ]; then
|
|
if ! grep -q "location /quant/" "$NGINX_CONF"; then
|
|
echo "Injecting /quant/ proxy pass block into Nginx..."
|
|
python3 -c "
|
|
p = '$NGINX_CONF'
|
|
c = open(p).read()
|
|
sub = ''' # Blazor Web App (Quant Engine)
|
|
location /quant/ {
|
|
proxy_pass http://127.0.0.1:5000/;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade \$http_upgrade;
|
|
proxy_set_header Connection \"Upgrade\";
|
|
proxy_set_header Host \$host;
|
|
proxy_cache_bypass \$http_upgrade;
|
|
proxy_set_header X-Real-IP \$remote_addr;
|
|
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto \$scheme;
|
|
}
|
|
|
|
'''
|
|
c = c.replace('location / {', sub + ' location / {')
|
|
open(p, 'w').write(c)
|
|
"
|
|
else
|
|
echo "Nginx /quant/ block already exists."
|
|
fi
|
|
else
|
|
echo "ERROR: Nginx conf not found at $NGINX_CONF"
|
|
exit 1
|
|
fi
|
|
|
|
# 2. Write Systemd Service File
|
|
echo "Writing systemd service file..."
|
|
cat > "$SERVICE_FILE" << 'EOF'
|
|
[Unit]
|
|
Description=Quant Engine Blazor Admin Web App (.NET 10)
|
|
After=network.target
|
|
|
|
[Service]
|
|
WorkingDirectory=/home/kjh2064/quantengine_active
|
|
ExecStart=/usr/bin/dotnet /home/kjh2064/quantengine_active/QuantEngine.Web.dll
|
|
Restart=always
|
|
RestartSec=10
|
|
KillSignal=SIGINT
|
|
SyslogIdentifier=quantengine
|
|
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
|
|
EOF
|
|
|
|
# 3. Reload Daemons
|
|
echo "Reloading systemd daemon..."
|
|
systemctl daemon-reload
|
|
systemctl enable quantengine
|
|
|
|
# 4. Run Deploy Script to populate active directory
|
|
echo "Executing deployment script..."
|
|
chmod +x /home/kjh2064/tmp/deploy.sh
|
|
bash /home/kjh2064/tmp/deploy.sh
|
|
|
|
# 5. Reload Nginx
|
|
echo "Testing Nginx config and reloading..."
|
|
nginx -t
|
|
systemctl reload nginx
|
|
|
|
echo "========================================="
|
|
echo "Host Configuration Successful!"
|
|
echo "========================================="
|