Tentative procedure to make Joplin Portable truly portable on Windows

Operating system

Windows

Joplin version

3.0.13

What issue do you have?

Hi

I came up with a procedure that should make, when the parameters work as expected, Joplin Portable truly portable.
It is based on: Portable Mode in Visual Studio Code
There everything is handled automatically by the app, but since in Joplin this is not supported (yet), the process is manual, much longer and complex.

I'd appreciate your opinion on whether this procedure is safe and effective.

Here are the steps:

  1. Backup everything!
    • including all folders mentioned below
  2. Download Joplin Portable
  3. Open it as an archive and extract only the content of the "app-64.7z" file to a folder of your choice
    • for the following steps, assume "Joplin" refers to the path of this folder
  4. Create a "data" folder inside "Joplin"
  5. Create a "user-data" folder inside "Joplin\data"
  6. Move "C:\Users\USERNAME\AppData\Roaming\Joplin" to "Joplin\data\user-data"
  7. Create a "profile" folder inside "Joplin\data"
  8. Move "C:\Users\USERNAME.config\joplin-desktop" to "Joplin\data\profile"
  9. Create a shortcut to the "Joplin.exe" executable, located inside the "Joplin" folder, with the following parameters:
    • --user-data-dir=Joplin\data\user-data
    • --profile=Joplin\data\profile
  10. Make sure to run Joplin Portable exclusively from the shortcut you created

Using this shortcut ensures (AFAIK, please correct me if that is wrong) that Joplin loads and saves all data within the designated folder. This also prevents Joplin from writing to any other areas on your hard drive.

Is my description of this procedure clear and understandable?
Are those parameters being used correctly?
Finally, is it safe to proceed?

Thanks

I haven't got any reply for two weeks, so I'm starting to wonder whether my previous message was clear or if I effectively explained the procedure.
Should I clarify any part of it?

However, I decided to try the steps described above on a new machine, but when I clicked on the link I got the following error message:

An error occurred: Unknown flag: --profile=data\profile

I had found that command line parameter in several conversations on this forum, so I do not really know why it is not working in my case.

Does anyone know whether these parameters changed in recent releases and where to find an updated list of accepted flags?

Thanks

The correct syntax is --profile data\profile (with no equals sign).

1 Like

Isn't it already what the PortableApps release do? Or if it doesn't maybe they'd accept a PR?

Thanks! This works as expected.
I will update my guide above (I also noticed that you need to specify the full absolute path)

I have also noticed that for user-data-dir you need the =, and it does not work if you do not specify it.
Out of curiosity, is there a specific reason for this difference?

Isn't it already what the PortableApps release 2 do?

Not really.

I'm not an expert on this, but from what I've gathered, they have a specific custom format for their packages that dictates both the file and directory layout as well as the operating behaviour of portable apps. Therefore, (AFAIK) they create new launchers to adapt the behaviour of each app to their format.

What I am trying to do here is to only use the functionalities already available in Joplin and avoid any other dependency. This should allow a more stable and future-proof solution.

Furthermore, if this experiment is successful, I hope it could serve as a foundation for a proper Portable version of Joplin (see, for instance, Joplin Portable should have everything in the same place).

Moreover, by using this approach you are completely independent from PortableApps.com Platform and releases/updates.
As you have noticed in this post, they might not be very active or not have the resources to support all apps; for instance, at the moment for Joplin their "Date Updated" is "2024-05-23" and it is still v2 (even if we know that v3 has been released long time ago).
In addition, as you pointed out in this post, there is no interest in maintaining another different package/platform; that is why I am trying to only use the functionalities already available in Joplin.

However, please let me know if I am overlooking anything.

As I understand PortableApps creates this launcher so that it can some cleanup after the app closes - such as deleting cached and temp files in various folders. I don't think Joplin can achieve this without a launcher since it's Electron, which we don't fully control, that's going to create these extra files.

--user-data-dir is a generic Chromium flag, and those normally seem to always use the equals sign. On the hand, --profile is specific to Joplin, so the question can probably only be answered by the one who first implemented the custom profile flag.

1 Like

As I understand PortableApps creates this launcher so that it can some cleanup after the app closes - such as deleting cached and temp files in various folders.

Are they really needed?
Considering that what I want to achieve is just to run Joplin Portable in an actual "portable" way (as discussed in many threads of this forum).

Moreover, are their benefits sufficient to outweigh all the drawbacks we experience when using the app from PortableApps.com (some of which I mentioned in my previous message)?

Just to clarify, do you foresee any issues with running Joplin Portable using the method proposed in this thread?

Thank you very much for all your useful and precise answers :smiley:

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