ref. wger

This commit is contained in:
CanbiZ (MickLesk)
2026-01-22 15:38:57 +01:00
parent 2c7a4cf8ba
commit a58dfb0993
4 changed files with 77 additions and 244 deletions

View File

@@ -2,7 +2,7 @@
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/wger-project/wger
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
@@ -14,48 +14,48 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
git \
$STD apt-get install -y \
apache2 \
libapache2-mod-wsgi-py3
msg_ok "Installed Dependencies"
msg_info "Installing Python"
$STD apt install -y python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Installed Python"
NODE_VERSION="22" NODE_MODULE="yarn,sass" setup_nodejs
setup_uv
fetch_and_deploy_gh_release "wger" "wger-project/wger" "tarball" "latest" "/opt/wger"
msg_info "Setting up wger"
$STD adduser wger --disabled-password --gecos ""
mkdir /home/wger/db
touch /home/wger/db/database.sqlite
chown :www-data -R /home/wger/db
chmod g+w /home/wger/db /home/wger/db/database.sqlite
mkdir /home/wger/{static,media}
chmod o+w /home/wger/media
temp_dir=$(mktemp -d)
cd "$temp_dir"
RELEASE=$(curl -fsSL https://api.github.com/repos/wger-project/wger/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.gz" -o "$RELEASE.tar.gz"
tar xzf "$RELEASE".tar.gz
mv wger-"$RELEASE" /home/wger/src
cd /home/wger/src
$STD pip install -r requirements_prod.txt --ignore-installed
$STD pip install -e .
$STD wger create-settings --database-path /home/wger/db/database.sqlite
sed -i "s#home/wger/src/media#home/wger/media#g" /home/wger/src/settings.py
sed -i "/MEDIA_ROOT = '\/home\/wger\/media'/a STATIC_ROOT = '/home/wger/static'" /home/wger/src/settings.py
$STD wger bootstrap
$STD python3 manage.py collectstatic
rm -rf "$temp_dir"
echo "${RELEASE}" >/opt/wger_version.txt
msg_ok "Finished setting up wger"
mkdir -p /opt/wger/{db,static,media}
touch /opt/wger/db/database.sqlite
chown :www-data -R /opt/wger/db
chmod g+w /opt/wger/db /opt/wger/db/database.sqlite
chmod o+w /opt/wger/media
cd /opt/wger
$STD uv sync --no-dev
mkdir -p /opt/wger/settings
cat <<EOF >/opt/wger/settings/main.py
from wger.settings_global import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/opt/wger/db/database.sqlite',
}
}
MEDIA_ROOT = '/opt/wger/media'
STATIC_ROOT = '/opt/wger/static'
EOF
touch /opt/wger/settings/__init__.py
export DJANGO_SETTINGS_MODULE=settings.main
export PYTHONPATH=/opt/wger
$STD uv run python manage.py migrate
$STD uv run python manage.py collectstatic --no-input
msg_ok "Set up wger"
msg_info "Creating Service"
cat <<EOF >/etc/apache2/sites-available/wger.conf
<Directory /home/wger/src>
<Directory /opt/wger>
<Files wsgi.py>
Require all granted
</Files>
@@ -63,18 +63,20 @@ cat <<EOF >/etc/apache2/sites-available/wger.conf
<VirtualHost *:80>
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess wger python-path=/home/wger/src python-home=/home/wger
WSGIDaemonProcess wger python-path=/opt/wger python-home=/opt/wger/.venv
WSGIProcessGroup wger
WSGIScriptAlias / /home/wger/src/wger/wsgi.py
WSGIScriptAlias / /opt/wger/wger/wsgi.py
WSGIPassAuthorization On
SetEnv DJANGO_SETTINGS_MODULE settings.main
SetEnv PYTHONPATH /opt/wger
Alias /static/ /home/wger/static/
<Directory /home/wger/static>
Alias /static/ /opt/wger/static/
<Directory /opt/wger/static>
Require all granted
</Directory>
Alias /media/ /home/wger/media/
<Directory /home/wger/media>
Alias /media/ /opt/wger/media/
<Directory /opt/wger/media>
Require all granted
</Directory>
@@ -85,21 +87,6 @@ EOF
$STD a2dissite 000-default.conf
$STD a2ensite wger
systemctl restart apache2
cat <<EOF >/etc/systemd/system/wger.service
[Unit]
Description=wger Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/wger start -a 0.0.0.0 -p 3000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now wger
msg_ok "Created Service"
motd_ssh