forked from sagnik/Project_Velocity
Co-authored-by: Sagnik <sagnik7896@gmail.com> Reviewed-on: sagnik/Project_Velocity#31
68 lines
2.9 KiB
Bash
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
|