Skip to content

Commit f81f7fb

Browse files
authored
Refactor: migrate AdventureLog update to uv and GitHub release logic (#5318)
1 parent bcdeeaa commit f81f7fb

File tree

2 files changed

+42
-36
lines changed

2 files changed

+42
-36
lines changed

ct/adventurelog.sh

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,43 +27,51 @@ function update_script() {
2727
msg_error "No ${APP} Installation Found!"
2828
exit
2929
fi
30+
3031
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
31-
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
32+
if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
3233
msg_info "Stopping Services"
3334
systemctl stop adventurelog-backend
3435
systemctl stop adventurelog-frontend
3536
msg_ok "Services Stopped"
3637

37-
msg_info "Updating ${APP} to ${RELEASE}"
38-
mv /opt/adventurelog/ /opt/adventurelog-backup/
39-
curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
40-
$STD unzip /opt/v${RELEASE}.zip -d /opt/
41-
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
38+
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
39+
PYTHON_VERSION="3.12" setup_uv
40+
41+
msg_info "Updating ${APP} to v${RELEASE}"
42+
# Backend Migration
43+
cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
44+
cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
4245

43-
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
44-
mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
4546
cd /opt/adventurelog/backend/server
46-
$STD pip install --upgrade pip
47-
$STD pip install -r requirements.txt
48-
$STD python3 manage.py collectstatic --noinput
49-
$STD python3 manage.py migrate
47+
if [[ ! -x .venv/bin/python ]]; then
48+
$STD uv venv .venv
49+
$STD .venv/bin/python -m ensurepip --upgrade
50+
fi
5051

51-
mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
52+
$STD .venv/bin/python -m pip install --upgrade pip
53+
$STD .venv/bin/python -m pip install -r requirements.txt
54+
$STD .venv/bin/python -m manage collectstatic --noinput
55+
$STD .venv/bin/python -m manage migrate
56+
57+
# Frontend Migration
58+
cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
5259
cd /opt/adventurelog/frontend
53-
$STD pnpm install
54-
$STD pnpm run build
55-
echo "${RELEASE}" >/opt/${APP}_version.txt
60+
$STD pnpm i
61+
$STD pnpm build
5662
msg_ok "Updated ${APP}"
5763

5864
msg_info "Starting Services"
65+
systemctl daemon-reexec
5966
systemctl start adventurelog-backend
6067
systemctl start adventurelog-frontend
61-
msg_ok "Started Services"
68+
msg_ok "Services Started"
6269

6370
msg_info "Cleaning Up"
6471
rm -rf /opt/v${RELEASE}.zip
6572
rm -rf /opt/adventurelog-backup
6673
msg_ok "Cleaned"
74+
6775
msg_ok "Updated Successfully"
6876
else
6977
msg_ok "No update required. ${APP} is already at ${RELEASE}"

install/adventurelog-install.sh

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#!/usr/bin/env bash
22

33
# Copyright (c) 2021-2025 tteck
4-
# Author: tteck
5-
# Co-Author: MickLesk (Canbiz)
4+
# Author: MickLesk (CanbiZ)
65
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
76
# Source: https://github.com/seanmorley15/AdventureLog
87

@@ -18,13 +17,12 @@ msg_info "Installing Dependencies"
1817
$STD apt-get install -y \
1918
gdal-bin \
2019
libgdal-dev \
21-
git \
22-
python3-venv \
23-
python3-pip
20+
git
2421
msg_ok "Installed Dependencies"
2522

26-
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
27-
PG_VERSION="16" PG_MODULES="postgis" setup_postgresql
23+
PYTHON_VERSION="3.12" setup_uv
24+
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
25+
PG_VERSION="16" PG_MODULES="postgis" install_postgresql
2826

2927
msg_info "Set up PostgreSQL Database"
3028
DB_NAME="adventurelog_db"
@@ -46,15 +44,12 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
4644
} >>~/adventurelog.creds
4745
msg_ok "Set up PostgreSQL"
4846

47+
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
48+
4949
msg_info "Installing AdventureLog (Patience)"
5050
DJANGO_ADMIN_USER="djangoadmin"
5151
DJANGO_ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
5252
LOCAL_IP="$(hostname -I | awk '{print $1}')"
53-
cd /opt
54-
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
55-
curl -fsSL "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
56-
$STD unzip v${RELEASE}.zip
57-
mv AdventureLog-${RELEASE} /opt/adventurelog
5853
cat <<EOF >/opt/adventurelog/backend/server/.env
5954
PGHOST='localhost'
6055
PGDATABASE='${DB_NAME}'
@@ -79,11 +74,13 @@ DISABLE_REGISTRATION=False
7974
EOF
8075
cd /opt/adventurelog/backend/server
8176
mkdir -p /opt/adventurelog/backend/server/media
82-
$STD pip install --upgrade pip
83-
$STD pip install -r requirements.txt
84-
$STD python3 manage.py collectstatic --noinput
85-
$STD python3 manage.py migrate
86-
$STD python3 manage.py download-countries
77+
$STD uv venv /opt/adventurelog/backend/server/.venv
78+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
79+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
80+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
81+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
82+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
83+
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
8784
cat <<EOF >/opt/adventurelog/frontend/.env
8885
PUBLIC_SERVER_URL=http://$LOCAL_IP:8000
8986
BODY_SIZE_LIMIT=Infinity
@@ -96,7 +93,8 @@ echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
9693
msg_ok "Installed AdventureLog"
9794

9895
msg_info "Setting up Django Admin"
99-
$STD python3 /opt/adventurelog/backend/server/manage.py shell <<EOF
96+
cd /opt/adventurelog/backend/server
97+
$STD .venv/bin/python -m manage shell <<EOF
10098
from django.contrib.auth import get_user_model
10199
UserModel = get_user_model()
102100
user = UserModel.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS')
@@ -120,7 +118,7 @@ After=network.target postgresql.service
120118
121119
[Service]
122120
WorkingDirectory=/opt/adventurelog/backend/server
123-
ExecStart=python3 manage.py runserver 0.0.0.0:8000
121+
ExecStart=/opt/adventurelog/backend/server/.venv/bin/python -m manage runserver 0.0.0.0:8000
124122
Restart=always
125123
EnvironmentFile=/opt/adventurelog/backend/server/.env
126124

0 commit comments

Comments
 (0)