Joplin Portable should have everything in the same place

It seems (correct me if this is wrong), that "JoplinPortable.exe", each time you run it, extracts the actual application files in the Temp folder of your user.
This is bad for several seasons, many of which have been already pointed out by other users:

  • it is not really clear (and documented) how it then links the actual "Joplin.exe" executable to the "JoplinProfile" folder (see thread "ist-there-an-overview-of-commandline-parameters-joplin-supports/8126")
    • related to this there is the problem that even if you want to properly run in a portable way, you are not allowed to (since some parameters are "used internally by the portable app or for development, but it’s not meant for users as improper use can lead to data loss")
  • it is extremely bad for performance to extract the actual application each time you run Joplin (see thread "can-i-pre-extract-and-use-the-portable-version-without-losing-portable-functionality/6582")
    • related to this there is also the problem that extracting multiple times exactly the same file is a total waste of resources (in term of disk usage, energy consumption, emissions, etc.)
  • it cannot really be considered "portable" and leaves traces in each machine it is used (see thread "problems-with-joplin-portable/1344")
    • related to this there might be other considerations on the privacy side

Therefore, I argue that "JoplinPortable.exe" should extract the application files in the same folder where it is placed (i.e., extract them next to the executable file), just like it does for the "JoplinProfile" folder, and not in the Temp folder. Then, when it is executed, it can extract the application files if they are not there yet, otherwise it can simply go to the step where it runs "Joplin.exe" (in whatever way it is doing it at the moment).
This will solve all the problems mentioned above.

3 Likes

Note that this could also help with false positives, since malware often uses the Temp folder.

Here is the scan of "JoplinPortable.exe" on VirusTotal containing what I think is a false positive:

EDIT: since I cannot include the link, here is the hash (you simply need to search it on VirusTotal):
e8ad1532f5478095881af1eeb5107baed4978cf2dfb1b75acee67cb09c04d349

I have just noticed that when you run "JoplinPortable.exe" one of the parameters that it uses to run "Joplin.exe" is:

--user-data-dir="C:\Users\USERNAME\AppData\Roaming\Joplin"

This is extremely bad because it means that it is not portable at all (besides leaving possible sensitive information on the machines where you use it).

This folder as well should be in the same folder of the "JoplinPortable.exe" file.

Here is the link to the VirusTotal scan:

It also does not seem very difficult to customise

If it's easy to add we'd accept a pull request. We won't put resources into this at this point since it works well enough for most people, although I understand part of the portable app behaviour is not ideal

If it's easy to add we'd accept a pull request.

I wrote "does not seem" because I am not sure about that (and surely not able to fix it in such a complex project).

We won't put resources into this at this point since it works well enough for most people, although I understand part of the portable app behaviour is not ideal

Given all the comments there are in this forum about the portable app (for instance, those mentioned in my first message), I would say that "it does not work well enough for most people who are using the portable app".
Please note that I might agree that they (i.e., those who are using the portable app) are a minority of the total number of people using the project (you surely know this better than me) and therefore it is better to prioritise other activities for the sake of project.

However, I was suggesting to fix this for the reasons mentioned above (above all because this is how a portable app should work) and it is misleading to define it as a "portable app" (those who are not checking how the app really works, will wrongly assume that it is really "portable").

1 Like

It is worth noting that, at the moment, "JoplinPortable.exe"

  • installs Joplin in a folder of the OS, just like the "normal setup" (it is just in a different folder), but it does it each time you run it (which is much worse for performance and for your disk)
  • is that it writes some files in the folder where you have the executable, instead of USERNAME\.config\joplin-desktop (which is the one used by the "normal setup")

Therefore, one could say that they are pretty similar...

Is there any update on this?

It seems that Visual Studio Code has a clever solution to this:

It appears that many other topics where people were discussing different aspects of Joplin Portable were closed today within a few hours:

I do not know why they have been limited (IMHO they were all interesting topics, that is why I posted something in each of them and some of them were also mentioned in the first post of this topic, see above) and why conversations on Joplin Portable, and more in general how to improve app/user data storage, have been discouraged.
However, I think it should be clarified whether these are restricted/off-limits topics that cannot be posted in this forum, so users will not waste time trying to discuss or write their opinions on them.


I am writing here just because it seems to be the only topic about Joplin Portable that has not been closed (yet) and hopefully will not be before getting an answer (or knowing that this is a forbidden subject).

Thank you for looking into this!

I'm linking to a related upstream issue:

1 Like

What we see, with surprising regularity, is people bumping a whole bunch of ancient topics in one go to draw attention to their issue, it might be that your bumping of several, related topics was seen as just that and might have been categorised as such slightly incorrectly.

That was not my intention at all. I apologise if my actions were misinterpreted.

I'd love to use Joplin as a portable app. I recently came across several forum discussions about various aspects of Joplin Portable (different from the main topic of this thread). I wanted to see if there were any updates on those discussions or if any proposed, but now invalid, solutions had been replaced with valid alternatives.

It felt strange that all those topics were closed after my messages. I didn't understand what I had done wrong.
Thanks for the clarification.

I hope the development on Joplin Portable continues, and we can get a proper version soon!

After my last message, I was expecting (at least some of) those closed topics to be re-opened since they still contain unanswered questions. For instance, the problem described in this one still exists, and the one described here has no solution beside probably my recent proposal that, however, it is not mentioned there.

Is there a reason why they are all still closed?
Do you expect users who created them to open new ones about the same issues?

Lot's of restrictions in this forum... Can't post links to other post in here and when I posted wrongly, not replying as I thought I did I deleted the messege. Clicked "Reply" but was not allowed to post since the text was too similar to my previously (just deleted) post. Maybe this makes it more different so I can post the following text:

When I saw this parameter I first thought I could use this parameter to choose where to store my user data, i.e.

--user-data-dir=""

It is actually the same parameter that you can use in Brave Browser. Initially it seemed to work. I got some data in my chosen folder. Then I exported a jex-file from JoplinPortable, imported it in the parameter-started Joplin instance. All content got there. Then I tried another parameter-started Joplin instance pointing to another data folder for another profile. However I then got the same content no matter how I started Joplin, with or without whatever parameters (but there still were some sort of content in my two different parameter chosen folders).

HOWEVER when instead using this other parameter that I found in these forums, everything works fine with two different batchfiles with different path-parameters and with different imported JEX-files.

--profile ""

Please note the warnings from developers though:

I couldn't post links in here so you will have to search for the topic: "Ist there an overview of commandline parameters Joplin supports?"

Strange that I got a message that I can't post links in posts when I tried to, when I see others being able to post links. Well, I am new here and I might figure it out.