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
2421msg_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
2927msg_info " Set up PostgreSQL Database"
3028DB_NAME=" adventurelog_db"
@@ -46,15 +44,12 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
4644} >> ~/adventurelog.creds
4745msg_ok " Set up PostgreSQL"
4846
47+ fetch_and_deploy_gh_release " adventurelog" " seanmorley15/adventurelog"
48+
4949msg_info " Installing AdventureLog (Patience)"
5050DJANGO_ADMIN_USER=" djangoadmin"
5151DJANGO_ADMIN_PASS=" $( openssl rand -base64 18 | tr -dc ' a-zA-Z0-9' | cut -c1-13) "
5252LOCAL_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
5853cat << EOF >/opt/adventurelog/backend/server/.env
5954PGHOST='localhost'
6055PGDATABASE='${DB_NAME} '
@@ -79,11 +74,13 @@ DISABLE_REGISTRATION=False
7974EOF
8075cd /opt/adventurelog/backend/server
8176mkdir -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
8784cat << EOF >/opt/adventurelog/frontend/.env
8885PUBLIC_SERVER_URL=http://$LOCAL_IP :8000
8986BODY_SIZE_LIMIT=Infinity
@@ -96,7 +93,8 @@ echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
9693msg_ok " Installed AdventureLog"
9794
9895msg_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
10098from django.contrib.auth import get_user_model
10199UserModel = get_user_model()
102100user = UserModel.objects.create_user('$DJANGO_ADMIN_USER ', password='$DJANGO_ADMIN_PASS ')
@@ -120,7 +118,7 @@ After=network.target postgresql.service
120118
121119[Service]
122120WorkingDirectory=/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
124122Restart=always
125123EnvironmentFile=/opt/adventurelog/backend/server/.env
126124
0 commit comments