From 6028cce7a30edb32d7e44017b07d4c1bce1c7131 Mon Sep 17 00:00:00 2001 From: Tobias <96661824+CrazyWolf13@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:07:45 +0100 Subject: [PATCH] add: wger --- install/wger-install.sh | 107 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 install/wger-install.sh diff --git a/install/wger-install.sh b/install/wger-install.sh new file mode 100644 index 000000000..ddc90a179 --- /dev/null +++ b/install/wger-install.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/wger-project/wger + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt install -y \ + git \ + 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 + +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" + +msg_info "Creating Service" +cat </etc/apache2/sites-available/wger.conf + + + Require all granted + + + + + WSGIApplicationGroup %{GLOBAL} + WSGIDaemonProcess wger python-path=/home/wger/src python-home=/home/wger + WSGIProcessGroup wger + WSGIScriptAlias / /home/wger/src/wger/wsgi.py + WSGIPassAuthorization On + + Alias /static/ /home/wger/static/ + + Require all granted + + + Alias /media/ /home/wger/media/ + + Require all granted + + + ErrorLog /var/log/apache2/wger-error.log + CustomLog /var/log/apache2/wger-access.log combined + +EOF +$STD a2dissite 000-default.conf +$STD a2ensite wger +systemctl restart apache2 +cat </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 +customize +cleanup_lxc