Can I run a second instance of Joplin?

I’m wondering, if there’s a way to start a second instance of Joplin.

I read about the --profile flag in the post Is there any way to use as a portable app?, but I have no idea to use that on macOS.

e.g. ./Joplin --help or ./Joplin -h only brings the current running Joplin version to the front.
Shouldn’t the above commands show a ilst of available command line options instead?

Can I use my running “production” Joplin app next to a second one, which I only start up for testing and/or developing?

4 Likes

may be with something like this

The --profile flag normally can be used in macOS too, though I wouldn’t know how to use this to make it portable.

At the moment, the app is limited to one running instance only - this was to avoid people accidentally running multiple instances in the background, all syncing with each others.

I wouldn’t be opposed to make this optional though as it would indeed be useful to run multiple portable versions of it - eg. one for work, one for personal notes, one to share projects, etc.

4 Likes

Thanks. I did not mean how to invoke it, but rather how to make it spawn a second instance.
But apparently this is not supported.

Also, I was wondering why there's no usage text for the command.

I'd understand, if this limitation were enforced per profile. But if I had several profiles, it would be rather unlikely that this would happen. Unless the user explicitly sets the same settings, but there's no help for stupidity.

I never really thought of using a different profile as portable. Portable only means that it can be run from a location without having to install it. This terminology usually only applies (in most cases) to Windows anyway.

But yeah, it would make sense during development to start the version one is working on with test notes.

Btw, any chance you could implement a --help flag that shows the list of command line options?

1 Like

Joplin already does that. When you run it with the run.sh script, it uses a separate dev profile.

Maybe the instance limit could be optional, or 'off by default' in the Portable app.
I really like the idea of one instance per profile, though. (A visual indication of which window belongs to which profile would be helpful (e.g. in the top bar) to avoid confusion. Or is that only me, who keeps hitting wrong windows when alt-tabbing between two dozen windows? :smiley: :sweat_smile:)

1 Like

It would indeed make sense, but I never did as I see these flags as non-official, more for advanced use.

Awesome, good to know. Cheers.

I think I really need to understand what "portable app" means in the Joplin context. What is a Joplin portable app and what's the difference to the standard app? The command line flags are available for both, so what has "portable" to do with the things I was asking?

Thanks for the info. I always add some usage info, even if it's just for expert/advanced usage. However, I do not show hidden flags by default. I only show them when a certain env var is set.

I think I really need to understand what “portable app” means in the Joplin context. What is a Joplin portable app and what’s the difference to the standard app?

It means that all settings are saved in a directory (in this case "JoplinProfile/") relative to the executable, so if you move it to somewhere else with a USB drive, the app will still work.

For the multiple instances, I agree it would make sense to scope them to the profile, so multiple apps could run, each with different profiles. It's actually a better idea than making this an option as I've suggested.

2 Likes

Do you have this in your backlog or shall I open a github issue?

Yes feel free to open an issue to keep track of it, it’s not on the backlog at the moment.

2 Likes

This would be definitely great - I have nextcloud accounts and Joplin profiles for work and private. Would be great to be able to open both at a time.
Btw. this also rules for the Android app… is there a chance that this could be operating several accounts (at least for my part it would be fine if only one at a time was active).

1 Like

I had to remove the solution, because it solved my original problem, but not my question.

Running 2 instances means running them at the same time, which is currently not supported by Joplin. So maybe the solution is the github feature request for this topic.

Scaling is good, but it’s hard, because a lot of things need to be changed in the infrastructures. I’d be amazed if this feature is accomplished soon enough with current available resources. Right now it’s even impossible to use the same sqlite db with different profile settings for Joplin, either by desktop or terminal.

Using the same db for several profiles would be a design flaw anyway.

Here is how it should be implemented:

  • rename database.sqlite to default.sqlite
  • if no profile is specified, use default.sqlite
  • if --profile xyz is specified, create and/or use database xyz.sqlite
  • add a menu item to switch profiles

Or you could use separate profile directories (default, xyz, …) in .config/joplin(-desktop).

Either way this should be fairly easy to implement.

3 Likes

Sounds easy - even for a non-developer like me :wink:
So the major issue is that Joplin (desktop/mobile) needs to:

  • either allow second instances
  • or switch profiles/profile directories

Personally I think it would suffice to allow for profile switching within the app. Not neccessarily multiple instances required.

1 Like

Well, let's see what's gonna happen. I'd like to see both options. :wink:

1 Like

I am looking forward to multiple instances in Joplin as well.
In testing the --profile feature today I found that on windows desktop the web clipper
does not clip to a Joplin instance started with --profile - even though the clipper-service
is started and the name of the notebook of the new instance does show up in web clipper.
The clipped page just never shows up in the notebook.
Am I missing something or is this behavier a bug or a feature ?
Cheers Steuma