deployment files and script
This commit is contained in:
1 parent
6c5140fb92
commit
3b2b3507e5
4 files changed
+141
No files matched your search
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
host="root@hub.hordelab.com"
|
||||||
|
|
||||||
|
run_nginx() {
|
||||||
|
echo "Uploading nginx config file"
|
||||||
|
scp template/nginx.conf "$host:/etc/nginx/sites-enabled/hub.hordelab.com"
|
||||||
|
ssh "$host" -t "
|
||||||
|
nginx -s reload
|
||||||
|
|
||||||
|
# full process is currently broken
|
||||||
|
#certbot --keep -d hub.hordelab.com
|
||||||
|
|
||||||
|
# uncomment if needed
|
||||||
|
#certbot certonly -d hub.hordelab.com
|
||||||
|
|
||||||
|
#nginx -s reload
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
run_service() {
|
||||||
|
echo "Uploading Launcher and Service"
|
||||||
|
scp template/launch-hub.sh "$host:/var/horde/launch-hub.sh"
|
||||||
|
scp template/systemd.service "$host:/etc/systemd/system/horde-hub.service"
|
||||||
|
ssh "$host" -t "
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable horde-hub.service
|
||||||
|
systemctl start horde-hub.service
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
run_update() {
|
||||||
|
echo "Updating repository"
|
||||||
|
ssh "$host" -t "
|
||||||
|
source ~/.nvm/nvm.sh #?
|
||||||
|
|
||||||
|
cd /var/horde/hub
|
||||||
|
git pull
|
||||||
|
make install
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
restart_service() {
|
||||||
|
echo "Restarting horde-hub.service"
|
||||||
|
ssh "$host" -t "systemctl restart horde-hub.service"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Determine which stages to run
|
||||||
|
stages=()
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
# Interactive prompts when no arguments are given
|
||||||
|
read -p "Run nginx deployment? [Y/n] " choice
|
||||||
|
if [[ -z "$choice" || "$choice" =~ ^[Yy]$ ]]; then
|
||||||
|
stages+=(nginx)
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "Run service deployment? [Y/n] " choice
|
||||||
|
if [[ -z "$choice" || "$choice" =~ ^[Yy]$ ]]; then
|
||||||
|
stages+=(service)
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "Run update (git pull + make install)? [Y/n] " choice
|
||||||
|
if [[ -z "$choice" || "$choice" =~ ^[Yy]$ ]]; then
|
||||||
|
stages+=(update)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Parse arguments
|
||||||
|
for arg in "$@"; do
|
||||||
|
case "$arg" in
|
||||||
|
nginx|service|update)
|
||||||
|
stages+=("$arg")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $arg" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Execute selected stages
|
||||||
|
for stage in "${stages[@]}"; do
|
||||||
|
case "$stage" in
|
||||||
|
nginx) run_nginx ;;
|
||||||
|
service) run_service ;;
|
||||||
|
update) run_update ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Final stage: always restart the systemd service at the end
|
||||||
|
restart_service
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
export OPENAI_API_KEY=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
|
||||||
|
export REPLICATE_API_KEY=r8_J1lnphqfZNUtK9CIh81SE4uHWWKJuvR3tr8S2
|
||||||
|
export OPENROUTER_API_KEY=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
|
||||||
|
export HORDE_DATA_DIR=/var/horde/hub-data
|
||||||
|
|
||||||
|
echo Starting Horde Server
|
||||||
|
/var/horde/hub/.venv/bin/python3 /var/horde/hub/backend/src/app.py
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# Only describe the http server, certbot will install https for us
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name hub.hordelab.com;
|
||||||
|
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
|
server_name hub.hordelab.com;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/hub.hordelab.com/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/hub.hordelab.com/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://localhost:5000;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
|
||||||
|
# Websocket support
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Horde Hub
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=always
|
||||||
|
ExecStart=bash /var/horde/launch-hub.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
Reference in new issue
Block a user