mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-19 10:19:27 -05:00
removed some stuff
This commit is contained in:
parent
e1ae068cda
commit
9187026c47
19
THANKS.md
19
THANKS.md
@ -1,19 +0,0 @@
|
|||||||
# Thanks for using Paperless!
|
|
||||||
|
|
||||||
Working on this project has been exhausting, but rewarding at the same time.
|
|
||||||
It's just wonderful that so many people are using this thing, and in so many
|
|
||||||
crazy ways.
|
|
||||||
|
|
||||||
This file is here for everyone to post their own stories about how you use this
|
|
||||||
code. It helps me to understand who's using it and why, and maybe to give
|
|
||||||
others an idea of how it might be used. It's based on a Twitter exchange
|
|
||||||
between [John Glanville](https://twitter.com/hexapodium) and
|
|
||||||
[Julia Evans](https://github.com/jvns) and later better defined [here](https://github.com/paulmolluzzo/thanks-md).
|
|
||||||
|
|
||||||
To contribute, simply issue a pull request that appends to this file something
|
|
||||||
like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
### Your Name
|
|
||||||
Some friendly message
|
|
||||||
```
|
|
44
docs/_static/lxc-install.svg
vendored
44
docs/_static/lxc-install.svg
vendored
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 1.9 MiB |
@ -1,158 +0,0 @@
|
|||||||
#!/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 "sudo apt-get update && sudo apt-get install -y wget"
|
|
||||||
# lxc exec paperless -- sh -c "wget https://raw.githubusercontent.com/the-paperless-project/paperless/master/docs/examples/lxc/lxc-install.sh && /bin/bash lxc-install.sh --email "
|
|
||||||
#
|
|
||||||
#
|
|
||||||
set +e
|
|
||||||
PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9+@%^{} | head -c20;echo;)
|
|
||||||
EMAIL=
|
|
||||||
|
|
||||||
function displayHelp() {
|
|
||||||
echo "available parameters:
|
|
||||||
-e <email> | --email <email>
|
|
||||||
-p <password> | --password <password>
|
|
||||||
"
|
|
||||||
}
|
|
||||||
|
|
||||||
POSITIONAL=()
|
|
||||||
while [[ $# -gt 0 ]]
|
|
||||||
do
|
|
||||||
key="$1"
|
|
||||||
i=$key
|
|
||||||
|
|
||||||
case $i in
|
|
||||||
-e|--email)
|
|
||||||
EMAIL="${2}"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-p|--password)
|
|
||||||
PASSWORD="${2}"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--default|-h|--help)
|
|
||||||
shift
|
|
||||||
displayHelp
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "argument: $i not recognized"
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
set -- "${POSITIONAL[@]}" # restore positional parameters
|
|
||||||
|
|
||||||
if [ -z $EMAIL ]; then
|
|
||||||
echo "missing email, try running with -h "
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
|
|
||||||
echo "Not running as root"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $(grep -c paperless /etc/passwd) -eq 0 ]; then
|
|
||||||
# Add paperless user with no password
|
|
||||||
adduser --disabled-password --gecos "" paperless
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $(grep -c ftpupload /etc/passwd) -eq 0 ]; then
|
|
||||||
# Add ftpupload
|
|
||||||
adduser --disabled-password --gecos "" ftpupload
|
|
||||||
echo "Set ftpupload password: "
|
|
||||||
#passwd ftpupload
|
|
||||||
#TODO: generate some password and allow parameter
|
|
||||||
echo "ftpupload:ftpuploadpassword" | chpasswd
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $(id -nG paperless | grep -Fcw ftpupload) -eq 0 ]; then
|
|
||||||
# Allow paperless group to access
|
|
||||||
adduser paperless ftpupload
|
|
||||||
chmod g+w /home/ftpupload
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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 git
|
|
||||||
|
|
||||||
# Needed for Apache
|
|
||||||
apt-get -y install apache2 libapache2-mod-wsgi-py3
|
|
||||||
|
|
||||||
if [ ! -f /etc/proftpd/proftpd.conf ]; then
|
|
||||||
# Install ftp server and make sure all uplaoded files are owned by paperless
|
|
||||||
apt-get -y install proftpd
|
|
||||||
fi
|
|
||||||
if [ $(grep -c paperless /etc/proftpd/proftpd.conf) -eq 0 ]; then
|
|
||||||
cat <<EOF >> /etc/proftpd/proftpd.conf
|
|
||||||
<Directory /home/ftpupload/>
|
|
||||||
UserOwner paperless
|
|
||||||
GroupOwner paperless
|
|
||||||
</Directory>
|
|
||||||
EOF
|
|
||||||
systemctl restart proftpd
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Get Paperless from git
|
|
||||||
su -c "cd /home/paperless ; git clone https://github.com/the-paperless-project/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/" /etc/paperless.conf
|
|
||||||
|
|
||||||
#Initialise the SQLite database
|
|
||||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py migrate" paperless
|
|
||||||
echo "if superuser doesn't exists, create one with login: paperless and password: ${PASSWORD}"
|
|
||||||
#Create a user for your Paperless instance
|
|
||||||
su -c "cd /home/paperless/paperless/src/ ; echo ./manage.py create_superuser_with_password --username paperless --email ${EMAIL} --password ${PASSWORD} --preserve" paperless
|
|
||||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py create_superuser_with_password --username paperless --email ${EMAIL} --password ${PASSWORD} --preserve" paperless
|
|
||||||
|
|
||||||
if [ ! -d /home/paperless/paperless/static ]; then
|
|
||||||
# 167 static files copied to '/home/paperless/paperless/static'.
|
|
||||||
su -c "cd /home/paperless/paperless/src/ ; ./manage.py collectstatic" paperless
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f /etc/apache2/sites-available/paperless.conf ]; then
|
|
||||||
# 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
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
if [ -f /etc/ImageMagick-6/policy.xml ]; then
|
|
||||||
mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout
|
|
||||||
fi
|
|
@ -1,18 +0,0 @@
|
|||||||
<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>
|
|
@ -58,7 +58,6 @@ debian or ubuntu server.
|
|||||||
.. _docker route: setup-installation-docker_
|
.. _docker route: setup-installation-docker_
|
||||||
.. _bare metal route: setup-installation-bare-metal_
|
.. _bare metal route: setup-installation-bare-metal_
|
||||||
.. _Docker Machine: https://docs.docker.com/machine/
|
.. _Docker Machine: https://docs.docker.com/machine/
|
||||||
.. _linux containers route: setup-installation-linux-containers_
|
|
||||||
|
|
||||||
.. _setup-installation-bare-metal:
|
.. _setup-installation-bare-metal:
|
||||||
|
|
||||||
@ -499,44 +498,3 @@ Docker daemon.
|
|||||||
|
|
||||||
.. _restart-policy: https://docs.docker.com/engine/reference/commandline/run/#restart-policies-restart
|
.. _restart-policy: https://docs.docker.com/engine/reference/commandline/run/#restart-policies-restart
|
||||||
|
|
||||||
|
|
||||||
.. _setup-installation-linux-containers:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
2. Lanch paperless container
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
$ lxc launch ubuntu: paperless
|
|
||||||
|
|
||||||
3. Run install script within container
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
$ lxc exec paperless -- sh -c "wget https://raw.githubusercontent.com/the-paperless-project/paperless/master/docs/examples/lxc/lxc-install.sh && /bin/bash lxc-install.sh --email"
|
|
||||||
|
|
||||||
The script will ask you for an ftpupload password.
|
|
||||||
As well as the super-user for paperless web front-end.
|
|
||||||
After around 10 mins, http://paperless.lan is ready and
|
|
||||||
ftp://paperless.lan with user: ftpupload
|
|
||||||
|
|
||||||
See the `Installation recording <_static/lxc-install.svg>`_.
|
|
||||||
|
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
from django.contrib.auth.management.commands import createsuperuser
|
|
||||||
from django.core.management import CommandError
|
|
||||||
|
|
||||||
|
|
||||||
class Command(createsuperuser.Command):
|
|
||||||
help = 'Crate a superuser, and allow password to be provided'
|
|
||||||
|
|
||||||
def add_arguments(self, parser):
|
|
||||||
super(Command, self).add_arguments(parser)
|
|
||||||
parser.add_argument(
|
|
||||||
'--password', dest='password', default=None,
|
|
||||||
help='Specifies the password for the superuser.',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--preserve', dest='preserve', default=False, action='store_true',
|
|
||||||
help='Exit normally if the user already exists.',
|
|
||||||
)
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
password = options.get('password')
|
|
||||||
username = options.get('username')
|
|
||||||
database = options.get('database')
|
|
||||||
|
|
||||||
if password and not username:
|
|
||||||
raise CommandError("--username is required if specifying --password")
|
|
||||||
|
|
||||||
if username and options.get('preserve'):
|
|
||||||
exists = self.UserModel._default_manager.db_manager(database).filter(username=username).exists()
|
|
||||||
if exists:
|
|
||||||
self.stdout.write("User exists, exiting normally due to --preserve")
|
|
||||||
return
|
|
||||||
|
|
||||||
super(Command, self).handle(*args, **options)
|
|
||||||
|
|
||||||
if password:
|
|
||||||
user = self.UserModel._default_manager.db_manager(database).get(username=username)
|
|
||||||
user.set_password(password)
|
|
||||||
user.save()
|
|
Loading…
x
Reference in New Issue
Block a user