mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 19:17:13 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
# source root directory of paperless
 | 
						|
PAPERLESS_ROOT=$(git rev-parse --show-toplevel)
 | 
						|
 | 
						|
# output directory
 | 
						|
PAPERLESS_DIST="$PAPERLESS_ROOT/dist"
 | 
						|
PAPERLESS_DIST_APP="$PAPERLESS_DIST/paperless-ng"
 | 
						|
 | 
						|
if [ -d "$PAPERLESS_DIST" ]
 | 
						|
then
 | 
						|
	echo "Removing $PAPERLESS_DIST"
 | 
						|
	rm "$PAPERLESS_DIST" -r
 | 
						|
fi
 | 
						|
 | 
						|
# setup dependencies.
 | 
						|
 | 
						|
cd "$PAPERLESS_ROOT"
 | 
						|
 | 
						|
pipenv clean
 | 
						|
pipenv install --dev
 | 
						|
 | 
						|
# test if the application works.
 | 
						|
 | 
						|
cd "$PAPERLESS_ROOT/src"
 | 
						|
pipenv run pytest --cov
 | 
						|
pipenv run pycodestyle
 | 
						|
 | 
						|
# make the documentation.
 | 
						|
 | 
						|
cd "$PAPERLESS_ROOT/docs"
 | 
						|
make clean html
 | 
						|
 | 
						|
# copy stuff into place
 | 
						|
 | 
						|
mkdir "$PAPERLESS_DIST"
 | 
						|
mkdir "$PAPERLESS_DIST_APP"
 | 
						|
mkdir "$PAPERLESS_DIST_APP/docker"
 | 
						|
 | 
						|
# the application itself
 | 
						|
 | 
						|
cp "$PAPERLESS_ROOT/.env" \
 | 
						|
  "$PAPERLESS_ROOT/.dockerignore" \
 | 
						|
	"$PAPERLESS_ROOT/CONTRIBUTING.md" \
 | 
						|
	"$PAPERLESS_ROOT/LICENSE" \
 | 
						|
	"$PAPERLESS_ROOT/Pipfile" \
 | 
						|
	"$PAPERLESS_ROOT/Pipfile.lock" \
 | 
						|
	"$PAPERLESS_ROOT/README.md" "$PAPERLESS_DIST_APP"
 | 
						|
 | 
						|
cp "$PAPERLESS_ROOT/paperless.conf.example" "$PAPERLESS_DIST_APP/paperless.conf"
 | 
						|
 | 
						|
# copy python source, templates and static files.
 | 
						|
cd "$PAPERLESS_ROOT"
 | 
						|
find src -wholename '*/templates/*' -o -wholename '*/static/*' -o -name '*.py' | cpio -pdm "$PAPERLESS_DIST_APP"
 | 
						|
 | 
						|
# build the front end.
 | 
						|
 | 
						|
cd "$PAPERLESS_ROOT/src-ui"
 | 
						|
ng build --prod --output-hashing none --sourceMap=false --output-path "$PAPERLESS_DIST_APP/src/documents/static/frontend"
 | 
						|
 | 
						|
# documentation
 | 
						|
cp "$PAPERLESS_ROOT/docs/_build/html/" "$PAPERLESS_DIST_APP/docs" -r
 | 
						|
 | 
						|
# docker files for building the image yourself
 | 
						|
cp "$PAPERLESS_ROOT/docker/local/"* "$PAPERLESS_DIST_APP"
 | 
						|
cp "$PAPERLESS_ROOT/docker/docker-compose.env" "$PAPERLESS_DIST_APP"
 | 
						|
 | 
						|
# docker files for pulling from docker hub
 | 
						|
cp "$PAPERLESS_ROOT/docker/hub/"* "$PAPERLESS_DIST"
 | 
						|
cp "$PAPERLESS_ROOT/docker/docker-compose.env" "$PAPERLESS_DIST"
 | 
						|
 | 
						|
# auxiliary files required for the docker image
 | 
						|
cp "$PAPERLESS_ROOT/docker/docker-entrypoint.sh" "$PAPERLESS_DIST_APP/docker/"
 | 
						|
cp "$PAPERLESS_ROOT/docker/gunicorn.conf.py" "$PAPERLESS_DIST_APP/docker/"
 | 
						|
cp "$PAPERLESS_ROOT/docker/imagemagick-policy.xml" "$PAPERLESS_DIST_APP/docker/"
 | 
						|
cp "$PAPERLESS_ROOT/docker/supervisord.conf" "$PAPERLESS_DIST_APP/docker/"
 | 
						|
 | 
						|
# try to make the docker build.
 | 
						|
 | 
						|
cd "$PAPERLESS_DIST_APP"
 | 
						|
 | 
						|
docker-compose build
 | 
						|
 | 
						|
# works. package the app!
 | 
						|
 | 
						|
cd "$PAPERLESS_DIST"
 | 
						|
 | 
						|
tar -cJf paperless-ng.tar.xz paperless-ng/
 |