Refactor wger config to use .env and environment variables
Replaces the custom settings directory with a .env file for configuration. Updates backup and restore logic to handle .env instead of settings, and sets required Django environment variables explicitly. Simplifies installation and update scripts for better maintainability and security.
This commit is contained in:
parent
249113c2b9
commit
51a799c7d5
11
ct/wger.sh
11
ct/wger.sh
@ -37,7 +37,7 @@ function update_script() {
|
|||||||
msg_info "Backing up Data"
|
msg_info "Backing up Data"
|
||||||
cp -r /opt/wger/db /opt/wger_db_backup
|
cp -r /opt/wger/db /opt/wger_db_backup
|
||||||
cp -r /opt/wger/media /opt/wger_media_backup
|
cp -r /opt/wger/media /opt/wger_media_backup
|
||||||
cp -r /opt/wger/settings /opt/wger_settings_backup
|
cp /opt/wger/.env /opt/wger_env_backup
|
||||||
msg_ok "Backed up Data"
|
msg_ok "Backed up Data"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wger" "wger-project/wger" "tarball" "latest" "/opt/wger"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wger" "wger-project/wger" "tarball" "latest" "/opt/wger"
|
||||||
@ -45,15 +45,16 @@ function update_script() {
|
|||||||
msg_info "Restoring Data"
|
msg_info "Restoring Data"
|
||||||
cp -r /opt/wger_db_backup/. /opt/wger/db
|
cp -r /opt/wger_db_backup/. /opt/wger/db
|
||||||
cp -r /opt/wger_media_backup/. /opt/wger/media
|
cp -r /opt/wger_media_backup/. /opt/wger/media
|
||||||
cp -r /opt/wger_settings_backup/. /opt/wger/settings
|
cp /opt/wger_env_backup /opt/wger/.env
|
||||||
rm -rf /opt/wger_db_backup /opt/wger_media_backup /opt/wger_settings_backup
|
rm -rf /opt/wger_db_backup /opt/wger_media_backup /opt/wger_env_backup
|
||||||
msg_ok "Restored Data"
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
msg_info "Updating wger"
|
msg_info "Updating wger"
|
||||||
cd /opt/wger
|
cd /opt/wger
|
||||||
$STD uv pip install .
|
source /opt/wger/.env
|
||||||
export DJANGO_SETTINGS_MODULE=settings.main
|
export DJANGO_SETTINGS_MODULE=settings.main
|
||||||
export PYTHONPATH=/opt/wger
|
export DJANGO_DB_DATABASE DJANGO_MEDIA_ROOT DJANGO_STATIC_ROOT SECRET_KEY
|
||||||
|
$STD uv pip install .
|
||||||
$STD uv run python manage.py migrate
|
$STD uv run python manage.py migrate
|
||||||
$STD uv run python manage.py collectstatic --no-input
|
$STD uv run python manage.py collectstatic --no-input
|
||||||
msg_ok "Updated wger"
|
msg_ok "Updated wger"
|
||||||
|
|||||||
@ -33,23 +33,18 @@ chmod o+w /opt/wger/media
|
|||||||
cd /opt/wger
|
cd /opt/wger
|
||||||
$STD uv venv
|
$STD uv venv
|
||||||
$STD uv pip install .
|
$STD uv pip install .
|
||||||
mkdir -p /opt/wger/settings
|
SECRET_KEY=$(openssl rand -base64 40)
|
||||||
cat <<EOF >/opt/wger/settings/main.py
|
cat <<EOF >/opt/wger/.env
|
||||||
from wger.settings_global import *
|
DJANGO_DB_DATABASE=/opt/wger/db/database.sqlite
|
||||||
|
DJANGO_MEDIA_ROOT=/opt/wger/media
|
||||||
DATABASES = {
|
DJANGO_STATIC_ROOT=/opt/wger/static
|
||||||
'default': {
|
SECRET_KEY=${SECRET_KEY}
|
||||||
'ENGINE': 'django.db.backends.sqlite3',
|
|
||||||
'NAME': '/opt/wger/db/database.sqlite',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MEDIA_ROOT = '/opt/wger/media'
|
|
||||||
STATIC_ROOT = '/opt/wger/static'
|
|
||||||
EOF
|
EOF
|
||||||
touch /opt/wger/settings/__init__.py
|
|
||||||
export DJANGO_SETTINGS_MODULE=settings.main
|
export DJANGO_SETTINGS_MODULE=settings.main
|
||||||
export PYTHONPATH=/opt/wger
|
export DJANGO_DB_DATABASE=/opt/wger/db/database.sqlite
|
||||||
|
export DJANGO_MEDIA_ROOT=/opt/wger/media
|
||||||
|
export DJANGO_STATIC_ROOT=/opt/wger/static
|
||||||
|
export SECRET_KEY="${SECRET_KEY}"
|
||||||
$STD uv run python manage.py migrate
|
$STD uv run python manage.py migrate
|
||||||
$STD uv run python manage.py collectstatic --no-input
|
$STD uv run python manage.py collectstatic --no-input
|
||||||
msg_ok "Set up wger"
|
msg_ok "Set up wger"
|
||||||
@ -69,7 +64,10 @@ cat <<EOF >/etc/apache2/sites-available/wger.conf
|
|||||||
WSGIScriptAlias / /opt/wger/wger/wsgi.py
|
WSGIScriptAlias / /opt/wger/wger/wsgi.py
|
||||||
WSGIPassAuthorization On
|
WSGIPassAuthorization On
|
||||||
SetEnv DJANGO_SETTINGS_MODULE settings.main
|
SetEnv DJANGO_SETTINGS_MODULE settings.main
|
||||||
SetEnv PYTHONPATH /opt/wger
|
SetEnv DJANGO_DB_DATABASE /opt/wger/db/database.sqlite
|
||||||
|
SetEnv DJANGO_MEDIA_ROOT /opt/wger/media
|
||||||
|
SetEnv DJANGO_STATIC_ROOT /opt/wger/static
|
||||||
|
SetEnv SECRET_KEY ${SECRET_KEY}
|
||||||
|
|
||||||
Alias /static/ /opt/wger/static/
|
Alias /static/ /opt/wger/static/
|
||||||
<Directory /opt/wger/static>
|
<Directory /opt/wger/static>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user