Federating between two test instances?
-
I have two test instances of NodeBB 4.2.0 running in Proxmox containers. Both have HTTPS up and running using a non self-signed, shared wildcard cert. They are not accessible from the internet. Both have the default search plugin enabled. FWIW they were cloned from a single template, but the hostnames are different. Let's call them FooBB and BarBB. I'd like users on BarBB to be able to interact with content on FooBB and for users on FooBB to be able to interact with content on BarBB.
I've looked in a couple places, and here's what I'm able to gleam:
- In version 4.x of NodeBB, federation is enabled by default.
- You do not federate entire instances, as I believe is done with Lemmy, though you can blacklist or whitelist entire instances to block or allow your users from following their content.
- (Here's the rub) Following a foreign user or category is portrayed as a simple act of pasting something in the search bar. What that something is seems to differ depending on where I'm reading it. For categories, there is a bit at the top
> This category can be followed from the open social web via the handle general-discussion@barbb.mydomain.tld
There's even a link to copy the handle to the clipboard, making it seem that that is what you're supposed to paste in the search bar of your own instance. However, it doesn't seem to work for me. What does work for me is pasting the URL from the address bar into the search bar of FooBB.
Further, while users on FooBB can follow activities on BarBB, users on BarBB cannot do the same with FooBB. Since federation is enabled by default, and since there are no blacklist or whitelist set up, I'd think it would just work. The only thing I can think of that may have contributed to this is that I went into the management settings for the general discussion category of FooBB and, under
synchronize with...
, pastedhttps://barbb.mydomain.tld/category/2
, which has resulted in apending
status underactor
. When I attempt to recreate this on BarBB usinghttps://foobb.mydomain.tld/category/2
, the text merely disappears with no other indication as to what happened, no error message saying the string isn't formatted correctly, and no notice that my attempt to synch was rejected or has failed.Looking at log messages doesn't help. All it says is stuff about pruning users and groups. Is there a way I can see what's going on between the two instances that may be causing this? There's a
loopback
toggle under federation settings, but that's about sending ActivityPub requests to yourself.There's clearly a lot about federation I don't understand. My first instinct was that you needed HTTPS for ActivityPub to work, but merely having it doesn't seem to be sufficient.
-
I have two test instances of NodeBB 4.2.0 running in Proxmox containers. Both have HTTPS up and running using a non self-signed, shared wildcard cert. They are not accessible from the internet. Both have the default search plugin enabled. FWIW they were cloned from a single template, but the hostnames are different. Let's call them FooBB and BarBB. I'd like users on BarBB to be able to interact with content on FooBB and for users on FooBB to be able to interact with content on BarBB.
I've looked in a couple places, and here's what I'm able to gleam:
- In version 4.x of NodeBB, federation is enabled by default.
- You do not federate entire instances, as I believe is done with Lemmy, though you can blacklist or whitelist entire instances to block or allow your users from following their content.
- (Here's the rub) Following a foreign user or category is portrayed as a simple act of pasting something in the search bar. What that something is seems to differ depending on where I'm reading it. For categories, there is a bit at the top
> This category can be followed from the open social web via the handle general-discussion@barbb.mydomain.tld
There's even a link to copy the handle to the clipboard, making it seem that that is what you're supposed to paste in the search bar of your own instance. However, it doesn't seem to work for me. What does work for me is pasting the URL from the address bar into the search bar of FooBB.
Further, while users on FooBB can follow activities on BarBB, users on BarBB cannot do the same with FooBB. Since federation is enabled by default, and since there are no blacklist or whitelist set up, I'd think it would just work. The only thing I can think of that may have contributed to this is that I went into the management settings for the general discussion category of FooBB and, under
synchronize with...
, pastedhttps://barbb.mydomain.tld/category/2
, which has resulted in apending
status underactor
. When I attempt to recreate this on BarBB usinghttps://foobb.mydomain.tld/category/2
, the text merely disappears with no other indication as to what happened, no error message saying the string isn't formatted correctly, and no notice that my attempt to synch was rejected or has failed.Looking at log messages doesn't help. All it says is stuff about pruning users and groups. Is there a way I can see what's going on between the two instances that may be causing this? There's a
loopback
toggle under federation settings, but that's about sending ActivityPub requests to yourself.There's clearly a lot about federation I don't understand. My first instinct was that you needed HTTPS for ActivityPub to work, but merely having it doesn't seem to be sufficient.
Assuming that both FooBB and BarBB are identical, then there should be no reason that federation does not work. In reality of course, there are lots of reasons that can get in the way of things
Are you able to reset the category synchronization settings on both categories so that it's blank?
You should be able to have FooBB add
general-discussion@barbb.mydomain.tld
, and vice versa, using their handles. That's the tested approach.It might say pending at first but NodeBB should automatically confirm the follow and "pending" should go away. If it doesn't, then it's a sign that something happened along the way that interrupted the follow-accept handshake.
For AP logging, run NodeBB in development mode:
NODE_ENV=development
or./nodebb dev
.