NS8-Paperless NGX App

I Decided to take a Short at building A Nethserve Module.
the beginner Module is for Paperless NGX
Paperless-ngx

the initial Module Repo is available on compgeniuses/ns8-paperless-ngx: NEthserver 8 paperless-ngx Module (github.com)

The considerations are.

  1. Build and Intergrated Module with Tika and gotenberg
  2. Build a Standard version without the two components
  3. Build a Module for the 2 components to be installed as separate module, for whoever want to integrate the same into paperless ng.

Implementing the 2 in the same Module seems abut cumbersome for now, but hacking it through.

Mobile App Available as well: GitHub - astubenbord/paperless-mobile: An (almost) fully fledged mobile paperless client.

9 Likes

HI Martin, this is a great present :gift:

BTW, it doesn’t look a “beginner” case study!

On the contrary, I’d go with option 1. The resulting module is bigger but its dependencies management are really easier from both development and administration perspective.

2 Likes

Well, i have gotten a lot of learnings on how modules on NS8, turns out it isn’t as hard to make NS8 Module as i had initially thought, so long as you know what goes where, and how it interacts with the rest.

@stephdl has helped alot, especially in pointing out new concepts i did not know exists,

like

--label="org.nethserver.tcp-ports-demand=3" \

and passing over the ports to traefik

ports = os.environ['TCP_PORTS'].split(',')
agent.set_env('PAPERLESS_TCP_PORT', ports[0])
agent.set_env('TIKA_TCP_PORT', ports[1])
agent.set_env('GOTENBERG_TCP_PORT', ports[2])

# Make sure everything is saved inside the environment file
# just before starting systemd unit
agent.dump_env()

# Find default traefik instance for current node
default_traefik_id = agent.resolve_agent_id('traefik@node')
if default_traefik_id is None:
    sys.exit(2)

# Configure traefik virtual host
response = agent.tasks.run(
    agent_id=default_traefik_id,
    action='set-route',
    data={
        'instance': os.environ['MODULE_ID'],
        'url': f'http://127.0.0.1:{ports[0]}',
        'host': os.environ['TRAEFIK_HOST'],
        'lets_encrypt': le,
        'http2https': h2hs
    },
)

I am still Having issues with this part, but hopefully to resolve it soon,

the previous, non complicated version worked, i wish i had setup a separate branch, but well, lessons learnt.

2 Likes

Like we shared sometimes inside a pod you do not need to open a configuration to traefik, so your two other services can run inside a pod if paperlessngx needs only to contact them internally like mariadb is not opened to the external for roundcubemail, we only use 127.0.0.1:3306 that is strictly internal to the pod, no external access.

maybe you could do this, if you think a sysadmin must contact your two other services hence you need to make a specific module for each services mostly if they are optionnal

I would go for : Build and Intergrated Module with Tika and gotenberg but inside a pod

2 Likes

As of now, i dont know any other prodcut or solution that requires gotenberg and tika, so sure they can be implemented to be inward facing,

as time goes buy, if there is other use cases for the two services, then they can also be exposed to outside ports, i think within the same hostname as paperless would still be fine.

Let me work on the necessary Mods and see where it takes me.

2 Likes

you know where to ping us if you need helps or inputs

Like davidep stated you could iterate step by step because it is your first hand inside NS8 development, so further services could be added later if they are optionals

either externally or either running inside the pod

2 Likes

After About 20 Trials, We finally Have some Success.

Defining Hostname works great

[root@ns8 ~]# api-cli run module/paperlessngx20/configure-module --data '{"host": "paper.bybiz.link"}'
Warning: using user "cluster" credentials from the environment
<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op
_acontrol_task request attempt failed (WS reached EOF while waiting for module/traefik1/task/a925a513-9695-4dac-ad00-135ada352a55). Retrying...
Created symlink /home/paperlessngx20/.config/systemd/user/default.target.wants/paperlessngx-pod.service → /home/paperlessngx20/.config/systemd/user/paperlessngx-pod.service.
""

login Page works fine:
image

Logging into the app currently presents a CSRF error
image

I suspect its because the variable below has not yet been defined for the app

PAPERLESS_URL

Based on this link here: Configuration - Paperless-ngx

