Joplin Server and Reverse Proxy

Operating system

Linux

Joplin version

3.3.4

Sync target

Joplin Server

Editor

Markdown Editor

What issue do you have?

I would love to hear from ANYONE who is successfully running joplin server using a reverse proxy to access
Thanks,

-bk

I'm running a joplinserver with docker compose on a ubuntu vm behind a nginx reverse proxy. This setup works flawlessly for about a couple of years now. It was ab bit tricky to made a postgress update, but in the end this worked also.

Thanks for the reply. I set one up such as yours but I messed up when changing the password or something of that nature. I just deleted the stack and recreated it and ever since I receive a Bad Gateway error. I have tried nginx reverse proxy as well as Pangolin. My containers are healthy with nothing out the ordinary. I have spent an inordinate amount of time trying to solve this but no go. Would you mind sharing your docker-compose file with the secret bits obscured?
Thanks.

Sure:

docker-compose.yaml

services:
    db:
        image: postgres:16
        container_name: joplin_db
        volumes:
            - ./joplin:/var/lib/postgresql/data #Standartverzeichnis
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=pgpasswd
            - POSTGRES_USER=joplin
            - POSTGRES_DB=joplindb
    app:
        image: joplin/server:latest
        container_name: joplin
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: always
        environment:
            - APP_PORT=22300
            - APP_BASE_URL=https://joplin.myurl.com
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=pgpasswd
            - POSTGRES_DATABASE=joplindb
            - POSTGRES_USER=joplin
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db

nginx joplinserver.conf

server {
    server_name                               joplin.mydomain.com;

    location / {
        proxy_pass                            http://localhost:22300/;
        proxy_set_header Host                 $http_host;
        proxy_set_header X-Real-IP            $remote_addr;
        proxy_set_header X-Forwarded-For      $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto    $scheme;
        client_max_body_size                  2048M;
    }
}

The nginx configuration is a standard reverse proxy. I secure it afterwards automatically with certbot.

Before you make everything new, stop your container with docker compose down and spin it up again with docker compose up --force-recreate.
I had problems several times after working on the docker-compose.yaml when I startup normal without force the recreation of the container explicit.

3 Likes

Thank you so much. I will dive into this shortly

1 Like

Good Morning,
Just wanted to let you know I got my server up and running. I did have to recreate however. I deployed one on a budget VPS out of my home network using your config which was basically what I was using in the first place. It took 5 minutes. Then i gutted my home network install and stood up a docker container in 5 minutes there. Now running off that one. Not sure what the issue was. I don't have a lot of experience using nginx as a proxy so I was using the web based nginx proxy manager and must have messed up something there. Anyhow, I can create working servers now at will.
Thanks for the hlp.

--bk

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.