mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-20 04:25:16 +00:00
Compare commits
7 Commits
MickLesk-p
...
pr-update-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
03c40fad1c | ||
|
|
28dc130c4a | ||
|
|
5dc53965b6 | ||
|
|
eae070cc6c | ||
|
|
c1f12b4e3f | ||
|
|
251c842cd5 | ||
|
|
d7b8474af1 |
@@ -23,6 +23,14 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
- NetVisor: add build deps, increase RAM [@vhsdream](https://github.com/vhsdream) ([#9205](https://github.com/community-scripts/ProxmoxVE/pull/9205))
|
- NetVisor: add build deps, increase RAM [@vhsdream](https://github.com/vhsdream) ([#9205](https://github.com/community-scripts/ProxmoxVE/pull/9205))
|
||||||
- fix: restart apache2 after installing zabbix config [@AlphaLawless](https://github.com/AlphaLawless) ([#9206](https://github.com/community-scripts/ProxmoxVE/pull/9206))
|
- fix: restart apache2 after installing zabbix config [@AlphaLawless](https://github.com/AlphaLawless) ([#9206](https://github.com/community-scripts/ProxmoxVE/pull/9206))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core]: harmonize app_name for creds [@MickLesk](https://github.com/MickLesk) ([#9224](https://github.com/community-scripts/ProxmoxVE/pull/9224))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Refactor: paperless-ngx (Breaking Change Inside) [@MickLesk](https://github.com/MickLesk) ([#9223](https://github.com/community-scripts/ProxmoxVE/pull/9223))
|
||||||
|
|
||||||
## 2025-11-16
|
## 2025-11-16
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
6
ct/headers/passbolt
Normal file
6
ct/headers/passbolt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ ____
|
||||||
|
/ __ \____ ___________/ /_ ____ / / /_
|
||||||
|
/ /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
|
||||||
|
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /_
|
||||||
|
/_/ \__,_/____/____/_.___/\____/_/\__/
|
||||||
|
|
||||||
@@ -27,6 +27,27 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check for old data structure and prompt migration
|
||||||
|
if [[ -f /opt/paperless/paperless.conf ]]; then
|
||||||
|
local OLD_DIRS=()
|
||||||
|
[[ -d /opt/paperless/consume ]] && OLD_DIRS+=("consume")
|
||||||
|
[[ -d /opt/paperless/data ]] && OLD_DIRS+=("data")
|
||||||
|
[[ -d /opt/paperless/media ]] && OLD_DIRS+=("media")
|
||||||
|
|
||||||
|
if [[ ${#OLD_DIRS[@]} -gt 0 ]]; then
|
||||||
|
msg_error "Old data structure detected in /opt/paperless/"
|
||||||
|
msg_custom "📂" "Found directories: ${OLD_DIRS[*]}"
|
||||||
|
echo -e ""
|
||||||
|
msg_custom "🔄" "Migration required to new data structure (/opt/paperless_data/)"
|
||||||
|
msg_custom "📖" "Please follow the migration guide:"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://github.com/community-scripts/ProxmoxVE/discussions/9223${CL}"
|
||||||
|
echo -e ""
|
||||||
|
msg_custom "⚠️" "Update aborted. Please migrate your data first."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "paperless" "paperless-ngx/paperless-ngx"; then
|
if check_for_gh_release "paperless" "paperless-ngx/paperless-ngx"; then
|
||||||
msg_info "Stopping all Paperless-ngx Services"
|
msg_info "Stopping all Paperless-ngx Services"
|
||||||
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
|
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
|
||||||
@@ -34,15 +55,9 @@ function update_script() {
|
|||||||
|
|
||||||
if grep -q "uv run" /etc/systemd/system/paperless-webserver.service; then
|
if grep -q "uv run" /etc/systemd/system/paperless-webserver.service; then
|
||||||
|
|
||||||
msg_info "Backing up user data and configuration"
|
msg_info "Backing up configuration"
|
||||||
local BACKUP_DIR="/opt/paperless_backup_$$"
|
local BACKUP_DIR="/opt/paperless_backup_$$"
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
for dir in /opt/paperless/*/; do
|
|
||||||
dir_name=$(basename "$dir")
|
|
||||||
if [[ ! "$dir_name" =~ ^(docker|docs|scripts|src|static)$ ]]; then
|
|
||||||
cp -r "/opt/paperless/$dir_name" "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
||||||
msg_ok "Backup completed to $BACKUP_DIR"
|
msg_ok "Backup completed to $BACKUP_DIR"
|
||||||
|
|
||||||
@@ -83,16 +98,9 @@ function update_script() {
|
|||||||
rm -rf /opt/paperless/venv
|
rm -rf /opt/paperless/venv
|
||||||
find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} +
|
find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} +
|
||||||
|
|
||||||
msg_info "Backing up user data and configuration"
|
msg_info "Backing up configuration"
|
||||||
local BACKUP_DIR="/opt/paperless_backup_$$"
|
local BACKUP_DIR="/opt/paperless_backup_$$"
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
for dir in /opt/paperless/*/; do
|
|
||||||
dir_name=$(basename "$dir")
|
|
||||||
if [[ ! "$dir_name" =~ ^(docker|docs|scripts|src|static)$ ]]; then
|
|
||||||
cp -r "/opt/paperless/$dir_name" "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
||||||
msg_ok "Backup completed to $BACKUP_DIR"
|
msg_ok "Backup completed to $BACKUP_DIR"
|
||||||
|
|
||||||
@@ -121,16 +129,9 @@ function update_script() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
$STD systemctl daemon-reload
|
$STD systemctl daemon-reload
|
||||||
msg_info "Backing up user data and configuration"
|
msg_info "Backing up configuration"
|
||||||
BACKUP_DIR="/opt/paperless_backup_$$"
|
BACKUP_DIR="/opt/paperless_backup_$$"
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
for dir in /opt/paperless/*/; do
|
|
||||||
dir_name=$(basename "$dir")
|
|
||||||
if [[ ! "$dir_name" =~ ^(docker|docs|scripts|src|static)$ ]]; then
|
|
||||||
cp -r "/opt/paperless/$dir_name" "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
||||||
msg_ok "Backup completed to $BACKUP_DIR"
|
msg_ok "Backup completed to $BACKUP_DIR"
|
||||||
|
|
||||||
|
|||||||
44
ct/passbolt.sh
Normal file
44
ct/passbolt.sh
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.passbolt.com/
|
||||||
|
|
||||||
|
APP="Passbolt"
|
||||||
|
var_tags="${var_tags:-auth}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
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 /var ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt update
|
||||||
|
$STD apt upgrade -y
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
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}https://${IP}${CL}"
|
||||||
44
frontend/public/json/passbolt.json
Normal file
44
frontend/public/json/passbolt.json
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"name": "Passbolt",
|
||||||
|
"slug": "passbolt",
|
||||||
|
"categories": [
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-04",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 443,
|
||||||
|
"documentation": "https://www.passbolt.com/docs/",
|
||||||
|
"config_path": "/etc/passbolt/passbolt.php",
|
||||||
|
"website": "https://www.passbolt.com/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/passbolt.webp",
|
||||||
|
"description": "Passbolt is a hybrid credential platform. It is built-first for modern IT teams, yet simple enough for everyone. A sovereign, battle-tested solution that delivers for a team of 5, or an organisation of 5000.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/passbolt.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 2,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "13"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Type `cat ~/.Passbolt.creds` to see MariaDB database credentials. You will need those to setup Passbolt.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "The application uses self-signed certificates. You can also use Let's Encrypt to get a valid certificate for your domain. Please read the documentation for more information.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -44,46 +44,36 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
|
PG_DB_NAME="paperlessdb" PG_DB_USER="paperless" setup_postgresql_db
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
||||||
|
|
||||||
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 "Paperless-ngx-Credentials"
|
|
||||||
echo "Paperless-ngx Database Name: $DB_NAME"
|
|
||||||
echo "Paperless-ngx Database User: $DB_USER"
|
|
||||||
echo "Paperless-ngx Database Password: $DB_PASS"
|
|
||||||
echo "Paperless-ngx Secret Key: $SECRET_KEY\n"
|
|
||||||
echo "Paperless-ngx WebUI User: admin"
|
|
||||||
echo "Paperless-ngx WebUI Password: $DB_PASS"
|
|
||||||
} >>~/paperless-ngx.creds
|
|
||||||
msg_ok "Setup PostgreSQL database"
|
|
||||||
|
|
||||||
msg_info "Setup Paperless-ngx"
|
msg_info "Setup Paperless-ngx"
|
||||||
cd /opt/paperless
|
cd /opt/paperless
|
||||||
|
rm -rf /opt/paperless/docker
|
||||||
$STD uv sync --all-extras
|
$STD uv sync --all-extras
|
||||||
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
|
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
|
||||||
mkdir -p {consume,data,media,static}
|
mkdir -p /opt/paperless_data/{consume,data,media,trash}
|
||||||
|
mkdir -p /opt/paperless/static
|
||||||
|
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
|
||||||
|
{
|
||||||
|
echo ""
|
||||||
|
echo "Paperless-ngx Secret Key: $SECRET_KEY"
|
||||||
|
echo "Paperless-ngx WebUI User: admin"
|
||||||
|
echo "Paperless-ngx WebUI Password: $PG_DB_PASS"
|
||||||
|
} >>~/paperless-ngx.creds
|
||||||
sed -i \
|
sed -i \
|
||||||
-e 's|#PAPERLESS_REDIS=redis://localhost:6379|PAPERLESS_REDIS=redis://localhost:6379|' \
|
-e 's|#PAPERLESS_REDIS=redis://localhost:6379|PAPERLESS_REDIS=redis://localhost:6379|' \
|
||||||
-e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume|" \
|
-e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless_data/consume|" \
|
||||||
-e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless/data|" \
|
-e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless_data/data|" \
|
||||||
-e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless/media|" \
|
-e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless_data/media|" \
|
||||||
|
-e "s|#PAPERLESS_EMPTY_TRASH_DIR=|PAPERLESS_EMPTY_TRASH_DIR=/opt/paperless_data/trash|" \
|
||||||
-e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/opt/paperless/static|" \
|
-e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/opt/paperless/static|" \
|
||||||
-e 's|#PAPERLESS_DBHOST=localhost|PAPERLESS_DBHOST=localhost|' \
|
-e 's|#PAPERLESS_DBHOST=localhost|PAPERLESS_DBHOST=localhost|' \
|
||||||
-e 's|#PAPERLESS_DBPORT=5432|PAPERLESS_DBPORT=5432|' \
|
-e 's|#PAPERLESS_DBPORT=5432|PAPERLESS_DBPORT=5432|' \
|
||||||
-e "s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$DB_NAME|" \
|
-e "s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$PG_DB_NAME|" \
|
||||||
-e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER|" \
|
-e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$PG_DB_USER|" \
|
||||||
-e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS|" \
|
-e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$PG_DB_PASS|" \
|
||||||
-e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" \
|
-e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" \
|
||||||
/opt/paperless/paperless.conf
|
/opt/paperless/paperless.conf
|
||||||
cd /opt/paperless/src
|
cd /opt/paperless/src
|
||||||
@@ -97,7 +87,7 @@ msg_info "Setting up admin Paperless-ngx User & Password"
|
|||||||
cat <<EOF | uv run -- python /opt/paperless/src/manage.py shell
|
cat <<EOF | uv run -- python /opt/paperless/src/manage.py shell
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
UserModel = get_user_model()
|
UserModel = get_user_model()
|
||||||
user = UserModel.objects.create_user('admin', password='$DB_PASS')
|
user = UserModel.objects.create_user('admin', password='$PG_DB_PASS')
|
||||||
user.is_superuser = True
|
user.is_superuser = True
|
||||||
user.is_staff = True
|
user.is_staff = True
|
||||||
user.save()
|
user.save()
|
||||||
@@ -108,8 +98,8 @@ msg_info "Installing Natural Language Toolkit (Patience)"
|
|||||||
cd /opt/paperless
|
cd /opt/paperless
|
||||||
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data snowball_data
|
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data snowball_data
|
||||||
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data stopwords
|
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data stopwords
|
||||||
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt_tab || \
|
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt_tab ||
|
||||||
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt
|
$STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt
|
||||||
for policy_file in /etc/ImageMagick-6/policy.xml /etc/ImageMagick-7/policy.xml; do
|
for policy_file in /etc/ImageMagick-6/policy.xml /etc/ImageMagick-7/policy.xml; do
|
||||||
if [[ -f "$policy_file" ]]; then
|
if [[ -f "$policy_file" ]]; then
|
||||||
sed -i -e 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' "$policy_file"
|
sed -i -e 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' "$policy_file"
|
||||||
@@ -186,11 +176,4 @@ fi
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
cleanup_lxc
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf /opt/paperless/docker
|
|
||||||
rm -rf /tmp/ghostscript*
|
|
||||||
$STD apt -y autoremove
|
|
||||||
$STD apt -y autoclean
|
|
||||||
$STD apt -y clean
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
|
|||||||
51
install/passbolt-install.sh
Normal file
51
install/passbolt-install.sh
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.passbolt.com/
|
||||||
|
|
||||||
|
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 \
|
||||||
|
apt-transport-https \
|
||||||
|
python3-certbot-nginx \
|
||||||
|
debconf-utils
|
||||||
|
msg_ok "Installed dependencies"
|
||||||
|
|
||||||
|
setup_mariadb
|
||||||
|
MARIADB_DB_NAME="passboltdb" MARIADB_DB_USER="passbolt" MARIADB_DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)" setup_mariadb_db
|
||||||
|
setup_deb822_repo \
|
||||||
|
"passbolt" \
|
||||||
|
"https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0x3D1A0346C8E1802F774AEF21DE8B853FC155581D" \
|
||||||
|
"https://download.passbolt.com/ce/debian" \
|
||||||
|
"buster" \
|
||||||
|
"stable"
|
||||||
|
create_self_signed_cert "passbolt"
|
||||||
|
|
||||||
|
msg_info "Setting up Passbolt (Patience)"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
IP_ADDR=$(hostname -I | awk '{print $1}')
|
||||||
|
echo passbolt-ce-server passbolt/mysql-configuration boolean true | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/mysql-passbolt-username string $MARIADB_DB_USER | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/mysql-passbolt-password password $MARIADB_DB_PASS | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/mysql-passbolt-password-repeat password $MARIADB_DB_PASS | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/mysql-passbolt-dbname string $MARIADB_DB_NAME | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/nginx-configuration boolean true | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/nginx-configuration-three-choices select manual | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/nginx-domain string $IP_ADDR | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/nginx-certificate-file string /etc/ssl/passbolt/passbolt.crt | debconf-set-selections
|
||||||
|
echo passbolt-ce-server passbolt/nginx-certificate-key-file string /etc/ssl/passbolt/passbolt.key | debconf-set-selections
|
||||||
|
$STD apt install -y --no-install-recommends passbolt-ce-server
|
||||||
|
msg_ok "Setup Passbolt"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -3117,7 +3117,8 @@ function setup_mariadb_db() {
|
|||||||
|
|
||||||
$STD mariadb -u root -e "FLUSH PRIVILEGES;"
|
$STD mariadb -u root -e "FLUSH PRIVILEGES;"
|
||||||
|
|
||||||
local CREDS_FILE="${MARIADB_DB_CREDS_FILE:-${HOME}/${APPLICATION}.creds}"
|
local app_name="${APPLICATION,,}"
|
||||||
|
local CREDS_FILE="${MARIADB_DB_CREDS_FILE:-${HOME}/${app_name}.creds}"
|
||||||
{
|
{
|
||||||
echo "MariaDB Credentials"
|
echo "MariaDB Credentials"
|
||||||
echo "Database: $MARIADB_DB_NAME"
|
echo "Database: $MARIADB_DB_NAME"
|
||||||
@@ -4035,7 +4036,8 @@ function setup_postgresql_db() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Save credentials
|
# Save credentials
|
||||||
local CREDS_FILE="${PG_DB_CREDS_FILE:-${HOME}/${APPLICATION}.creds}"
|
local app_name="${APPLICATION,,}"
|
||||||
|
local CREDS_FILE="${PG_DB_CREDS_FILE:-${HOME}/${app_name}.creds}"
|
||||||
{
|
{
|
||||||
echo "PostgreSQL Credentials"
|
echo "PostgreSQL Credentials"
|
||||||
echo "Database: $PG_DB_NAME"
|
echo "Database: $PG_DB_NAME"
|
||||||
|
|||||||
Reference in New Issue
Block a user