I have Paperless-ngx running as a Docker stack in Portainer. Although I tried to move away from Portainer and run directly from my WSL environment there are problems.

Option 1: Run Paperless-ngx environment in WSL, using native docker volume

  • Pros
    • Base environment with no need for Portainer
    • Can create docker-compose.yml files and track changes with Github
    • Locations are mapped /mnt/s/…
  • Cons
    • PGDATA in a Postgres database must be a volume
    • Backing up requires a backup of the whole WSL environment and that feels iffy at best as a reliable solution

Option 2: Run Paperless-ngx environment in WSL, and store files in my home directory

  • Pros
    • Base environment with no need for Portainer
    • Can create docker-compose.yml files and track changes with Github
    • Locations are mapped /mnt/s/…
  • Cons
    • PGDATA must be owned by Postgres user so I can’t access them easily
    • Backing up requires a backup of the whole WSL environment and that feels iffy at best as a reliable solution

I had decided to stop using Portainer within the Windows Docker graphical interface Docker.desktop since there was little reason to overlay an extension over what was effectively identical base functionality. I spent a couple of hours trying to get this to work and successfully migrated my media-server stack. Paperless was causing problems due to the database. Then I remembered I my first trial of Paperless in the morning had worked just in exactly the same way it wasn’t failing above.

Option 3: Run Paperless-ngx via Portainer

  • Pros
    • Locations are mapped S:/… allowing me to store them anywhere in Windows
    • Backup is easy as database is stored in same root folder as documents
    • Successfully running docker stop db and docker start db via Windows Task Scheduler to ensure backup has integrity
  • Cons
    • Manual sync of changes to docker-composer.yml