This setup process will be very similar to the setup process for PaperlessNGX on my proxmox box.

We have a 1 terabyte SSD in the doorbell computer

I downloaded oracle’s virtualbox tool, and used it to create a virtual machine.

I gave it a debian ISO, and a 900gb virtual disk on that 1tb drive. I also gave it 4096mb of ram.

I then went through the debian install process, creating a user ( fcc ) and giving it a password.

It runs an ssh server, so you remote into the fcc user.

First, i installed sudo:

su
apt install sudo 

then I added the fcc user to the sudoers file

vi /etc/sudoers

I added a line which says:

fcc ALL=(ALL:ALL) ALL

Then, I installed docker:

sudo apt-get update
sudo apt-get install ca-certificates curl -y 
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
 
# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo docker run hello-world

then i fixed up permissions so the fcc user could use docker

sudo groupadd docker
sudo usermod -aG docker $USER
exit 

you’ll have to log back in after, in order for your permissions to be reconsidered by the shell.

so when you say

docker ps

you shouldnt get an error about permissions, you should just get a blank list.

I then used the paperless ngx easy install script

bash -c "$(curl --location --silent --show-error https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"

I left the url box blank, I should be able to change the url in the docker compose later on though

I ran on port 8000

US/Eastern timezone

postgres for the database

I enabled apache tika

ocr language english

User id 1000

group id 1000

target folder (config files) : /home/fcc/paperless-ngx

consume folder ( throw new pdfs in here ): /home/fcc/paperless-ngx/consume

media folder ( my pdfs should be here ) : /home/fcc/paperless-ngx/media

data folder ( search index and stuff ) : /home/fcc/paperless-ngx/index

database folder ( where database stores data ) : /home/fcc/paperless-ngx/database

paperless username: fcc email: fcc@localhost

I also made the virtualbox vm run on startup by:

opening up task scheduler make new folder “VMs” right click folder create task named task run whether user is logged in or not actions new action: start program program / Script: “C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” arguments: startvm paperlessvm —type headless trigger new system start ok done

then i rebooted computer to make sure that worked.

It started doing text to speech, no clue why. I disabled audio in the virtualbox settings for the vm though and that stopped it.

I also installed tailscale and set the key to never expire, just by adding a new linux computer on the tailscale ui

Then I configured unattended upgrades for debian

sudo apt update && sudo apt upgrade
sudo apt install unattended-upgrades
sudo apt install apt-config-auto-update
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades

made sure these lines are uncommented:

Unattended-Upgrade::Mail "root"; 
"origin=Debian,codename=${distro_codename}-updates";
"origin=Debian,codename=${distro_codename}-proposed-updates";
"origin=Debian,codename=${distro_codename},label=Debian";     "origin=Debian,codename=${distro_codename},label=Debian-Security";
"origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

then i ran:

sudo dpkg-reconfigure --priority=low unattended-upgrades

and said yes.

I also grabbed a few utilities that I think every server I use should just have:

  • btop
  • helix ( my preferred text editor ) ( installed via flatpak ) ( aliased to hx in bashrc )
  • tmux

I then began setup of samba, so that people could upload videos to the computer, and the scanner could upload documents straight to paperless without needing the UI.

sudo apt install samba
sudo vi /etc/samba/smb.conf

in that config file I need to make a share

#======================= Share Definitions =======================

[docs]
   path = /home/fcc/paperless-ngx/media/documents/
   valid users = fcc
   force user = fcc
   read only = no
   browseable = yes
   force create mode 0775
   force directory mode 2775
   create mask 0775
   directory mask 2775

then, set a password for the smb share, and restart the smb service

sudo smbpasswd -a fcc
sudo systemctl restart smbd

now, go to a windows computer, and add in the share by going to file explorer right click on network map network drive folder: \ \ theipofthesmbserver\docs check “connect using different credentials” credentials are username fcc password the password i set finish

a very similar process can be done on macos.

I then copied that same docs configuration, and used it for videos

[videos]
   path = /home/fcc/Videos
   valid users = fcc
   force user = fcc
   read only = no
   browseable = yes
   force create mode 0775
   force directory mode 2775
   create mask 0775
   directory mask 2775

you connect to it the same way, but with ‘videos’ instead of ‘docs’

I then did that same configuration, but with the paperless ngx consume folder.

[consume]
   path = /home/fcc/paperless-ngx/consume
   valid users = fcc
   force user = fcc
   read only = no
   browseable = yes
   force create mode 0775
   force directory mode 2775
   create mask 0775
   directory mask 2775

the consume folder is where paperless-ngx takes in new files, so if you wish to upload to paperless in an automated fashion, uploading to that folder is how you would do it.

I then setup uptime-kuma, and linked it to a discord webhook, so that I get notified if paperless ever goes down. I also setup watchtower, so that paperless automatically updates.

todo:

  • domain
      • cf tunnel
        • might want authentik?
        • if i want authentik that’s like a whole thing…
        • might just do google account login oidc ?
  • uptime monitor for wud and for paperless to know when stuff breaks
    • could do uptime kuma
    • could do changedetection.io
  • email address which stores pdf files of the thing
  • idrive backups