How to Install Paperless-ngx on Alpine Linux Latest

Paperless-ngx is an open-source Document Management System that allows you to store, manage and organize digital documents in a convenient manner. In this tutorial, you will learn how to install Paperless-ngx on Alpine Linux Latest.

Prerequisites

Before you begin, you should have the following:

  • A server running Alpine Linux Latest.
  • A user account with sudo privileges.
  • Basic knowledge of the terminal/command line.

Step 1: Update the System

The first step is to update the system to the latest packages and patches. You can update the system by running the following command in the terminal:

sudo apk update && sudo apk upgrade

Step 2: Install Dependencies

Paperless-ngx requires certain dependencies to run smoothly. Install these dependencies by running the following command in the terminal:

sudo apk add build-base python3 python3-dev py3-pip libffi-dev libxml2-dev

Step 3: Install Postgresql and Create a Database

Paperless-ngx requires a PostgreSQL database to store and manage documents. To install PostgreSQL, run the following command in the terminal:

sudo apk add postgresql postgresql-client

Next, create a new PostgreSQL database by running the following command:

sudo -u postgres createdb paperlessng

Step 4: Install Paperless-ngx

You can now install Paperless-ngx by running the following command in the terminal:

sudo pip3 install paperless-ng

Step 5: Configure Paperless-ngx

Paperless-ngx requires some configuration before it can be used. You need to create a configuration file by running the following command in the terminal:

paperless config create

This will create a default configuration file paperless.conf in the directory /etc/paperless-ng. Open the file using your preferred text editor and make necessary changes.

The important configuration options to set are:

  • DATABASE_URL: The URL of the PostgreSQL database. Set it to postgres:///paperlessng.
  • MEDIA_ROOT: The directory where uploaded documents will be stored. Set it to /var/lib/paperless-ng/media/.

Step 6: Create a Systemd Unit File

To manage Paperless-ngx using systemd, you need to create a unit file /etc/systemd/system/paperless.service. Open the file using your preferred text editor and add the following lines:

[Unit]
Description=Paperless-ng

[Service]
EnvironmentFile=/etc/paperless-ng/paperless.conf
WorkingDirectory=/var/lib/paperless-ng/
ExecStart=/usr/bin/python3 -m paperless.server
User=paperless
Group=paperless

[Install]
WantedBy=multi-user.target

This unit file will ensure that Paperless-ngx starts automatically after boot and stays running.

Step 7: Create a User Account

Create a paperless user account to run Paperless-ngx by running the following command:

sudo adduser -D -H -G paperless -s /sbin/nologin paperless

Step 8: Start and Enable the Service

You can start and enable the Paperless-ngx service using the following commands:

sudo systemctl start paperless
sudo systemctl enable paperless

Conclusion

In this tutorial, you have learned how to install Paperless-ngx on Alpine Linux Latest. Once you have completed the steps outlined in this tutorial, you will be able to store, manage and organize your digital documents easily and efficiently.