# Install Joplin Server without docker

**URL:** <https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865>\
**Category:** Lounge\
**Created:** [30 December 2022 13:03 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865 "2022-12-30T13:03:50Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [30 December 2022 13:03 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/1 "2022-12-30T13:03:50Z")

</div>

Hello,

I wish to run Joplin server on a Raspberry PI4 to sync many phone/tablet/pc app without docker, but no luck.  
Is there any updated tutorial ?  
or a package source that can be used also for update ?  
thanks

---

<div class="post-metadata">

**Author:** ![kcrawford](https://avatars.discourse-cdn.com/v4/letter/k/b77776/32.png) [@kcrawford](https://discourse.joplinapp.org/u/kcrawford)\
**Post date:** [30 December 2022 23:29 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/2 "2022-12-30T23:29:55Z")

</div>

Try this: [Joplin Server 2.9 LXC Build | syn-flood](https://syn-flood.com/posts/2022/12/30/joplin-lxc-2.9.html)

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [31 December 2022 14:19 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/3 "2022-12-31T14:19:59Z")

</div>

thanks a lot, but still no luck.  
on point 6 I got:

_joplin@localhost:~$ cd /opt/joplin/_  
_joplin@localhost:/opt/joplin$ BUILD\_SEQUENCIAL=1 yarn install --inline-builds_  
_Usage: yarn [options]_

_yarn: error: no such option: --inline-builds_  
_joplin@localhost:/opt/joplin$_

and without option:  
_joplin@localhosy:/opt/joplin$ BUILD\_SEQUENCIAL=1 yarn install_  
_00h00m00s 0/0: : ERROR: [Errno 2] No such file or directory: 'install'_  
_joplin@localhost:/opt/joplin$_

the first steps until copying are easy and always OK.  
no luck in building phase.

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [4 January 2023 17:51 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/4 "2023-01-04T17:51:53Z")

</div>

Hello,  
I did some progress, now able to run yarn install command,  
it completes 5/5 but error with gulp build:

_[5/5] Building fresh packages..._  
_success Saved lockfile._  
_$ gulp build_  
_[18:49:39] No gulpfile found_  
_error Command failed with exit code 1._

can anyone help, pls ?

PS if I try to run it I get following error:  
_[PM2] Spawning PM2 daemon with pm2\_home=/home/joplin/.pm2_  
_[PM2] PM2 Successfully daemonized_  
_[PM2][WARN] Applications joplin-server not running, starting..._  
_[PM2][ERROR] Error: Script not found: /opt/joplin/packages/server/dist/app.js_

I also tried to run gulp build manually inside:  
/opt/joplin/packages/server$ gulp build  
_[19:21:51] Using gulpfile /opt/joplin/packages/server/gulpfile.js_  
_[19:21:51] Starting 'build'..._  
_[19:21:51] Starting 'compilePackageInfo'..._  
_Warning: Could not get git info (it will not be displayed in About dialog box)_  
_Generated /opt/joplin/packages/server/dist/packageInfo.js_  
_[19:21:51] Finished 'compilePackageInfo' after 33 ms_  
_[19:21:51] Finished 'build' after 43 ms_

but still no app.js

---

<div class="post-metadata">

**Author:** ![tessus](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/tessus/32/13_2.png) [@tessus](https://discourse.joplinapp.org/u/tessus)\
**Post date:** [4 January 2023 20:26 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/5 "2023-01-04T20:26:21Z")

</div>

You also have to copy the `gulpfile.js` from the joplin root.

```auto
cp joplin/gulpfile.js /opt/joplin/

```

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [4 January 2023 23:03 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/6 "2023-01-04T23:03:54Z")

</div>

thanks,  
added it, now one step further, but still no luck, new error:

_$ gulp build_  
_[23:59:55] Using gulpfile /opt/joplin/gulpfile.js_  
_[23:59:55] Starting 'build'..._  
_\> yarn ['run', 'buildSequential']_  
_yarn run v1.22.19_  
_$ yarn workspaces foreach --verbose --interlaced --topological run build && yarn run tsc_  
_error Invalid subcommand. Try "info, run"_  
_info Visit [yarn workspaces | Yarn](https://yarnpkg.com/en/docs/cli/workspaces) for documentation about this command._  
_error Command failed with exit code 1._  
_info Visit [yarn run | Yarn](https://yarnpkg.com/en/docs/cli/run) for documentation about this command._  
_[23:59:58] 'build' errored after 2.49 s_  
_[23:59:58] Error: Command failed with exit code 1: yarn run buildSequential_  
_error Invalid subcommand. Try "info, run"_  
_error Command failed with exit code 1._  
_yarn run v1.22.19_  
_$ yarn workspaces foreach --verbose --interlaced --topological run build && yarn run tsc_  
_info Visit [yarn workspaces | Yarn](https://yarnpkg.com/en/docs/cli/workspaces) for documentation about this command._  
_info Visit [yarn run | Yarn](https://yarnpkg.com/en/docs/cli/run) for documentation about this command._

- at makeError (/opt/joplin/packages/tools/node\_modules/execa/lib/error.js:59:11)\*
- at handlePromise (/opt/joplin/packages/tools/node\_modules/execa/index.js:114:26)\*
- at process.processTicksAndRejections (node:internal/process/task\_queues:95:5)\*
- at async fn (/opt/joplin/gulpfile.js:33:5)\*  
_error Command failed with exit code 1._  
_info Visit [yarn install | Yarn](https://yarnpkg.com/en/docs/cli/install) for documentation about this command._

any clue ?  
thanks

---

<div class="post-metadata">

**Author:** ![tessus](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/tessus/32/13_2.png) [@tessus](https://discourse.joplinapp.org/u/tessus)\
**Post date:** [6 January 2023 00:06 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/7 "2023-01-06T00:06:22Z")

</div>

Instead of copying files/directories, why don't you try to run the commands in the joplin root directory.

e.g. there's also a `.yarn` directory. You might need that too.

Then check which files were accessed and then you can go the other route and copy the necessary files over to a new directory.

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [6 January 2023 16:54 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/8 "2023-01-06T16:54:35Z")

</div>

thanks,  
I'm not a docker/container expert and as you and many other at the beginning of the project I just need it to make it run on RPi4 with very few mem and storage without docker, I already needed to install PostgreSQL (hoping that in future MySQL would be possible), so I'm following tutorials made by others before me.

Thanks

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [6 January 2023 16:58 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/9 "2023-01-06T16:58:14Z")

</div>

you mean like this: ?  
mkdir -p /opt/joplin/  
useradd --create-home --shell /bin/bash joplin  
chown -R joplin:joplin /opt/joplin  
su -l joplin  
git clone [GitHub - laurent22/joplin: Joplin - an open source note taking and to-do application with synchronisation capabilities for Windows, macOS, Linux, Android and iOS.](https://github.com/laurent22/joplin.git)  
cp -r joplin/ /opt/joplin/  
cd /opt/joplin/  
BUILD\_SEQUENCIAL=1 yarn install --inline-builds

---

<div class="post-metadata">

**Author:** ![tessus](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/tessus/32/13_2.png) [@tessus](https://discourse.joplinapp.org/u/tessus)\
**Post date:** [7 January 2023 00:25 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/10 "2023-01-07T00:25:46Z")

</div>

Nope. All the scripts that you a referring to take the joplin repo and copy bits and pieces to a different directory.

But apparently there are things missing. So just clone the repo and build the server in there: `BUILD_SEQUENCIAL=1 yarn install --inline-builds`

If that works you can check which files were touched during the build process thus know which files are needed when you do the copy-to-a-different-dir approach.

P.S.: when you look at the [Dockerfile.server](https://github.com/laurent22/joplin/blob/dev/Dockerfile.server), you will see which files/directories are actually necessary:

```auto
COPY .yarn/plugins ./.yarn/plugins
COPY .yarn/releases ./.yarn/releases
COPY package.json .
COPY .yarnrc.yml .
COPY yarn.lock .
COPY gulpfile.js .
COPY tsconfig.json .
COPY packages/turndown ./packages/turndown
COPY packages/turndown-plugin-gfm ./packages/turndown-plugin-gfm
COPY packages/fork-htmlparser2 ./packages/fork-htmlparser2
COPY packages/server/package*.json ./packages/server/
COPY packages/fork-sax ./packages/fork-sax
COPY packages/fork-uslug ./packages/fork-uslug
COPY packages/htmlpack ./packages/htmlpack
COPY packages/renderer ./packages/renderer
COPY packages/tools ./packages/tools
COPY packages/lib ./packages/lib
COPY packages/server ./packages/server

```

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [7 January 2023 10:52 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/11 "2023-01-07T10:52:39Z")

</div>

Hello again,

thanks for the suggestion, but no luck.

copied all the files/directories:

_mkdir -p /opt/joplin/packages/{fork-sax,lib,server}_  
_mkdir -p /opt/joplin/.yarn_

_chown -R joplin:joplin /opt/joplin_

_cp -r /home/joplin/joplin/.yarn/plugins /opt/joplin/.yarn/plugins_  
_cp -r /home/joplin/joplin/.yarn/releases /opt/joplin/.yarn/releases_  
_cp -r /home/joplin/joplin/package.json ._  
_cp -r /home/joplin/joplin/.yarnrc.yml ._  
_cp -r /home/joplin/joplin/yarn.lock ._  
_cp -r /home/joplin/joplin/gulpfile.js ._  
_cp -r /home/joplin/joplin/tsconfig.json ._  
_cp -r /home/joplin/joplin/packages/turndown /opt/joplin/packages/turndown_  
_cp -r /home/joplin/joplin/packages/turndown-plugin-gfm /opt/joplin/packages/turndown-plugin-gfm_  
_cp -r /home/joplin/joplin/packages/fork-htmlparser2 /opt/joplin/packages/fork-htmlparser2_  
_cp -r /home/joplin/joplin/packages/server/package_.json /opt/joplin/packages/server/\*  
_cp -r /home/joplin/joplin/packages/fork-sax /opt/joplin/packages/fork-sax_  
_cp -r /home/joplin/joplin/packages/fork-uslug /opt/joplin/packages/fork-uslug_  
_cp -r /home/joplin/joplin/packages/htmlpack /opt/joplin/packages/htmlpack_  
_cp -r /home/joplin/joplin/packages/renderer /opt/joplin/packages/renderer_  
_cp -r /home/joplin/joplin/packages/tools /opt/joplin/packages/tools_  
_cp -r /home/joplin/joplin/packages/lib /opt/joplin/packages/lib_  
_cp -r /home/joplin/joplin/packages/server /opt/joplin/packages/server_

and run  
_BUILD\_SEQUENCIAL=1 yarn install --inline-builds_

new error:  
➤ YN0000: ┌ Resolution step  
➤ YN0001: │ Error: @joplin/lib@npm:~2.10: No candidates found  
at ge (/opt/joplin/.yarn/releases/yarn-3.3.1.cjs:439:7786)  
at process.processTicksAndRejections (node:internal/process/task\_queues:95:5)  
➤ YN0000: └ Completed in 4s 720ms  
➤ YN0000: Failed with errors in 4s 746ms

any clue ?

P.S. my environment:  
root@localhost:/# pm2 status  
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐  
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │  
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘  
root@localhost:/# npm --version  
8.19.2  
root@localhost:/# yarn --version  
1.22.19  
root@localhost:/# node --version  
v18.12.1  
root@localhost:/# gulp --version  
CLI version: 2.3.0  
Local version: Unknown  
root@localhost:/#

---

<div class="post-metadata">

**Author:** ![tessus](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/tessus/32/13_2.png) [@tessus](https://discourse.joplinapp.org/u/tessus)\
**Post date:** [7 January 2023 22:33 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/13 "2023-01-07T22:33:58Z")

</div>

So what did you change that it worked this time? The copy commands seems to be the same, although it looks like the .yarn files are missing. You only created the directory, but didn't copy the contents.

You should summarize for others what exactly you did. The output is not necessary, but the commands you used. But IMO something is missing (the .yarn files).

It also helps to put commands in a code block.

---

<div class="post-metadata">

**Author:** ![kcrawford](https://avatars.discourse-cdn.com/v4/letter/k/b77776/32.png) [@kcrawford](https://discourse.joplinapp.org/u/kcrawford)\
**Post date:** [8 January 2023 23:52 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/14 "2023-01-08T23:52:03Z")

</div>

I got my hands on a Raspberry Pi 4 with 8 GB of RAM and tried this myself. I followed the exact steps I laid out in the blog post I made and was able to successfully connect to the admin web ui.

---

<div class="post-metadata">

**Author:** ![aspx1981](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/aspx1981/32/15800_2.png) [@aspx1981](https://discourse.joplinapp.org/u/aspx1981)\
**Post date:** [9 January 2023 15:22 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/15 "2023-01-09T15:22:14Z")

</div>

trying to make it simpler:  
I followed the kcrawford blog:  
mkdir -p /opt/joplin/packages/{fork-sax,lib,server}  
mkdir -p /opt/joplin/.yarn  
chown -R joplin:joplin /opt/joplin  
su -l joplin  
cp -r /home/joplin/joplin/gulpfile.js .  
cp -r /home/joplin/joplin/tsconfig.json .  
cp -r /home/joplin/joplin/package.json .  
cp -r /home/joplin/joplin/packages/turndown /opt/joplin/packages/turndown  
cp -r /home/joplin/joplin/packages/turndown-plugin-gfm /opt/joplin/packages/turndown-plugin-gfm  
cp -r /home/joplin/joplin/packages/fork-htmlparser2 /opt/joplin/packages/fork-htmlparser2  
cp -r /home/joplin/joplin/packages/server/package.json /opt/joplin/packages/server/\*  
cp -r /home/joplin/joplin/packages/fork-sax /opt/joplin/packages/fork-sax  
cp -r /home/joplin/joplin/packages/fork-uslug /opt/joplin/packages/fork-uslug  
cp -r /home/joplin/joplin/packages/htmlpack /opt/joplin/packages/htmlpack  
cp -r /home/joplin/joplin/packages/renderer /opt/joplin/packages/renderer  
cp -r /home/joplin/joplin/packages/tools /opt/joplin/packages/tools  
cp -r /home/joplin/joplin/packages/lib /opt/joplin/packages/lib  
cp -r /home/joplin/joplin/packages/server /opt/joplin/packages/server

BUILD\_SEQUENCIAL=1 yarn install --inline-builds

but I got an error: yarn workspaces foreach --verbose --interlaced --topological run build && yarn run tsc  
error Invalid subcommand.

so I added the additionals files and folders:  
cp -r /home/joplin/joplin/.yarn/plugins /opt/joplin/.yarn/plugins  
cp -r /home/joplin/joplin/.yarn/releases /opt/joplin/.yarn/releases  
cp -r /home/joplin/joplin/.yarnrc.yml .  
cp -r /home/joplin/joplin/yarn.lock .

BUILD\_SEQUENCIAL=1 yarn install --inline-builds && yarn cache clean && rm -rf .yarn/berry

/opt/joplin$ BUILD\_SEQUENCIAL=1 yarn install --inline-builds

and it build succesfully.

Only 1 note: don't know why my installation requires those additional files and folders and why if I copy altogether at first step I got an error and if I copy in two steps it works.

I don't know how to prepare a deb package, but I think it would be great.

Thanks all for the suggestions and support,  
Bye

---

<div class="post-metadata">

**Author:** ![SFcynfo](https://avatars.discourse-cdn.com/v4/letter/s/3bc359/32.png) [@SFcynfo](https://discourse.joplinapp.org/u/SFcynfo)\
**Post date:** [17 January 2023 13:48 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/16 "2023-01-17T13:48:06Z")

</div>

Hi

how did you solve your problem with:

> Error: AT joplin/libAT npm:~2.10: No candidates found

I have the same error.

Debian 11  
npm --version  
9.3.0  
yarn --version  
3.3.1  
node --version  
v18.13.0  
gulp --version  
CLI version: 2.3.0  
Local version: Unknown

my commands:

> apt update && apt upgrade  
> apt install -y git vim curl postgresql make gcc g++  
> curl -fsSL XXXX://deb.nodesource.com/setup\_18.x | bash -  
> apt update && apt upgrade  
> apt install nodejs  
> npm install -g pm2  
> npm install -g corepack  
> npm install -g gulp  
> corepack enable  
> corepack prepare yarnAT stable --activate  
> yarn init -2
> 
> su - postgres  
> DBPW="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"  
> psql -c "CREATE DATABASE joplin;"  
> psql -c "CREATE USER joplin with password '$DBPW';"  
> psql -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO joplin;"
> 
> exit
> 
> mkdir -p /opt/joplin/packages/{fork-sax,lib}  
> mkdir -p /opt/joplin/.yarn  
> useradd --create-home --shell /bin/bash joplin  
> chown -R joplin:joplin /opt/joplin  
> su -l joplin  
> git clone XXXX://github.com/laurent22/joplin.git
> 
> cd /opt/joplin  
> cp -r /home/joplin/joplin/.yarn/plugins /opt/joplin/.yarn/plugins  
> cp -r /home/joplin/joplin/.yarn/releases /opt/joplin/.yarn/releases  
> cp -r /home/joplin/joplin/gulpfile.js /opt/joplin/gulpfile.js  
> cp -r /home/joplin/joplin/tsconfig.json /opt/joplin/tsconfig.json  
> cp -r /home/joplin/joplin/package.json /opt/joplin/package.json  
> cp -r /home/joplin/joplin/.yarnrc.yml /opt/joplin/.yarnrc.yml  
> cp -r /home/joplin/joplin/yarn.lock /opt/joplin/yarn.lock  
> cp -r /home/joplin/joplin/packages/turndown /opt/joplin/packages/turndown  
> cp -r /home/joplin/joplin/packages/turndown-plugin-gfm /opt/joplin/packages/turndown-plugin-gfm  
> cp -r /home/joplin/joplin/packages/fork-htmlparser2 /opt/joplin/packages/fork-htmlparser2  
> cp -r /home/joplin/joplin/packages/fork-sax /opt/joplin/packages/fork-sax  
> cp -r /home/joplin/joplin/packages/fork-uslug /opt/joplin/packages/fork-uslug  
> cp -r /home/joplin/joplin/packages/htmlpack /opt/joplin/packages/htmlpack  
> cp -r /home/joplin/joplin/packages/renderer /opt/joplin/packages/renderer  
> cp -r /home/joplin/joplin/packages/tools /opt/joplin/packages/tools  
> cp -r /home/joplin/joplin/packages/lib /opt/joplin/packages/lib  
> cp -r /home/joplin/joplin/packages/server /opt/joplin/packages/server
> 
> BUILD\_SEQUENCIAL=1 yarn install --inline-builds && yarn cache clean && rm -rf .yarn/berry

---

<div class="post-metadata">

**Author:** ![tessus](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/tessus/32/13_2.png) [@tessus](https://discourse.joplinapp.org/u/tessus)\
**Post date:** [22 January 2023 07:59 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/17 "2023-01-22T07:59:43Z")

</div>

Hi @kcrawford,

I'm a bit worried about the following DDL statements, due to their security implications:

```sql
CREATE DATABASE joplin;
CREATE USER joplin with password 'supers$cret';
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO joplin;

```

Shouldn't they be rather something like:

```sql
REVOKE ALL PRIVILEGES ON SCHEMA public FROM PUBLIC;
CREATE DATABASE joplin;
CREATE USER joplin with password 'supers$cret';
GRANT ALL PRIVILEGES ON DATABASE joplin to joplin;

```

---

<div class="post-metadata">

**Author:** ![kcrawford](https://avatars.discourse-cdn.com/v4/letter/k/b77776/32.png) [@kcrawford](https://discourse.joplinapp.org/u/kcrawford)\
**Post date:** [23 January 2023 00:34 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/18 "2023-01-23T00:34:58Z")

</div>

Good call out, I have updated the post with this recommendation as well as provided a method for generating a secure password.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/1/c/1c948e33314e232a0927789508474d8624f4270b.png) [@system](https://discourse.joplinapp.org/u/system)\
**Post date:** [22 January 2025 00:35 UTC](https://discourse.joplinapp.org/t/install-joplin-server-without-docker/28865/19 "2025-01-22T00:35:00Z")

</div>

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