Files
Project_Velocity/infrastructure/desineuron_ingress/install_linux_velocity_site.sh
2026-04-20 01:43:39 +05:30

68 lines
2.9 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SERVICE_FILE=/etc/systemd/system/desineuron-velocity-site-update.service
TIMER_FILE=/etc/systemd/system/desineuron-velocity-site-update.timer
ENV_FILE=/etc/desineuron-velocity-site.env
SCRIPT_PATH=/usr/local/bin/deploy_velocity_site.sh
NGINX_PATH=/etc/nginx/conf.d/velocity.desineuron.in.conf
WEBHOOK_SERVICE_FILE=/etc/systemd/system/desineuron-velocity-gitea-webhook.service
WEBHOOK_SCRIPT_PATH=/usr/local/bin/gitea_velocity_webhook_receiver.py
WEBHOOK_ENV_FILE=/etc/desineuron-velocity-webhook.env
sudo apt-get update
sudo apt-get install -y git curl rsync nginx
if ! command -v node >/dev/null 2>&1; then
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
fi
sudo install -m 0755 /tmp/desineuron_ingress/deploy_velocity_site.sh "$SCRIPT_PATH"
sudo install -m 0755 /tmp/desineuron_ingress/gitea_velocity_webhook_receiver.py "$WEBHOOK_SCRIPT_PATH"
sudo install -m 0644 /tmp/desineuron_ingress/desineuron-velocity-site-update.service "$SERVICE_FILE"
sudo install -m 0644 /tmp/desineuron_ingress/desineuron-velocity-site-update.timer "$TIMER_FILE"
sudo install -m 0644 /tmp/desineuron_ingress/desineuron-velocity-gitea-webhook.service "$WEBHOOK_SERVICE_FILE"
sudo install -m 0644 /tmp/desineuron_ingress/velocity.desineuron.in.nginx.conf "$NGINX_PATH"
sudo tee "$ENV_FILE" >/dev/null <<'EOF'
APP_ROOT=/opt/desineuron-velocity-site
REPO_URL=https://git.desineuron.in/sagnik/Project_Velocity.git
BRANCH=main
REPO_DIR=/opt/desineuron-velocity-site/repo
APP_DIR=/opt/desineuron-velocity-site/repo/app
BUILD_DIR=/opt/desineuron-velocity-site/repo/app/dist
SERVE_ROOT=/var/www/velocity.desineuron.in
CURRENT_DIR=/var/www/velocity.desineuron.in/current
STATE_DIR=/opt/desineuron-velocity-site/state
REVISION_FILE=/opt/desineuron-velocity-site/state/current_revision.txt
BACKEND_SERVICE=desineuron-velocity-backend
BACKEND_HEALTH_URL=http://127.0.0.1:8001/health
BACKEND_HEALTH_TIMEOUT_S=60
RUN_BACKEND_RESTART=1
RUN_DB_MIGRATIONS=0
EOF
sudo chmod 0640 "$ENV_FILE"
if [ ! -f "$WEBHOOK_ENV_FILE" ]; then
sudo tee "$WEBHOOK_ENV_FILE" >/dev/null <<'EOF'
WEBHOOK_BIND_HOST=127.0.0.1
WEBHOOK_BIND_PORT=8788
WEBHOOK_PATH=/hooks/gitea/project-velocity
GITEA_EXPECTED_REF=refs/heads/main
GITEA_REPO_FULL_NAME=sagnik/Project_Velocity
DEPLOY_LOCK_FILE=/tmp/desineuron-velocity-deploy.lock
DEPLOY_COMMAND=/usr/local/bin/deploy_velocity_site.sh
GITEA_WEBHOOK_SECRET=replace-me
EOF
fi
sudo chmod 0600 "$WEBHOOK_ENV_FILE"
sudo mkdir -p /var/www/velocity.desineuron.in /opt/desineuron-velocity-site/state
sudo nginx -t
sudo systemctl daemon-reload
sudo systemctl enable --now desineuron-velocity-site-update.timer
sudo systemctl enable --now desineuron-velocity-gitea-webhook.service
sudo systemctl start desineuron-velocity-site-update.service
sudo systemctl reload nginx
sudo systemctl --no-pager --full status desineuron-velocity-site-update.service desineuron-velocity-site-update.timer desineuron-velocity-gitea-webhook.service