Deploy as web app?


Is it possible to deploy this as a web app? If so I am planning to use it inside my intranet.


1 Like

@foxmask is working on one! From what I can tell it’s seems to be working, but they might be able to be more detailed.

It's nice for trying it :wink:

Okay, I tried to give it a try :).

$ python3 -m venv joplin-web
$ cd joplin-web/
$ source bin/activate
(joplin-web) $ git clone
Cloning into 'joplin-web'...
$ cd joplin-web
$ pip install -r requirements.txt
Collecting requests==2.20.0 (from -r requirements.txt (line 1))
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading (60kB)
    100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 61kB 2.1MB/s 
Collecting django-filter==2.0.0 (from -r requirements.txt (line 2))
  Downloading (69kB)
    100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 71kB 2.7MB/s 
Collecting djangorestframework==3.9.0 (from -r requirements.txt (line 3))
  Downloading (924kB)
    100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 931kB 731kB/s 
Collecting Markdown==3.0.1 (from -r requirements.txt (line 4))
  Downloading (89kB)
    100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 92kB 2.8MB/s 
Collecting django-environ==0.4.5 (from -r requirements.txt (line 5))
Collecting django-cors-headers==2.4.0 (from -r requirements.txt (line 6))
Collecting joplin-api==1.2.1 (from -r requirements.txt (line 7))
    Complete output from command python egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-in1oh49j/joplin-api/", line 6, in <module>
        from joplin_api import __version__ as version
      File "/tmp/pip-build-in1oh49j/joplin-api/joplin_api/", line 7, in <module>
        from .core import JoplinApi
      File "/tmp/pip-build-in1oh49j/joplin-api/joplin_api/", line 21, in <module>
        import requests
    ModuleNotFoundError: No module named 'requests'
Command "python egg_info" failed with error code 1 in /tmp/pip-build-in1oh49j/joplin-api/

Sorry for not being a python wiz…

it’s really weird

so, after you did

git clone

edit requirements.txt and add a # before joplin-api line to add the line in comment
then redo

pip install -r requirements.txt

the joplin-api wont be installed

then continue by:

cd ..
git clone
cd joplin-api
pip install -r requirements.txt

thus the joplin api will be installed β€œby hand” (instead of with the dependencies that should have been made before)

then you can continue to read the install
from the β€œSettings” part

1 Like

Thanks guys, I will take a look at this, sounds promising

Okay, got so far.


$ cd ../joplin-web            (I assume)
$ cp joplin_web/env.sample joplin_web/.env
$ edit joplin_web/.env (according to docs)
$ python migrate
ModuleNotFoundError: No module named 'debug_toolbar'

So I added

$ pip install django-debug-toolbar
$ python migrate
ModuleNotFoundError: No module named 'joplin_api'

Actually, this is not surprising, since the joplin-api is, indeed, not yet installed.

$ cd ../joplin-api
$ python install
$ cd ../joplin-web
$ python migrate
$ python runserver localhost:9876
Performing system checks...
System check identified no issues (0 silenced).
December 14, 2018 - 18:40:28
Django version 2.1.4, using settings 'joplin_web.settings'
Starting development server at http://localhost:9876/
Quit the server with CONTROL-C.

When I point my browser to this address, I get an error page TemplateDoesNotExist at /

The server reports:

django.template.exceptions.TemplateDoesNotExist: index.html

Oops I did forget to push it :wink:

a git pull should do the trick

Progress... :slightly_smiling_face:

django.template.exceptions.TemplateSyntaxError: 'webpack_loader' is not a registered tag library. Must be one of:

I saw just right now .... It sux
I knew I should not push unfinished code :slight_smile:

git pull should be better now.

once the django app is started, do not go to http://localhost:9876/ there is nothing there :wink:
the django app provides endpoints API at http://localhost:9876/api/jw/

as in the README I wrote to use port 8001 because the front expects to find the back, at that port, but you started the django app on another port, you will need to change that port in the file joplin-front/vue.config.js too.


target: ''


target: ''

then you could launch

npm run serve 

and have

 DONE  Compiled successfully in 6966ms                                                                                                                                                20:58:49

  App running at:
  - Local:   http://localhost:8080/ 
  - Network: http://localhost:8080/

  Note that the development build is not optimized.
  To create a production build, run npm run build.

the front is ready on http://localhost:8080/ and get data from http://localhost:9876/api/jw/

For convenience, I changed the port back to 8001.

Running npm run serve in the joplin-front directory gives

> joplin-front@0.1.0 serve /home/jv/tmp/joplin-web/joplin-web/joplin-web/joplin-front
> vue-cli-service serve --mode development --host localhost --port 8080

sh: vue-cli-service: command not found

did you begin by

cd joplin-front
npm run install 


rpm run serve


 ERROR  Failed to compile with 1 errors                                 21:13:15

Module build failed (from ./node_modules/eslint-loader/index.js):
Error: Cannot find module 'eslint'

After manual install of eslint:

 error  in ./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css

Module build failed (from ./node_modules/postcss-loader/src/index.js):
Error: Loading PostCSS Plugin failed: Cannot find module 'autoprefixer'

that starts to become hard to know why this module fails to install :confused: I hope they dont break it :confused:

I assume you have installed a lot of modules on your system, and that the list of dependencies in the Joplin Web tools is not accurate.

FYI: This is what I have on my screen now :grin:

yeah :slight_smile: I proud of you :smiley: funny to see his work somewhere else ! good job

I guess I am the 2nd person in the world to run this?

I’m now beginning to get a basic idea of how this all works, and how the components fit together.

I wanted to complete this exercise because I’m curious by nature, and to help you improving the code/dependencies/instructions and so on. I deleted everything a couple of times and started from scratch to make sure all neccessary steps are accurate. For me, that is.

I will be glad to take every feedback
Known bug : the images are not displayed (yet) I had to think about it :slight_smile: