@@ -44,46 +44,36 @@ $STD apt install -y \
4444msg_ok " Installed Dependencies"
4545
4646PG_VERSION=" 16" setup_postgresql
47+ PG_DB_NAME=" paperlessdb" PG_DB_USER=" paperless" setup_postgresql_db
4748PYTHON_VERSION=" 3.13" setup_uv
4849fetch_and_deploy_gh_release " paperless" " paperless-ngx/paperless-ngx" " prebuild" " latest" " /opt/paperless" " paperless*tar.xz"
4950
50- msg_info " Setting up PostgreSQL database"
51- DB_NAME=paperlessdb
52- DB_USER=paperless
53- DB_PASS=" $( openssl rand -base64 18 | cut -c1-13) "
54- SECRET_KEY=" $( head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32) "
55- $STD sudo -u postgres psql -c " CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS ';"
56- $STD sudo -u postgres psql -c " CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
57- $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
58- $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
59- $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET timezone TO 'UTC'"
60- {
61- echo " Paperless-ngx-Credentials"
62- echo " Paperless-ngx Database Name: $DB_NAME "
63- echo " Paperless-ngx Database User: $DB_USER "
64- echo " Paperless-ngx Database Password: $DB_PASS "
65- echo " Paperless-ngx Secret Key: $SECRET_KEY \n"
66- echo " Paperless-ngx WebUI User: admin"
67- echo " Paperless-ngx WebUI Password: $DB_PASS "
68- } >> ~/paperless-ngx.creds
69- msg_ok " Setup PostgreSQL database"
70-
7151msg_info " Setup Paperless-ngx"
7252cd /opt/paperless
53+ rm -rf /opt/paperless/docker
7354$STD uv sync --all-extras
7455curl -fsSL " https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
75- mkdir -p {consume,data,media,static}
56+ mkdir -p /opt/paperless_data/{consume,data,media,trash}
57+ mkdir -p /opt/paperless/static
58+ SECRET_KEY=" $( head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32) "
59+ {
60+ echo " "
61+ echo " Paperless-ngx Secret Key: $SECRET_KEY "
62+ echo " Paperless-ngx WebUI User: admin"
63+ echo " Paperless-ngx WebUI Password: $PG_DB_PASS "
64+ } >> ~/paperless-ngx.creds
7665sed -i \
7766 -e ' s|#PAPERLESS_REDIS=redis://localhost:6379|PAPERLESS_REDIS=redis://localhost:6379|' \
78- -e " s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume|" \
79- -e " s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless/data|" \
80- -e " s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless/media|" \
67+ -e " s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless_data/consume|" \
68+ -e " s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless_data/data|" \
69+ -e " s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless_data/media|" \
70+ -e " s|#PAPERLESS_EMPTY_TRASH_DIR=|PAPERLESS_EMPTY_TRASH_DIR=/opt/paperless_data/trash|" \
8171 -e " s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/opt/paperless/static|" \
8272 -e ' s|#PAPERLESS_DBHOST=localhost|PAPERLESS_DBHOST=localhost|' \
8373 -e ' s|#PAPERLESS_DBPORT=5432|PAPERLESS_DBPORT=5432|' \
84- -e " s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$DB_NAME |" \
85- -e " s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER |" \
86- -e " s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS |" \
74+ -e " s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$PG_DB_NAME |" \
75+ -e " s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$PG_DB_USER |" \
76+ -e " s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$PG_DB_PASS |" \
8777 -e " s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY |" \
8878 /opt/paperless/paperless.conf
8979cd /opt/paperless/src
@@ -97,7 +87,7 @@ msg_info "Setting up admin Paperless-ngx User & Password"
9787cat << EOF | uv run -- python /opt/paperless/src/manage.py shell
9888from django.contrib.auth import get_user_model
9989UserModel = get_user_model()
100- user = UserModel.objects.create_user('admin', password='$DB_PASS ')
90+ user = UserModel.objects.create_user('admin', password='$PG_DB_PASS ')
10191user.is_superuser = True
10292user.is_staff = True
10393user.save()
@@ -108,8 +98,8 @@ msg_info "Installing Natural Language Toolkit (Patience)"
10898cd /opt/paperless
10999$STD uv run python -m nltk.downloader -d /usr/share/nltk_data snowball_data
110100$STD uv run python -m nltk.downloader -d /usr/share/nltk_data stopwords
111- $STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt_tab || \
112- $STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt
101+ $STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt_tab ||
102+ $STD uv run python -m nltk.downloader -d /usr/share/nltk_data punkt
113103for policy_file in /etc/ImageMagick-6/policy.xml /etc/ImageMagick-7/policy.xml; do
114104 if [[ -f " $policy_file " ]]; then
115105 sed -i -e ' s/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' " $policy_file "
186176
187177motd_ssh
188178customize
189-
190- msg_info " Cleaning up"
191- rm -rf /opt/paperless/docker
192- rm -rf /tmp/ghostscript*
193- $STD apt -y autoremove
194- $STD apt -y autoclean
195- $STD apt -y clean
196- msg_ok " Cleaned"
179+ cleanup_lxc
0 commit comments