i think it is Very necessary to define that one as well as Allowed hosts and Trusted Origins, for preventing Cross Site Request forgery and XSRF

LEt me Figure that one Out.

After Adding all relevant values, and updating the env configs, i am still unable to resolve the CSRF page issue after login

api-cli run module/paperlessngx22/configure-module --data '{"host": "paperless.bybiz.link"}'
lets_encrypt
api-cli run module/paperlessngx26/configure-module --data '{"host": "paperless.bybiz.link","PAPERLESS_URL": "https://paperless.bybiz.link","PAPERLESS_ALLOWED_HOSTS": "paperless.bybiz.link","PAPERLESS_CSRF_TRUSTED_ORIGINS": "paperless.bybiz.link","PAPERLESS_CORS_ALLOWED_HOSTS": "paperless.bybiz.link","TRAEFIK_LETS_ENCRYPT": "True"}'

I have all the configs together as shown because, i have noticed,

if you run api-cli run module/paperlessngx22/configure-module --data the first time, it works great, but running it consecutive times, yields failure, i am not sure why this is the case, or if there is supposed to be a second command for subsequent times.

[root@ns8 ~]# api-cli run module/paperlessngx22/configure-module --data '{"host": "paperless.bybiz.link"}'
lets_encrypt
api-cli run module/paperlessngx26/configure-module --data '{"host": "paperless.bybiz.link","PAPERLESS_URL": "https://paperless.bybiz.link","PAPERLESS_ALLOWED_HOSTS": "paperless.bybiz.link","PAPERLESS_CSRF_TRUSTED_ORIGINS": "paperless.bybiz.link","PAPERLESS_CORS_ALLOWED_HOSTS": "paperless.bybiz.link","TRAEFIK_LETS_ENCRYPT": "True"}'
Warning: using user "cluster" credentials from the environment
TaskSubmissionCheckFailed: Client "module/paperlessngx22" was not found
Exception ignored in: <function StreamWriter.__del__ at 0x7f93f4a860c0>
Traceback (most recent call last):
  File "/usr/lib64/python3.11/asyncio/streams.py", line 396, in __del__
    self.close()
  File "/usr/lib64/python3.11/asyncio/streams.py", line 344, in close
    return self._transport.close()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/asyncio/selector_events.py", line 860, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "/usr/lib64/python3.11/asyncio/base_events.py", line 761, in call_soon
    self._check_closed()
  File "/usr/lib64/python3.11/asyncio/base_events.py", line 519, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
-bash: lets_encrypt: command not found
Warning: using user "cluster" credentials from the environment
<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op
Created symlink /home/paperlessngx26/.config/systemd/user/default.target.wants/paperlessngx-pod.service → /home/paperlessngx26/.config/systemd/user/paperlessngx-pod.service.
""
[root@ns8 ~]# api-cli run module/paperlessngx26/configure-module --data '{"host": "paperless.bybiz.link","PAPERLESS_URL": "https://paperless.bybiz.link","PAPERLESS_ALLOWED_HOSTS": "paperless.bybiz.link","PAPERLESS_CSRF_TRUSTED_ORIGINS": "paperless.bybiz.link","PAPERLESS_CORS_ALLOWED_HOSTS": "paperless.bybiz.link","TRAEFIK_LETS_ENCRYPT": "True"}'
Warning: using user "cluster" credentials from the environment
<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op
""

<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op

this is the main message when you try to run the command a second time to change or update the values, after first time

2 Likes

How Can i define this to automatically get the configured host in the module

config["PAPERLESS_URL"] = os.getenv("PAPERLESS_URL","")

1 Like

Can tou reformulate what you want to do and show us where you think this code is needed in your module


Why you invocate two modules at the same times

Paperlessngx26 and paperlessngx22

I do not understand

1 Like

Paperlessngx22 has been removed or never installed

1 Like

Congrats to you and your team!

1 Like

apologies, i was copying this from the notepad i use, and copied two lines from it.

so running this command a second time, results in this error,

but the first time it is properly saved

