Joplin Server pre-release is now available

Hello everyone. I decided to move from broken Evernote to amazing Joplin a few days ago. And just started Joplin server on my home server without testing other alternatives. All works right, but one thing.

I can sync with only default admin@localhost user. I changed admin@localhost password and can login wothout a problem. But if I create another user, I get errors:

on login:

Error: Invalid username or password
    at SessionModel.<anonymous> (/home/joplin/packages/server/src/models/SessionModel.ts:28:20)
    at Generator.next (<anonymous>)
    at fulfilled (/home/joplin/packages/server/dist/models/SessionModel.js:5:58)

on sync in Joplin app:

Error. Please check that URL, username, password, etc. are correct and that the sync target is accessible. The reported error was:
POST api/sessions: Unknown error (403): {"error":"Invalid username or password"} (Code 403)

I tried @kronan instructions, but it didn't help.

noob question: I try to run joplin server via the docker composer file but when I try to access the webpage I get:

| 2021-03-22 15:16:25: App: GET /joplin/login
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/login : Path not found: joplin/login
app_1 | 2021-03-22 15:16:25: App: GET /joplin/css/bulma.min.css
app_1 | 2021-03-22 15:16:25: App: GET /joplin/css/bulma-prefers-dark.min.css
app_1 | 2021-03-22 15:16:25: App: GET /joplin/css/main.css
app_1 | 2021-03-22 15:16:25: App: GET /joplin/css/fontawesome/css/all.min.css
app_1 | 2021-03-22 15:16:25: App: GET /joplin/js/main.js
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/css/bulma.min.css : Path not found: joplin/css/bulma.min.css
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/css/bulma-prefers-dark.min.css : Path not found: joplin/css/bulma-prefers-dark.min.css
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/css/main.css : Path not found: joplin/css/main.css
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/css/fontawesome/css/all.min.css : Path not found: joplin/css/fontawesome/css/all.min.css
app_1 | 2021-03-22 15:16:25: [error] App: 404: GET /joplin/js/main.js : Path not found: joplin/js/main.js

What do I have to install? I thought the docker image would contain everything?!

Ok, so it is really weird: I tried to reproduce your problem, so I added a new test user, typed in a password and - there you go - I got your exact errors...I fixed it by editing the mentioned user and giving him a new password (maybe even the old one would work). After that I was able to log in without problems. Maybe that one works out for you?

I don't really know, what's going on, how did you set up your Reverse-Proxy?
And how did you edit the compose file (in which format did you put your URL in there)?

I used the default user/pw and tried to run it locally in my LAN first so I din't set up a reverse proxy. Do I need it?

  cat .joplinenv 
# =============================================================================
# PRODUCTION CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# By default it will use SQLite, but that's mostly to test and evaluate the
# server. So you'll want to specify db connection settings to use Postgres.
# =============================================================================
#
 APP_BASE_URL=http://192.168.0.20:22300/joplin
 APP_PORT=22300
# 
 DB_CLIENT=pg
 POSTGRES_PASSWORD=joplin
 POSTGRES_DATABASE=joplin
 POSTGRES_USER=joplin
 POSTGRES_PORT=5432
 POSTGRES_HOST=localhost

cat joplindocker.yml 
# This is a sample docker-compose file that can be used to run Joplin Server
# along with a PostgreSQL server.
#
# All environment variables are optional. If you don't set them, you will get a
# warning from docker-compose, however the app should use working defaults.

version: '3'

services:
    db:
        image: postgres:13.1
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_DB=${POSTGRES_DATABASE}
    app:
        image: joplin/server:latest
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: unless-stopped
        environment:
            - APP_BASE_URL=${APP_BASE_URL}
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRES_DATABASE=${POSTGRES_DATABASE}
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_PORT=${POSTGRES_PORT}
            - POSTGRES_HOST=db

export env vars:
export $(grep -v '^#' .joplinenv | xargs)
run:
docker-compose -f joplindocker.yml up

Two things: Yes, you need a reverse proxy configured, because you want to access everything via http(s), even in your local LAN. Secondly (based on the previous point), the APP_Base_URL has to be without the port, maybe take a look at this thread.

For information, there's a bug with the way passwords are saved. It's been fixed on dev but not yet released.

1 Like

thanks! Is there a good tutorial/manual how to set up the proxy with th joplin server and the docker image?

This thread seems to be a quite comprehensive tutorial for Joplin Server w/ Docker & Apache : Guide for Joplin-Server on Raspberry Pi
Bruno

2 Likes

ok I got it working! Thanks! Question: Where are my joplin notes/files stored exactly now on the server?? In which location? Can I specify the folder location? e.g. store them on a mounted cifs

In my understanding files (notes & resources) are in the Postgresql database

1 Like

what do you enter in the client config for Joplin Server Dir? Default is Apps/Joplin...
What is that good for?

You can put anything you want, or even nothing, in which case the files will be at the root. Being able to choose the dir allows having multiple accounts in there. For example, you could have two Joplin instances with your personal notes under /Apps/Joplin and your work notes under /Apps/JoplinWork

1 Like

I was wondering if there's some sort of local import possible. Basically you take your jex file and import it on the server with specifying the server dir.

Or does one have to sync all their notes to the server over the network?

If you really want, you could install the CLI version of Joplin on the server, import your JEX files into it, then sync with the service running on localhost.

1 Like

What?s the status of the Joplin server docker image. Still beta or when do you think to release a stable productive version?

No ETA but it's high priority. I want to get the sharing feature done, then release it again as beta for several weeks more, just to fix any remaining bug, and then create the stable release.

5 Likes

cool

It worked, thank you!

@laurent Good news, I'll be waiting for the next release.

I'm trying out the server using the latest joplin/server docker image. Seems to work fine so far! But is it normal that the 'home' page returns 403 "Directory listing not allowed: Back to the login page"? With 'home' I mean browsing to the APP_BASE_URL, such as https://example.com.
Screenshot 2021-04-01 at 00.49.08

I migrated from Evernote to Joplin with WebDAV on my Synology NAS. Pretty great experience :slight_smile: Just noticed some slowness (especially on my iPhone). But I think the Joplin Server will perform much better :grinning_face_with_smiling_eyes: