From 38744e16f7b28c99f4732ac241dbabe6af3d3256 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 14 May 2025 10:20:13 +0200 Subject: [PATCH] removing --- ct/openproject.sh | 44 ------ ct/paperless-ngx.sh | 129 ---------------- install/odoo-install.sh | 12 +- install/openproject-install.sh | 98 ------------- install/paperless-ngx-install.sh | 244 ------------------------------- 5 files changed, 9 insertions(+), 518 deletions(-) delete mode 100644 ct/openproject.sh delete mode 100644 ct/paperless-ngx.sh delete mode 100644 install/openproject-install.sh delete mode 100644 install/paperless-ngx-install.sh diff --git a/ct/openproject.sh b/ct/openproject.sh deleted file mode 100644 index ce445a9..0000000 --- a/ct/openproject.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/opf/openproject - -APP="OpenProject" -var_tags="${var_tags:-project-management,erp}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-8}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -f /etc/openproject/installer.dat ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ${APP}" - $STD apt-get update - $STD apt-get install --only-upgrade -y openproject - msg_ok "Updated ${APP}" - exit 0 -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/openproject${CL}" diff --git a/ct/paperless-ngx.sh b/ct/paperless-ngx.sh deleted file mode 100644 index 636a011..0000000 --- a/ct/paperless-ngx.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://docs.paperless-ngx.com/ - -APP="Paperless-ngx" -var_tags="${var_tags:-document;management}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-10}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/paperless ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then - msg_info "Stopping Paperless services" - systemctl stop paperless-{webserver,scheduler,task-queue,consumer} - msg_ok "Stopped Paperless services" - - BACKUP_DIR="/opt/paperless-backup-$(date +%F_%T | tr ':' '-')" - - MIGRATION_NEEDED=0 - if ! command -v uv &>/dev/null || [[ ! -d /opt/paperless/.venv ]]; then - MIGRATION_NEEDED=1 - msg_info "uv not found or missing venv, migrating..." - setup_uv - $STD uv venv /opt/paperless/.venv - source /opt/paperless/.venv/bin/activate - $STD uv sync --all-extras - fi - - BACKUP_DIR="/opt/paperless-backup-$(date +%F_%T | tr ':' '-')" - - setup_gs - setup_uv - - msg_info "Backing up Paperless folders" - mkdir -p "$BACKUP_DIR" - for d in consume data media; do - [[ -d "/opt/paperless/$d" ]] && mv "/opt/paperless/$d" "$BACKUP_DIR/" - done - [[ -f "/opt/paperless/paperless.conf" ]] && cp "/opt/paperless/paperless.conf" "$BACKUP_DIR/" - msg_ok "Backup completed to $BACKUP_DIR" - - msg_info "Updating PaperlessNGX" - RELEASE=$(curl -fsSL "https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest" | grep 'tag_name' | cut -d '"' -f4) - cd /tmp - curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$RELEASE/paperless-ngx-$RELEASE.tar.xz" -o paperless.tar.xz - tar -xf paperless.tar.xz - cp -r paperless-ngx/* /opt/paperless/ - rm -rf paperless.tar.xz paperless-ngx - echo "$RELEASE" >/opt/paperless/Paperless-ngx_version.txt - msg_ok "Updated Paperless-ngx to $RELEASE" - - for d in consume data media; do - [[ -d "$BACKUP_DIR/$d" ]] && mv "$BACKUP_DIR/$d" "/opt/paperless/" - done - [[ ! -f "/opt/paperless/paperless.conf" && -f "$BACKUP_DIR/paperless.conf" ]] && cp "$BACKUP_DIR/paperless.conf" "/opt/paperless/paperless.conf" - $STD uv venv /opt/paperless/.venv - source /opt/paperless/.venv/bin/activate - echo -e "source done" - $STD uv sync --all-extras - echo -e "uv sync done" - source /opt/paperless/paperless.conf - $STD /opt/paperless/.venv/bin/python3 /opt/paperless/src/manage.py migrate - - if [[ "$MIGRATION_NEEDED" == 1 ]]; then - cat </etc/default/paperless -PYTHONDONTWRITEBYTECODE=1 -PYTHONUNBUFFERED=1 -PNGX_CONTAINERIZED=0 -UV_LINK_MODE=copy -EOF - - for svc in /etc/systemd/system/paperless-*.service; do - sed -i \ - -e "s|^ExecStart=.*manage.py|ExecStart=/opt/paperless/.venv/bin/python3 manage.py|" \ - -e "s|^ExecStart=.*celery|ExecStart=/opt/paperless/.venv/bin/celery|" \ - -e "s|^ExecStart=.*granian|ExecStart=/opt/paperless/.venv/bin/granian|" \ - -e "/^WorkingDirectory=/a EnvironmentFile=/etc/default/paperless" "$svc" - done - fi - - systemctl daemon-reexec - systemctl daemon-reload - - msg_info "Starting Paperless services" - systemctl start paperless-{webserver,scheduler,task-queue,consumer}.service - sleep 1 - msg_ok "All services restarted" - msg_ok "Updated Successfully!\n" - read -r -p "Remove backup directory at $BACKUP_DIR? [y/N]: " CLEANUP - if [[ "$CLEANUP" =~ ^[Yy]$ ]]; then - rm -rf "$BACKUP_DIR" - msg_ok "Backup directory removed" - else - msg_info "Backup directory retained at $BACKUP_DIR" - fi - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit - -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}" diff --git a/install/odoo-install.sh b/install/odoo-install.sh index 98c5b00..d73c9f3 100644 --- a/install/odoo-install.sh +++ b/install/odoo-install.sh @@ -20,9 +20,13 @@ $STD apt-get install -y \ make msg_ok "Installed Dependencies" -#PG_VERSION="16" install_postgresql - RELEASE=$(curl -fsSL https://nightly.odoo.com/ | grep -oE 'href="[0-9]+\.[0-9]+/nightly"' | head -n1 | cut -d'"' -f2 | cut -d/ -f1) +LATEST_VERSION=$(curl -fsSL "https://nightly.odoo.com/${RELEASE}/nightly/deb/" | + grep -oP "odoo_${RELEASE}\.\d+_all\.deb" | + sed -E "s/odoo_(${RELEASE}\.[0-9]+)_all\.deb/\1/" | + sort -V | + tail -n1) + msg_info "Setup Odoo $RELEASE" curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb $STD apt install -y /opt/odoo.deb @@ -53,10 +57,12 @@ sed -i \ -e "s|^;*db_password *=.*|db_password = $DB_PASS|" \ /etc/odoo/odoo.conf $STD sudo -u odoo odoo -c /etc/odoo/odoo.conf -d odoo -i base --stop-after-init +systemctl restart odoo +echo "${LATEST_VERSION}" >/opt/${APPLICATION}_version.txt msg_ok "Configured Odoo" msg_info "Restarting Odoo" -systemctl restart odoo + msg_ok "Restarted Odoo" motd_ssh diff --git a/install/openproject-install.sh b/install/openproject-install.sh deleted file mode 100644 index de1bb15..0000000 --- a/install/openproject-install.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/opf/openproject - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt-get install -y \ - apt-transport-https \ - ca-certificates \ - gpg -msg_ok "Installed Dependencies" - -msg_info "Setup OpenProject Repository" -wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor >/etc/apt/trusted.gpg.d/packager-io.gpg -wget -qO /etc/apt/sources.list.d/openproject.list https://dl.packager.io/srv/opf/openproject/stable/15/installer/debian/12.repo -msg_ok "Setup OpenProject Repository" - -msg_info "Setup PostgreSQL Repository" -VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" -echo "deb http://apt.postgresql.org/pub/repos/apt ${VERSION}-pgdg main" >/etc/apt/sources.list.d/pgdg.list -curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor --output /etc/apt/trusted.gpg.d/postgresql.gpg -msg_ok "Setup PostgreSQL Repository" - -msg_info "Installing PostgreSQL" -$STD apt-get update -$STD apt-get install -y postgresql -msg_ok "Installed PostgreSQL" - -msg_info "Setting up PostgreSQL" -DB_NAME=openproject -DB_USER=openproject -DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) -API_KEY=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) -$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" -$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;" -{ - echo "OpenProject-Credentials" - echo -e "OpenProject Database User: $DB_USER" - echo -e "OpenProject Database Password: $DB_PASS" - echo -e "OpenProject Database Name: $DB_NAME" - echo -e "OpenProject API Key: $API_KEY" -} >>~/openproject.creds -msg_ok "Set up PostgreSQL" - -msg_info "Installing OpenProject" -$STD apt-get install -y openproject -msg_ok "Installed OpenProject" - -msg_info "Configure OpenProject" -IP_ADDR=$(hostname -I | cut -d' ' -f1) -cat </etc/openproject/installer.dat -openproject/edition default - -postgres/retry retry -postgres/autoinstall reuse -postgres/db_host 127.0.0.1 -postgres/db_port 5432 -postgres/db_username ${DB_USER} -postgres/db_password ${DB_PASS} -postgres/db_name ${DB_NAME} -server/autoinstall install -server/variant apache2 - -server/hostname ${IP_ADDR} -server/server_path_prefix /openproject -server/ssl no -server/variant apache2 -server/server_path_prefix -repositories/api-key ${API_KEY} -repositories/svn-install skip -repositories/git-install install -repositories/git-path /var/db/openproject/git -repositories/git-http-backend /usr/lib/git-core/git-http-backend/ -memcached/autoinstall install -openproject/admin_email admin@example.net -openproject/default_language en -EOF - -$STD sudo openproject configure -msg_ok "Configured OpenProject" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh deleted file mode 100644 index 2900413..0000000 --- a/install/paperless-ngx-install.sh +++ /dev/null @@ -1,244 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://docs.paperless-ngx.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies (Patience)" -$STD apt-get install -y \ - redis \ - postgresql \ - python3-dev \ - python3-setuptools \ - python3-wheel \ - build-essential \ - imagemagick \ - fonts-liberation \ - optipng \ - gnupg \ - libpq-dev \ - libmagic-dev \ - mime-support \ - libzbar0 \ - poppler-utils \ - default-libmysqlclient-dev \ - automake \ - libtool \ - pkg-config \ - git \ - libtiff-dev \ - libpng-dev \ - libleptonica-dev -setup_uv -msg_ok "Installed Dependencies" - -msg_info "Installing OCR Dependencies (Patience)" -$STD apt-get install -y \ - unpaper \ - icc-profiles-free \ - qpdf \ - liblept5 \ - libxml2 \ - pngquant \ - zlib1g \ - tesseract-ocr \ - tesseract-ocr-eng -msg_ok "Installed OCR Dependencies" - -setup_gs - -msg_info "Installing JBIG2" -$STD git clone https://github.com/ie13/jbig2enc /opt/jbig2enc -cd /opt/jbig2enc -$STD ./autogen.sh -$STD ./configure -$STD make -$STD make install -rm -rf /opt/jbig2enc -msg_ok "Installed JBIG2" - -msg_info "Installing Paperless-ngx (Patience)" -LATEST=$(curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/latest" | grep "title>Release" | cut -d " " -f 5) -cd /opt -curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/${LATEST}/paperless-ngx-${LATEST}.tar.xz" -o paperless.tar.xz -tar -xf paperless.tar.xz -mv paperless-ngx paperless -rm paperless.tar.xz -cd /opt/paperless - -$STD uv venv /opt/paperless/.venv -source /opt/paperless/.venv/bin/activate -$STD uv sync --all-extras -mkdir -p /opt/paperless/{consume,data,media,static} -sed -i -e 's|#PAPERLESS_REDIS=.*|PAPERLESS_REDIS=redis://localhost:6379|' \ - -e "s|#PAPERLESS_CONSUMPTION_DIR=.*|PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume|" \ - -e "s|#PAPERLESS_DATA_DIR=.*|PAPERLESS_DATA_DIR=/opt/paperless/data|" \ - -e "s|#PAPERLESS_MEDIA_ROOT=.*|PAPERLESS_MEDIA_ROOT=/opt/paperless/media|" \ - -e "s|#PAPERLESS_STATICDIR=.*|PAPERLESS_STATICDIR=/opt/paperless/static|" \ - paperless.conf -echo "$LATEST" >/opt/"${APPLICATION}"_version.txt -msg_ok "Installed Paperless-ngx" - -if /opt/paperless/.venv/bin/python3 -c "import nltk" &>/dev/null; then - msg_info "Installing Natural Language Toolkit (Patience)" - for d in snowball_data stopwords punkt_tab; do - $STD /opt/paperless/.venv/bin/python3 -m nltk.downloader -d /usr/share/nltk_data "$d" - done - msg_ok "Installed NLTK components" -else - msg_info "Skipping NLTK setup (nltk not installed)" -fi - -msg_info "Setting up PostgreSQL database" -DB_NAME=paperlessdb -DB_USER=paperless -DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" -SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)" -$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" -$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';" - -echo -e "\nPaperless-ngx Database User: \e[32m$DB_USER\e[0m" >>~/paperless.creds -echo -e "Paperless-ngx Database Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds -echo -e "Paperless-ngx Database Name: \e[32m$DB_NAME\e[0m" >>~/paperless.creds - -sed -i -e "s|#PAPERLESS_DBHOST=.*|PAPERLESS_DBHOST=localhost|" \ - -e "s|#PAPERLESS_DBPORT=.*|PAPERLESS_DBPORT=5432|" \ - -e "s|#PAPERLESS_DBNAME=.*|PAPERLESS_DBNAME=$DB_NAME|" \ - -e "s|#PAPERLESS_DBUSER=.*|PAPERLESS_DBUSER=$DB_USER|" \ - -e "s|#PAPERLESS_DBPASS=.*|PAPERLESS_DBPASS=$DB_PASS|" \ - -e "s|#PAPERLESS_SECRET_KEY=.*|PAPERLESS_SECRET_KEY=$SECRET_KEY|" \ - /opt/paperless/paperless.conf -msg_ok "Set up PostgreSQL database" - -msg_info "Running Paperless DB migrations (with config)" -source /opt/paperless/paperless.conf -$STD /opt/paperless/.venv/bin/python3 /opt/paperless/src/manage.py migrate -msg_ok "Migrations applied" - -msg_info "Setting up admin Paperless-ngx User & Password" -cat <>~/paperless.creds -echo -e "Paperless-ngx WebUI User: \e[32madmin\e[0m" >>~/paperless.creds -echo -e "Paperless-ngx WebUI Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds -msg_ok "Set up admin Paperless-ngx User & Password" - -read -r -p "Would you like to add Adminer? " prompt -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - msg_info "Installing Adminer" - $STD apt install -y adminer - $STD a2enconf adminer - systemctl reload apache2 - IP=$(hostname -I | awk '{print $1}') - echo "" >>~/paperless.creds - echo -e "Adminer Interface: \e[32m$IP/adminer/\e[0m" >>~/paperless.creds - echo -e "Adminer System: \e[32mPostgreSQL\e[0m" >>~/paperless.creds - echo -e "Adminer Server: \e[32mlocalhost:5432\e[0m" >>~/paperless.creds - echo -e "Adminer Username: \e[32m$DB_USER\e[0m" >>~/paperless.creds - echo -e "Adminer Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds - echo -e "Adminer Database: \e[32m$DB_NAME\e[0m" >>~/paperless.creds - msg_ok "Installed Adminer" -fi - -msg_info "Creating Services" -cat </etc/default/paperless -PYTHONDONTWRITEBYTECODE=1 -PYTHONUNBUFFERED=1 -PNGX_CONTAINERIZED=0 -UV_LINK_MODE=copy -EOF - -cat </etc/systemd/system/paperless-scheduler.service -[Unit] -Description=Paperless Celery beat -Requires=redis.service - -[Service] -EnvironmentFile=/etc/default/paperless -WorkingDirectory=/opt/paperless/src -ExecStart=/opt/paperless/.venv/bin/celery --app paperless beat --loglevel INFO - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/paperless-task-queue.service -[Unit] -Description=Paperless Celery Workers -Requires=redis.service -After=postgresql.service - -[Service] -EnvironmentFile=/etc/default/paperless -WorkingDirectory=/opt/paperless/src -ExecStart=/opt/paperless/.venv/bin/celery --app paperless worker --loglevel INFO - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/paperless-consumer.service -[Unit] -Description=Paperless consumer -Requires=redis.service - -[Service] -EnvironmentFile=/etc/default/paperless -WorkingDirectory=/opt/paperless/src -ExecStartPre=/bin/sleep 2 -ExecStart=/opt/paperless/.venv/bin/python3 manage.py document_consumer - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/paperless-webserver.service -[Unit] -Description=Paperless webserver -After=network.target -Wants=network.target -Requires=redis.service - -[Service] -EnvironmentFile=/etc/default/paperless -WorkingDirectory=/opt/paperless/src -ExecStart=/opt/paperless/.venv/bin/granian --interface asginl --ws "paperless.asgi:application" -Environment=GRANIAN_HOST=:: -Environment=GRANIAN_PORT=8000 -Environment=GRANIAN_WORKERS=1 - -[Install] -WantedBy=multi-user.target -EOF - -sed -i -e 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-6/policy.xml -systemctl enable -q --now paperless-webserver paperless-scheduler paperless-task-queue paperless-consumer -msg_ok "Created Services" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -rf /opt/paperless/docker -rm -rf /tmp/ghostscript* /tmp/ghostpdl* -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned"