#!/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