mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
scripts/lxc into docs/examples/lxc/ and assumption noted
This commit is contained in:
86
docs/examples/lxc/lxc-install.sh
Normal file
86
docs/examples/lxc/lxc-install.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Bash script to install paperless in lxc containter
|
||||
# paperless.lan
|
||||
#
|
||||
# Will set-up paperless, apache2 and proftpd
|
||||
#
|
||||
# lxc launch ubuntu: paperless
|
||||
# lxc exec paperless -- sh -c "wget https://raw.githubusercontent.com/danielquinn/paperless/master/scripts/lxc/lxc-install.sh && /bin/bash lxc-install.sh"
|
||||
#
|
||||
#
|
||||
|
||||
# Add paperless user with no password
|
||||
adduser --disabled-password --gecos "" paperless
|
||||
# Add ftpupload
|
||||
adduser --disabled-password --gecos "" ftpupload
|
||||
echo "Set ftpupload password: "
|
||||
passwd ftpupload
|
||||
# Allow paperless group to access
|
||||
adduser paperless ftpupload
|
||||
chmod g+w /home/ftpupload
|
||||
|
||||
# Get apt up to date
|
||||
apt-get update
|
||||
|
||||
# Needed for plain Paperless
|
||||
apt-get -y install unpaper gnupg libpoppler-cpp-dev python3-pyocr tesseract-ocr imagemagick optipng
|
||||
|
||||
# Needed for Apache
|
||||
apt-get -y install apache2 libapache2-mod-wsgi-py3
|
||||
|
||||
# Install ftp server and make sure all uplaoded files are owned by paperless
|
||||
apt-get -y install proftpd
|
||||
cat <<EOF >> /etc/proftpd/proftpd.conf
|
||||
<Directory /home/ftpupload/>
|
||||
UserOwner paperless
|
||||
GroupOwner paperless
|
||||
</Directory>
|
||||
EOF
|
||||
systemctl restart proftpd
|
||||
|
||||
|
||||
#Get Paperless from git
|
||||
su -c "cd /home/paperless ; git clone https://github.com/danielquinn/paperless" paperless
|
||||
|
||||
# Install Pip Requirements
|
||||
apt-get -y install python3-pip python3-venv
|
||||
cd /home/paperless/paperless
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
# Take paperless.conf.example and set consumuption dir (ftp dir)
|
||||
sed -e '/PAPERLESS_CONSUMPTION_DIR=/s/=.*/=\"\/home\/ftpupload\/\"/' \
|
||||
/home/paperless/paperless/paperless.conf.example >/etc/paperless.conf
|
||||
|
||||
# Update /etc/paperless.conf with PAPERLESS_SECRET_KEY
|
||||
SECRET=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo)
|
||||
sed -i "s/#PAPERLESS_SECRET_KEY.*/PAPERLESS_SECRET_KEY=$SECRET/g" /etc/paperless.conf
|
||||
|
||||
#Initialise the SQLite database
|
||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py migrate" paperless
|
||||
#Create a user for your Paperless instance
|
||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py createsuperuser" paperless
|
||||
# 167 static files copied to '/home/paperless/paperless/static'.
|
||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py collectstatic" paperless
|
||||
|
||||
# Set-up apache
|
||||
cp /home/paperless/paperless/docs/examples/lxc/paperless.conf /etc/apache2/sites-available/
|
||||
a2dissite 000-default.conf
|
||||
a2ensite paperless.conf
|
||||
systemctl reload apache2
|
||||
|
||||
sed -e "s/home\/paperless\/project\/virtualenv\/bin\/python/usr\/bin\/python3/" \
|
||||
/home/paperless/paperless/scripts/paperless-consumer.service \
|
||||
>/etc/systemd/system/paperless-consumer.service
|
||||
|
||||
sed -i "s/\/home\/paperless\/project\/src\/manage.py/\/home\/paperless\/paperless\/src\/manage.py/" \
|
||||
/etc/systemd/system/paperless-consumer.service
|
||||
|
||||
|
||||
systemctl enable paperless-consumer
|
||||
systemctl start paperless-consumer
|
||||
|
||||
# convert-im6.q16: not authorized
|
||||
# Security risk ?
|
||||
# https://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453
|
||||
mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout
|
18
docs/examples/lxc/paperless.conf
Normal file
18
docs/examples/lxc/paperless.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName paperless.lan
|
||||
|
||||
Alias /static/ /home/paperless/paperless/static/
|
||||
<Directory /home/paperless/paperless/static>
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
WSGIScriptAlias / /home/paperless/paperless/src/paperless/wsgi.py
|
||||
WSGIDaemonProcess paperless.lan user=paperless group=paperless threads=5 python-path=/home/paperless/paperless/src
|
||||
WSGIProcessGroup paperless.lan
|
||||
|
||||
<Directory /home/paperless/paperless/src/paperless>
|
||||
<Files wsgi.py>
|
||||
Require all granted
|
||||
</Files>
|
||||
</Directory>
|
||||
</VirtualHost>
|
@@ -43,7 +43,7 @@ You can go multiple routes with setting up and running Paperless:
|
||||
|
||||
* The `bare metal route`_
|
||||
* The `docker route`_
|
||||
* The `linux containers route`_
|
||||
* A suggested `linux containers route`_
|
||||
|
||||
|
||||
The `docker route`_ is quick & easy.
|
||||
@@ -51,6 +51,10 @@ The `docker route`_ is quick & easy.
|
||||
The `bare metal route`_ is a bit more complicated to setup but makes it easier
|
||||
should you want to contribute some code back.
|
||||
|
||||
The `linux containers route`_ is quick, but makes alot of assumptions on the
|
||||
set-up, on the other hand the script could be used to install on a base
|
||||
debian or ubuntu server.
|
||||
|
||||
.. _docker route: setup-installation-docker_
|
||||
.. _bare metal route: setup-installation-bare-metal_
|
||||
.. _Docker Machine: https://docs.docker.com/machine/
|
||||
@@ -489,16 +493,24 @@ Docker daemon.
|
||||
|
||||
.. _setup-installation-linux-containers:
|
||||
|
||||
Linux Container Method
|
||||
++++++++++++++++++++++
|
||||
Suggested way for Linux Container Method
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
This method uses some rigid assumptions, for the best set-up:-
|
||||
|
||||
* Ubuntu lts as the container
|
||||
* Apache as the webserver
|
||||
* proftpd as ftp server
|
||||
* ftpupload as the ftp user
|
||||
* paperless as the main user for website
|
||||
* http://paperless.lan is the desired lan url
|
||||
* LXC set to give ip addresses on your lan
|
||||
|
||||
This could also be used as an install on a base debain/ubuntu server,
|
||||
if the above assumptions are acceptable.
|
||||
|
||||
1. Install lxc
|
||||
|
||||
.. caution::
|
||||
|
||||
This guide assumes that you use lxc on a ubuntu host, with
|
||||
networking set-up to get ip addresses on your lan.
|
||||
However, if this is set-up only two commands are needed.
|
||||
|
||||
2. Lanch paperless container
|
||||
|
||||
@@ -510,7 +522,7 @@ Linux Container Method
|
||||
|
||||
.. code:: bash
|
||||
|
||||
$ lxc exec paperless -- sh -c "wget https://raw.githubusercontent.com/danielquinn/paperless/master/scripts/lxc/lxc-install.sh && /bin/bash lxc-install.sh"
|
||||
$ lxc exec paperless -- sh -c "wget https://raw.githubusercontent.com/danielquinn/paperless/master/docs/examples/lxc/lxc-install.sh && /bin/bash lxc-install.sh"
|
||||
|
||||
The script will ask you for an ftpupload password.
|
||||
As well as the super-user for paperless web front-end.
|
||||
|
Reference in New Issue
Block a user