# Joplin Web - Web application companion for Joplin

**URL:** <https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555>\
**Category:** Apps\
**Created:** [3 September 2018 11:38 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555 "2018-09-03T11:38:38Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [26 May 2019 15:57 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/21 "2019-05-26T15:57:53Z")

</div>

a docker image is now available.  
build it

```auto
docker build -t foxmask/joplin-web .

```

then launch it like this

```auto
docker run -it --network host -p 8001:8001 --rm --name foxmask-joplin-web-1 --mount type=bind,source="/home/foxmask/.config/joplin-desktop/database.sqlite",target=/home/foxmask/.config/joplin-desktop/database.sqlite foxmask/joplin-web

```

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [17 June 2019 06:39 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/22 "2019-06-17T06:39:15Z")

</div>

after that docker image, I'm working [on a technical migration](https://github.com/foxmask/joplin-web/issues/17) you can follow 😉

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [15 July 2019 16:02 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/23 "2019-07-15T16:02:28Z")

</div>

tags under notes 🙂

 ![Sans%20titre](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/2X/1/1b7a2809260b00a275c842c589ae2e6812f36a85.png)

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [19 July 2019 14:40 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/24 "2019-07-19T14:40:11Z")

</div>

Hi, i’m looking for a way to publish the project the easiest way  
So If you have knowledge to build a appimage (and/or the other OS supported by Joplin) let met know. I try to “package” the project from that folder only [https://github.com/foxmask/joplin-web/tree/master/joplin\_web](https://github.com/foxmask/joplin-web/tree/master/joplin_web)

May be that would be a possibility to use Joplin from Nextcloud ?

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [9 September 2019 09:05 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/25 "2019-09-09T09:05:35Z")

</div>

Until yesterday, to be able to use `Joplin-Web`, We had to install it on a workstation (because we need to access to the webclipper service)

Now, joplin can be run headless with:

```auto
joplin --profile ~/.config/joplin-desktop/ server start
Server is already running on port 41184

```

just after having update the joplin terminal version by

```auto
NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin

```

This allow you, now, to install the project on a dedicated server near your joplin resources 😉

Thanks to @laurent !

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [19 September 2019 07:33 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/26 "2019-09-19T07:33:15Z")

</div>

🎂 project first anniversary 🙂

news things to come during [hacktoberfest](https://github.com/foxmask/joplin-web/issues?q=is%3Aissue+is%3Aopen+label%3A%22%3Ajack_o_lantern%3A+Hacktoberfest2019%22) 😉

---

<div class="post-metadata">

**Author:** ![laurent](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@laurent](https://discourse.joplinapp.org/u/laurent)\
**Post date:** [19 September 2019 08:32 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/27 "2019-09-19T08:32:15Z")

</div>

Well done @foxmask, the project is already looking very good.

---

<div class="post-metadata">

**Author:** ![Senskr](https://avatars.discourse-cdn.com/v4/letter/s/65b543/32.png) [@Senskr](https://discourse.joplinapp.org/u/Senskr)\
**Post date:** [29 September 2019 17:28 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/28 "2019-09-29T17:28:10Z")

</div>

Thanks for the Web app for Joplin, it looks very promising.

For those interested to test, there is docker-compose.yml to get both backend and frontend quickly running.

> **[archont00/joplin-web-docker](https://github.com/archont00/joplin-web-docker)**
>
> docker-compose files for setting up Joplin Web https://github.com/foxmask/joplin-web - archont00/joplin-web-docker

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [30 September 2019 06:38 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/29 "2019-09-30T06:38:52Z")

</div>

This solution run 2 dockers images, where I just run one.  
I build the VueJS part, then I can run one docker with the front (VueJS) and back (python) in same times.

---

<div class="post-metadata">

**Author:** ![Senskr](https://avatars.discourse-cdn.com/v4/letter/s/65b543/32.png) [@Senskr](https://discourse.joplinapp.org/u/Senskr)\
**Post date:** [30 September 2019 08:53 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/30 "2019-09-30T08:53:21Z")

</div>

I just did not want to build the VueJS part on my server before creating your docker image and therefore I use the other image to do the job (which is easy to delete and provides a http server for testing).  
In either case, the alpine based images are quite small (less then 300 MB both).

For production, I may merge with nginx and joplin app to a single docker image (it is on head-less server) and use an nginx proxy for SSL and simple user authentication.

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [4 October 2019 06:22 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/31 "2019-10-04T06:22:39Z")

</div>

I updated the description of the project, in the first post, has many things have been done since this year 😉

---

<div class="post-metadata">

**Author:** ![Senskr](https://avatars.discourse-cdn.com/v4/letter/s/65b543/32.png) [@Senskr](https://discourse.joplinapp.org/u/Senskr)\
**Post date:** [5 October 2019 20:22 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/32 "2019-10-05T20:22:27Z")

</div>

@foxmask - okay, my bad.

I did not get the point of how the VueJS part and joplin\_web relate to each other, that VueJS production build is already included in joplin\_web and I eventually over-complicated things.

Nevermind, the Dockerfile & docker-compose.yml is now [updated](https://github.com/archont00/joplin-web-docker) to produce a single image including also joplin terminal app (taking care about Web Clipper service and syncing).

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [5 October 2019 20:28 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/33 "2019-10-05T20:28:44Z")

</div>

i compared your solution with 2 dockers where I run just once. It's up to you to do the way you want. There is no rules written in the stone 😉

---

<div class="post-metadata">

**Author:** ![Duc](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/duc/32/1602_2.png) [@Duc](https://discourse.joplinapp.org/u/Duc)\
**Post date:** [24 October 2019 12:53 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/34 "2019-10-24T12:53:32Z")

</div>

Hi all,

I’ve successfully installing the Joplin Web. I would like to access my remote webdav folder. I use [davfs](https://manpages.debian.org/stretch/davfs2/mount.davfs.8.en.html) to mount the remote folder. So this way the desktop application and the web application accessing the same file.

The mount works well. When I try to access my note book through the web app nothing appears.

Is davfs the right way to perform this action ?

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [24 October 2019 14:32 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/35 "2019-10-24T14:32:08Z")

</div>

Hi,

did you start joplin headlesss by

```auto
joplin server start

```

?

---

<div class="post-metadata">

**Author:** ![Duc](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/duc/32/1602_2.png) [@Duc](https://discourse.joplinapp.org/u/Duc)\
**Post date:** [24 October 2019 14:35 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/36 "2019-10-24T14:35:48Z")

</div>

Yes sure, I also specified the mount point of the davfs with the `--profile` option. This where my joplin data are stored.

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [24 October 2019 14:37 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/37 "2019-10-24T14:37:01Z")

</div>

is there any log in the console when docker is running ?

---

<div class="post-metadata">

**Author:** ![Duc](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/duc/32/1602_2.png) [@Duc](https://discourse.joplinapp.org/u/Duc)\
**Post date:** [24 October 2019 14:46 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/38 "2019-10-24T14:46:42Z")

</div>

I'm not in a docker. I instalI it the old way.

I tried both with `sudo` and without here is the log without `sudo`:

> pi@Ploutos:~$ joplin --profile /home/pi/joplin-desktop server start  
> Fatal error:  
> { Error: Error: EACCES: permission denied, rmdir '/home/pi/joplin-desktop/tmp'. Path: /home/pi/joplin-desktop/tmp  
> at FsDriverNode.fsErrorToJsError\_ (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/fs-driver-node.js:9:16)  
> at FsDriverNode.remove (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/fs-driver-node.js:54:15)  
> at code: 'EACCES' }

With `sudo`:

> pi@Ploutos:~$ sudo joplin --profile /home/pi/joplin-desktop server start  
> 2019-10-24 12:39:14: "Starting Clipper server on port 41184"  
> 2019-10-24 12:41:37: "Request: GET /tags/?token=a0ea68a19bd2ad19b83b1c6d68e2af10228d58d750bc43d7ddd20a68086787cbfb07d1078c1a9f4e16b53c6fafff88dac9a3ed4f1e6ab4b0d0f5ff06b8fd115f"  
> 2019-10-24 12:41:38: "Error: Invalid "token" parameter  
> Error: Invalid "token" parameter  
> at Api.checkToken\_ (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/services/rest/Api.js:180:49)  
> at Api.defaultAction\_ (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/services/rest/Api.js:184:8)  
> at Api.action\_tags (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/services/rest/Api.js:301:15)  
> at Api.route (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/services/rest/Api.js:138:42)  
> at execRequest (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/ClipperServer.js:157:39)  
> at Server.server\_.on (/home/pi/.joplin-bin/lib/node\_modules/joplin/lib/ClipperServer.js:199:7)  
> at emitTwo (events.js:126:13)  
> at Server.emit (events.js:214:7)  
> at parserOnIncoming (\_http\_server.js:660:12)  
> at HTTPParser.parserOnHeadersComplete (\_http\_common.js:119:17)"

---

<div class="post-metadata">

**Author:** ![foxmask](https://avatars.discourse-cdn.com/v4/letter/f/c68b51/32.png) [@foxmask](https://discourse.joplinapp.org/u/foxmask)\
**Post date:** [24 October 2019 14:55 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/39 "2019-10-24T14:55:50Z")

</div>

you shouldn’t need to use sudo so first of all

```auto
sudo chown pi:pi -R /home/pi/joplin-desktop/tmp

```

then

```auto
joplin --profile /home/pi/joplin-desktop server start

```

what triggers the log about `/tags/?token=xxx` ?  
you browser ?  
can you reproduce the error with curl ?

```auto
curl -XGET http://127.0.0.1:41184/tags/?token=xxx

```

---

<div class="post-metadata">

**Author:** ![Duc](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/duc/32/1602_2.png) [@Duc](https://discourse.joplinapp.org/u/Duc)\
**Post date:** [24 October 2019 19:42 UTC](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555/40 "2019-10-24T19:42:42Z")

</div>

Thanks for the idea of the `chown`. Now the joplin start without error messge except the token issue.

I tried via `curl` and I have the same issue. I copy/pasted the web clipper token from one of my desktop app. Was it the right thing to do ?

[Previous page](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555.md?page=1)

[Next page](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555.md?page=3)