[root@ns8 ~]# api-cli run module/paperlessngx26/configure-module --data '{"host": "paperless.bybiz.link","PAPERLESS_URL": "https://paperless.bybiz.link","PAPERLESS_ALLOWED_HOSTS": "paperless.bybiz.link","PAPERLESS_CSRF_TRUSTED_ORIGINS": "paperless.bybiz.link","PAPERLESS_CORS_ALLOWED_HOSTS": "paperless.bybiz.link","TRAEFIK_LETS_ENCRYPT": "True"}'
Warning: using user "cluster" credentials from the environment
<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op
""

1 Like

BAsed on these values here:

[paperlessngx27@ns8 ~]$ runagent env
SHELL=/bin/bash
HISTCONTROL=ignoredups
HISTSIZE=1000
HOSTNAME=ns8
PWD=/home/paperlessngx27
LOGNAME=paperlessngx27
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/home/paperlessngx27
LANG=en_US.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:
SSH_CONNECTION=127.0.0.1 39392 127.0.0.1 22
XDG_SESSION_CLASS=user
TERM=xterm
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=paperlessngx27
SHLVL=1
XDG_SESSION_ID=18
XDG_RUNTIME_DIR=/run/user/1014
SSH_CLIENT=127.0.0.1 39392 22
DEBUGINFOD_URLS=https://debuginfod.centos.org/
which_declare=declare -f
PATH=/home/paperlessngx27/.config/bin:/usr/local/agent/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/agent/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1014/bus
MAIL=/var/spool/mail/paperlessngx27
SSH_TTY=/dev/pts/1
BASH_FUNC_which%%=() {  ( alias;
 eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
_=/usr/local/bin/runagent
REGISTRY_AUTH_FILE=/etc/nethserver/registry.json
AGENT_BASEACTIONS_DIR=/usr/local/agent/actions
REDIS_ADDRESS=cluster-leader:6379
REDIS_REPLICA_ADDRESS=127.0.0.1:6379
REDIS_USER=module/paperlessngx27
REDIS_PASSWORD=2c5cbbb0-e38b-4ce8-9a7f-73164eb7a39b
PYTHONPATH=/home/paperlessngx27/.config/pypkg
GOTENBERG_IMAGE=docker.io/gotenberg/gotenberg:7.10
IMAGE_DIGEST=sha256:197210411f3f04ce8287178e6a2e78d1670251947e4866e82442a37502aabc02
IMAGE_ID=88fb4cf59e58d9fbfdaeeb3d41d31de9a62c56108eec4b8a3ef1f42427fba290
IMAGE_REOPODIGEST=ghcr.io/compgeniuses/paperlessngx@sha256:197210411f3f04ce8287178e6a2e78d1670251947e4866e82442a37502aabc02
IMAGE_URL=ghcr.io/compgeniuses/paperlessngx:latest
MODULE_ID=paperlessngx27
MODULE_UUID=ac6b5aed-1c3b-49ad-bdfc-98f8b148deb8
NODE_ID=1
PAPERLESS_ADMIN_MAIL=
PAPERLESS_ADMIN_PASSWORD=P@perle5$
PAPERLESS_ADMIN_USER=paperlessadmin
PAPERLESS_ALLOWED_HOSTS=paperless.bybiz.link,localhost
PAPERLESS_COOKIE_PREFIX=paperlessngx
PAPERLESS_CORS_ALLOWED_HOSTS=https://paperless.bybiz.link,https://localhost:3000
PAPERLESS_CSRF_TRUSTED_ORIGINS=https://paperless.bybiz.link
PAPERLESS_NGX_IMAGE=docker.io/paperlessngx/paperless-ngx:2.1.3
PAPERLESS_NGX_NAME=paperless-ngx
PAPERLESS_OCR_LANGUAGE=eng
PAPERLESS_SECRET_KEY=hdswihrdvysjbjiiubajbcjhidfnskjbcjhvikjsbjhk
PAPERLESS_TIKA_ENABLED=
PAPERLESS_TIKA_ENDPOINT=
PAPERLESS_TIKA_GOTENBERG_ENDPOINT=
PAPERLESS_TIME_ZONE=America/Los_Angeles
PAPERLESS_URL=https://paperless.bybiz.link
PHP_ENABLE_OPCACHE=1
PHP_MEMORY_LIMIT=512M
POSTGRES_IMAGE=docker.io/library/postgres:15
REDIS_IMAGE=docker.io/library/redis:7
TCP_PORT=20144
TCP_PORTS=20144,20145,20146
TCP_PORTS_RANGE=20144-20146
TIKA_IMAGE=ghcr.io/paperless-ngx/tika:latest
TRAEFIK_HOST=paperless.bybiz.link
TRAEFIK_HTTP2HTTPS=True
TRAEFIK_LETS_ENCRYPT=False
gotenberg=
tika=
AGENT_INSTALL_DIR=/home/paperlessngx27/.config
AGENT_STATE_DIR=/home/paperlessngx27/.config/state
AGENT_ID=module/paperlessngx27
[paperlessngx27@ns8 ~]$

e believe that all parameters have been accounted for, and absd on this thread here:

Can’t log in due to CSRF verification failed. · Issue #710 · paperless-ngx/paperless-ngx (github.com)

and this one

[BUG] Forbidden (403) CSRF verification failed. · Issue #670 · paperless-ngx/paperless-ngx (github.com)

if these values have been added, then we should no have a CSRF error

PAPERLESS_CORS_ALLOWED_HOSTS = https://paperlessdev.site.com,http://localhost:28000,http://192.168.1.10:28000
PAPERLESS_ALLOWED_HOSTS = paperlessdev.site.com,localhost,192.168.1.10
PAPERLESS_CSRF_TRUSTED_ORIGINS = https://paperlessdev.site.com

I think maybe these settings are also required because we are using it behind a reverse proxy

Settings | Django documentation | Django (djangoproject.com)

1 Like

how does one restart an ns8 module

No problem to add it if you think it solves your issue however for the privat IP it could complicate your issue.

Some tweaks to try

Run paperless without TLS because it is under traefik and it is the role of traefik to handle certificates issue and negociation. Buy maybe it is not possible from paperless point of view

Try to replace the private IP by 127.0.0.1 because the only things it should see is the localhost
but maybe like you stated it is a paperless issue and it is not workable
but a hostname and 127.0.0.1 are predicatble and a private IP never

I can help on code tweaks of course but I have no experiences with this tools

Nice jobs martin

it is getting more complicated than initally anticipated,

I am supposed to define this

PAPERLESS_PROXY_SSL_HEADER=<json-list>

Configures the Django setting SECURE_PROXY_SSL_HEADER which may be needed for hosting behind a proxy. The two values in the list will form the tuple of HTTP header/value expected by Django, eg '["HTTP_X_FORWARDED_PROTO", "https"]'.

Defaults to None

and that’s a Json List

i have also never used this tool before, i just saw how well it will help on documents

and someone like @danb35 might be interested in using it for digitizing his practise documents :wink:

After installing the module, and Defining the following parameters

api-cli run module/paperlessngx33/configure-module --data '{"host": "paper.bybiz.link","PAPERLESS_URL": "https://paper.bybiz.link","PAPERLESS_ALLOWED_HOSTS": "paper.bybiz.link,localhost,127.0.0.1","PAPERLESS_CSRF_TRUSTED_ORIGINS": "https://paper.bybiz.link","PAPERLESS_CORS_ALLOWED_HOSTS": "https://paper.bybiz.link,https://localhost:3000","PAPERLESS_USE_X_FORWARD_HOST": "True","PAPERLESS_PROXY_SSL_HEADER": ["HTTP_X_FORWARDED_PROTO", "https"]}'

we now have the following values configured

[paperlessngx33@ns8 ~]$ runagent env
SHELL=/bin/bash
HISTCONTROL=ignoredups
HISTSIZE=1000
HOSTNAME=ns8
PWD=/home/paperlessngx33
LOGNAME=paperlessngx33
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/home/paperlessngx33
LANG=en_US.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:
SSH_CONNECTION=127.0.0.1 60498 127.0.0.1 22
XDG_SESSION_CLASS=user
TERM=xterm
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=paperlessngx33
SHLVL=1
XDG_SESSION_ID=34
XDG_RUNTIME_DIR=/run/user/1014
SSH_CLIENT=127.0.0.1 60498 22
DEBUGINFOD_URLS=https://debuginfod.centos.org/
which_declare=declare -f
PATH=/home/paperlessngx33/.config/bin:/usr/local/agent/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/agent/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1014/bus
MAIL=/var/spool/mail/paperlessngx33
SSH_TTY=/dev/pts/1
BASH_FUNC_which%%=() {  ( alias;
 eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
_=/usr/local/bin/runagent
REGISTRY_AUTH_FILE=/etc/nethserver/registry.json
AGENT_BASEACTIONS_DIR=/usr/local/agent/actions
REDIS_ADDRESS=cluster-leader:6379
REDIS_REPLICA_ADDRESS=127.0.0.1:6379
REDIS_USER=module/paperlessngx33
REDIS_PASSWORD=10faa012-9590-47a2-b931-4a36d1ed41b8
PYTHONPATH=/home/paperlessngx33/.config/pypkg
GOTENBERG_IMAGE=docker.io/gotenberg/gotenberg:7.10
IMAGE_DIGEST=sha256:c03145a189c4e0df7a3f62ccdc564a1e2ff5cda261407d509b8ae6591900c2aa
IMAGE_ID=79faaae27bf6206b406b5937644df5a03e5dfc8c81b061157d8497a11336ca8f
IMAGE_REOPODIGEST=ghcr.io/compgeniuses/paperlessngx@sha256:c03145a189c4e0df7a3f62ccdc564a1e2ff5cda261407d509b8ae6591900c2aa
IMAGE_URL=ghcr.io/compgeniuses/paperlessngx:latest
MODULE_ID=paperlessngx33
MODULE_UUID=faec75fd-b056-4fd8-b676-9ab6c0f3c41f
NODE_ID=1
PAPERLESS_ADMIN_MAIL=
PAPERLESS_ADMIN_PASSWORD=P@perle5$
PAPERLESS_ADMIN_USER=paperlessadmin
PAPERLESS_ALLOWED_HOSTS=paper.bybiz.link,localhost,127.0.0.1
PAPERLESS_COOKIE_PREFIX=paperlessngx
PAPERLESS_CORS_ALLOWED_HOSTS=https://paper.bybiz.link,https://localhost:3000
PAPERLESS_CSRF_TRUSTED_ORIGINS=https://paper.bybiz.link
PAPERLESS_NGX_IMAGE=docker.io/paperlessngx/paperless-ngx:2.1.3
PAPERLESS_NGX_NAME=paperless-ngx
PAPERLESS_OCR_LANGUAGE=eng
PAPERLESS_PROXY_SSL_HEADER=['HTTP_X_FORWARDED_PROTO', 'https']
PAPERLESS_SECRET_KEY=hdswihrdvysjbjiiubajbcjhidfnskjbcjhvikjsbjhk
PAPERLESS_TIKA_ENABLED=
PAPERLESS_TIKA_ENDPOINT=
PAPERLESS_TIKA_GOTENBERG_ENDPOINT=
PAPERLESS_TIME_ZONE=America/Los_Angeles
PAPERLESS_URL=https://paper.bybiz.link
PAPERLESS_USE_X_FORWARD_HOST=True
PHP_ENABLE_OPCACHE=1
PHP_MEMORY_LIMIT=512M
POSTGRES_IMAGE=docker.io/library/postgres:15
REDIS_IMAGE=docker.io/library/redis:7
TCP_PORT=20162
TCP_PORTS=20162,20163,20164
TCP_PORTS_RANGE=20162-20164
TIKA_IMAGE=ghcr.io/paperless-ngx/tika:latest
TRAEFIK_HOST=paper.bybiz.link
TRAEFIK_HTTP2HTTPS=True
TRAEFIK_LETS_ENCRYPT=True
gotenberg=
tika=
AGENT_INSTALL_DIR=/home/paperlessngx33/.config
AGENT_STATE_DIR=/home/paperlessngx33/.config/state
AGENT_ID=module/paperlessngx33
[paperlessngx33@ns8 ~]$

Unfortunately we still Have the CSRF error,

@stephdl could you kindly look into it and let me know if there is something you think we could do to get it working

IIRC @davidep replied to an earlier question of mine that ‘restarting’ is not an option, instead consider stop and start again?

Maybe we need to start a wiki maintained FAQ for these type of questions


HTH

and how do we start and stop again?

You are very right, there are a number of questions i am sure will be asked numerous times about NS8, and an administrative FAQ might be required