Question about Docker Manager?

AI-generated summary

In a support thread titled “Question about Docker Manager?” under the docker-manager and plugin-api tags, AEW745 asks whether Docker Manager includes core plugins and if disabling them allows for forking and customizing those plugins. Heliosurge clarifies that self-hosted sites can install forked plugins via app.yml without disabling Docker, but warns that core-merged plugins (like the Discord login plugin) are no longer separate and may override custom versions. AEW745 confirms the issue: their forked Discord auth plugin is being overridden by core. Heliosurge suggests renaming the plugin or creating a custom alternative, noting that core plugins are deeply integrated. AEW745 specifies they’re modifying the Discord auth plugin to access the guilds.members.read scope for nicknames. merefield confirms the logic is now in core and provides the relevant GitHub code link. AEW745 switches to using discourse-oauth2-basic, but struggles with configuration and data usage. After rishabh directs them to the plugin’s guide, AEW745 gets it working but faces username/email conflicts when switching between OAuth2 providers. They resolve the conflict by swapping username and name fields for one provider AEW745. The thread concludes with NateDhaliwal requesting a screen recording for clarity, and AEW745 sharing the archived plugin repo link.

Does Docker manager come with Core plugins? If so, does disabling it allow me to fork core plugins and add my own features? Let me know.

Thanks!

If self hosted just comes with Docker you can add customized(forked) plugins in the app.yml – No need to disable Docker.

Here is the plugin install guide.

It’s not letting me disable some core plugins even though my site is self-hosted. I forked the Discord login plugin but since it is part of core my configurations keep getting overridden.

Edit:
Here is my site: forum.money-developers.com

It’s not respecting my forked plugins due to the core plugin overriding the forked plugin.

Any plugins not merged in core can be disabled in the app.yml

If say for example you wanted to disable Chat in favour of a modified version. You would likely need to change it’s name and ensure maybe it uses it’s own install directory

I don’t recall a Discord plugin being in core.

That might be different as that is a login

Plugins or features merged with core. May need special handling to create a custom one to use instead.

Plugins merged in core are apart of the main program. I don’t believe Docker has any control over them

I tried to install chat after missing the update it was merged in core. This caused a rebuild fail.

I’m talking about the Discord auth login

I will try changing the name of my plugin to see if that will work.

I edited my post above. Plugins merged in core are no longer seperate plugins. You might be able to create a custom plugin alternative. But you would need an experienced plugin author who has in depth knowledge of this.

Changing the name might help but not sure what all you would need to change to make it more independent.

There is a Development category that may help to get the guidance you’re looking for

@AEW745 Could you send a screen recording of this problem? I’m not very clear with regards to your problem.

I will send you the repo link because I read something that said you no longer have to install the plugin because it is included in core. So when I try to modify and install it the plugin doesn’t work.

Edit:
Here is the repo link
discourse/discourse-plugin-discord-auth: A Discourse plugin to login over Discord

Alright, got it. This is indeed odd. Just curious, in what way are you trying to modifying it?

This logic is in core. That repo is archived.

If you want to override what is happening in core, you’d need to build a plugin.

Here’s the area of code you are interested in:

However, as you can see, guilds is already part of scope, in case that was a concern?

I am trying to access the “guilds.members.read” scope so I can get nicknames too.

I will try to use this repo instead:
discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse
I will disable the default built-in Discord auth to see if it fixes it.

I started using oauth2 basic and the configuration is difficult. I am able to get a user’s JSONs data but can’t use it.

Edit:
Am I doing this right?

Are you following the instructions at Discourse OAuth2 Basic?

I got it working but now when I switch between 2 different Oauth2’s it says username and/or email taken.

I fixed it. However the only issue is if they have a similar username with oauth2 it doesn’t override their username or display name. So for one of the Oauth2 providers I had to swap username and name.