This repository has been archived by the owner on Feb 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 353
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
39 changed files
with
1,946 additions
and
405 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Docker Hub test 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,13 @@ | ||
FROM alpine:3.8 | ||
FROM alpine:3.11 | ||
|
||
LABEL maintainer="The Paperless Project https://github.com/the-paperless-project/paperless" \ | ||
contributors="Guy Addadi <[email protected]>, Pit Kleyersburg <[email protected]>, \ | ||
Sven Fischer <[email protected]>" | ||
|
||
# Copy Pipfiles file and init script | ||
# Copy Pipfiles file, init script and gunicorn.conf | ||
COPY Pipfile* /usr/src/paperless/ | ||
COPY scripts/docker-entrypoint.sh /sbin/docker-entrypoint.sh | ||
COPY scripts/gunicorn.conf /usr/src/paperless/ | ||
|
||
# Set export and consumption directories | ||
ENV PAPERLESS_EXPORT_DIR=/export \ | ||
|
@@ -26,6 +27,7 @@ RUN apk add --no-cache \ | |
shadow \ | ||
sudo \ | ||
tesseract-ocr \ | ||
tzdata \ | ||
unpaper && \ | ||
apk add --no-cache --virtual .build-dependencies \ | ||
g++ \ | ||
|
@@ -51,6 +53,9 @@ RUN apk add --no-cache \ | |
adduser -D -u 1000 -G paperless -h /usr/src/paperless paperless && \ | ||
chown -Rh paperless:paperless /usr/src/paperless && \ | ||
mkdir -p $PAPERLESS_EXPORT_DIR && \ | ||
# Avoid setrlimit warnings | ||
# See: https://gitlab.alpinelinux.org/alpine/aports/issues/11122 | ||
echo 'Set disable_coredump false' >> /etc/sudo.conf && \ | ||
# Setup entrypoint | ||
chmod 755 /sbin/docker-entrypoint.sh | ||
|
||
|
@@ -65,3 +70,5 @@ COPY src/ /usr/src/paperless/src/ | |
COPY data/ /usr/src/paperless/data/ | ||
COPY media/ /usr/src/paperless/media/ | ||
|
||
# Collect static files | ||
RUN sudo -HEu paperless /usr/src/paperless/src/manage.py collectstatic --clear --no-input |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
#!/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.