Update Dispatcharr defaults and improve install script
Increased default RAM to 2048MB and updated default OS version to 13 in ct/dispatcharr.sh. Refactored update_script for improved readability. Modified install/dispatcharr-install.sh to use uv for Python package installation and clarified virtual environment creation comments.
This commit is contained in:
parent
9abdff165b
commit
071f2aa83a
@ -9,10 +9,10 @@ APP="Dispatcharr"
|
||||
APP_NAME=${APP,,}
|
||||
var_tags="${var_tags:-media;arr}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
@ -21,91 +21,91 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d "/opt/dispatcharr" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Dispatcharr/Dispatcharr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_ok "Starting update"
|
||||
APP_DIR="/opt/dispatcharr"
|
||||
APP_USER="dispatcharr"
|
||||
APP_GROUP="dispatcharr"
|
||||
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop dispatcharr-celery
|
||||
systemctl stop dispatcharr-celerybeat
|
||||
systemctl stop dispatcharr-daphne
|
||||
systemctl stop dispatcharr
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Creating Backup"
|
||||
BACKUP_FILE="/opt/dispatcharr_$(date +%F).tar.gz"
|
||||
msg_info "Source and Database backup"
|
||||
set -o allexport
|
||||
source /etc/$APP_NAME/$APP_NAME.env
|
||||
set +o allexport
|
||||
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U $POSTGRES_USER -h $POSTGRES_HOST $POSTGRES_DB >/opt/$POSTGRES_DB-$(date +%F).sql
|
||||
$STD tar -czf "$BACKUP_FILE" /opt/dispatcharr /opt/Dispatcharr_version.txt /opt/$POSTGRES_DB-$(date +%F).sql &>/dev/null
|
||||
msg_ok "Backup Created"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
rm -rf /opt/dispatcharr
|
||||
fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr"
|
||||
chown -R "$APP_USER:$APP_GROUP" "$APP_DIR"
|
||||
sed -i 's/program\[\x27channel_id\x27\]/program["channel_id"]/g' "${APP_DIR}/apps/output/views.py"
|
||||
|
||||
msg_ok "Dispatcharr Updated to $RELEASE"
|
||||
|
||||
msg_info "Creating Python Virtual Environment"
|
||||
cd $APP_DIR
|
||||
python3 -m venv env
|
||||
source env/bin/activate
|
||||
$STD pip install --upgrade pip
|
||||
$STD pip install -r requirements.txt
|
||||
$STD pip install gunicorn
|
||||
ln -sf /usr/bin/ffmpeg $APP_DIR/env/bin/ffmpeg
|
||||
msg_ok "Python Environment Setup"
|
||||
|
||||
msg_info "Building Frontend"
|
||||
cd $APP_DIR/frontend
|
||||
$STD npm install --legacy-peer-deps
|
||||
$STD npm run build
|
||||
msg_ok "Built Frontend"
|
||||
|
||||
msg_info "Running Django Migrations"
|
||||
cd $APP_DIR
|
||||
source env/bin/activate
|
||||
set -o allexport
|
||||
source /etc/$APP_NAME/$APP_NAME.env
|
||||
set +o allexport
|
||||
$STD python manage.py migrate --noinput
|
||||
$STD python manage.py collectstatic --noinput
|
||||
msg_ok "Migrations Complete"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start dispatcharr-celery
|
||||
systemctl start dispatcharr-celerybeat
|
||||
systemctl start dispatcharr-daphne
|
||||
systemctl start dispatcharr
|
||||
msg_ok "Started $APP"
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /opt/$POSTGRES_DB-$(date +%F).sql
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Update Successful, Backup saved to $BACKUP_FILE"
|
||||
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
if [[ ! -d "/opt/dispatcharr" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Dispatcharr/Dispatcharr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_ok "Starting update"
|
||||
APP_DIR="/opt/dispatcharr"
|
||||
APP_USER="dispatcharr"
|
||||
APP_GROUP="dispatcharr"
|
||||
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop dispatcharr-celery
|
||||
systemctl stop dispatcharr-celerybeat
|
||||
systemctl stop dispatcharr-daphne
|
||||
systemctl stop dispatcharr
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Creating Backup"
|
||||
BACKUP_FILE="/opt/dispatcharr_$(date +%F).tar.gz"
|
||||
msg_info "Source and Database backup"
|
||||
set -o allexport
|
||||
source /etc/$APP_NAME/$APP_NAME.env
|
||||
set +o allexport
|
||||
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U $POSTGRES_USER -h $POSTGRES_HOST $POSTGRES_DB >/opt/$POSTGRES_DB-$(date +%F).sql
|
||||
$STD tar -czf "$BACKUP_FILE" /opt/dispatcharr /opt/Dispatcharr_version.txt /opt/$POSTGRES_DB-$(date +%F).sql &>/dev/null
|
||||
msg_ok "Backup Created"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
rm -rf /opt/dispatcharr
|
||||
fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr"
|
||||
chown -R "$APP_USER:$APP_GROUP" "$APP_DIR"
|
||||
sed -i 's/program\[\x27channel_id\x27\]/program["channel_id"]/g' "${APP_DIR}/apps/output/views.py"
|
||||
|
||||
msg_ok "Dispatcharr Updated to $RELEASE"
|
||||
|
||||
msg_info "Creating Python Virtual Environment"
|
||||
cd $APP_DIR
|
||||
python3 -m venv env
|
||||
source env/bin/activate
|
||||
$STD pip install --upgrade pip
|
||||
$STD pip install -r requirements.txt
|
||||
$STD pip install gunicorn
|
||||
ln -sf /usr/bin/ffmpeg $APP_DIR/env/bin/ffmpeg
|
||||
msg_ok "Python Environment Setup"
|
||||
|
||||
msg_info "Building Frontend"
|
||||
cd $APP_DIR/frontend
|
||||
$STD npm install --legacy-peer-deps
|
||||
$STD npm run build
|
||||
msg_ok "Built Frontend"
|
||||
|
||||
msg_info "Running Django Migrations"
|
||||
cd $APP_DIR
|
||||
source env/bin/activate
|
||||
set -o allexport
|
||||
source /etc/$APP_NAME/$APP_NAME.env
|
||||
set +o allexport
|
||||
$STD python manage.py migrate --noinput
|
||||
$STD python manage.py collectstatic --noinput
|
||||
msg_ok "Migrations Complete"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start dispatcharr-celery
|
||||
systemctl start dispatcharr-celerybeat
|
||||
systemctl start dispatcharr-daphne
|
||||
systemctl start dispatcharr
|
||||
msg_ok "Started $APP"
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /opt/$POSTGRES_DB-$(date +%F).sql
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Update Successful, Backup saved to $BACKUP_FILE"
|
||||
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
@ -51,7 +51,7 @@ fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr"
|
||||
|
||||
msg_info "Setup Python virtual environment"
|
||||
cd /opt/dispatcharr
|
||||
# WICHTIG: Erstelle ein echtes venv statt --system
|
||||
# uv venv erstellt ein minimales venv - wir nutzen uv zum Installieren
|
||||
$STD uv venv env
|
||||
msg_ok "Virtual environment created"
|
||||
|
||||
@ -63,11 +63,11 @@ UV_INDEX_ARGS=(--index-url "$PYPI_URL" --index-strategy unsafe-best-match)
|
||||
for u in "${EXTRA_INDEX_URLS[@]}"; do
|
||||
[[ -n "$u" && "$u" != "$PYPI_URL" ]] && UV_INDEX_ARGS+=(--extra-index-url "$u")
|
||||
done
|
||||
|
||||
if [[ -f requirements.txt ]]; then
|
||||
$STD /opt/dispatcharr/env/bin/python -m pip install --upgrade pip setuptools wheel
|
||||
$STD /opt/dispatcharr/env/bin/pip install "${UV_INDEX_ARGS[@]}" -r requirements.txt
|
||||
$STD uv pip install --python /opt/dispatcharr/env/bin/python "${UV_INDEX_ARGS[@]}" -r requirements.txt
|
||||
fi
|
||||
$STD /opt/dispatcharr/env/bin/pip install "${UV_INDEX_ARGS[@]}" gunicorn gevent celery daphne
|
||||
$STD uv pip install --python /opt/dispatcharr/env/bin/python "${UV_INDEX_ARGS[@]}" gunicorn gevent celery daphne
|
||||
ln -sf /usr/bin/ffmpeg /opt/dispatcharr/env/bin/ffmpeg
|
||||
msg_ok "Python Requirements Installed"
|
||||
|
||||
@ -79,7 +79,6 @@ msg_ok "Built Frontend"
|
||||
|
||||
msg_info "Running Django Migrations"
|
||||
cd /opt/dispatcharr
|
||||
# WICHTIG: Setze Umgebungsvariablen für Django/PostgreSQL
|
||||
export POSTGRES_DB="$DB_NAME"
|
||||
export POSTGRES_USER="$DB_USER"
|
||||
export POSTGRES_PASSWORD="$DB_PASS"
|
||||
|
Loading…
x
Reference in New Issue
Block a user