I just upgraded my instance to 0.18.0 using Ansible and I had to disable the option ‘Private instance’ directly on the database to get the lemmy docker up and running. I assume this is an intentional change, but should it really stop Lemmy from even running?
I said this elsewhere, I’ll repeat it here:
I don’t think you understand the point of federation or why you had to hack this. You cannot have federation - which is in fact putting yourself out there, making yourself publically known and open to send and receive messages - and also private, closed off, hosting your own instance.
I think all you wanted really was to close registrations and be on your own server, but that’s not private, that’s still a public server in terms of the 'verse. You’ll still be discoverable, just no one can sign up.
Private instances are for like companies who want to host their own internal lemmy instance for them to have a community. Maybe a marginalized group wants to have a completely private instance completely shut off from the rest of the fediverse that they don’t want to have shared with anyone.
I guess this comment was originally a response to a different problem, but in my case it wasn’t a “hack” - there was no problem with enabling federation on a private instance, and it worked as expected. I thought of a “private instance” as “can’t see it unless you log in, but federates exactly like a public instance would”, and that’s exactly how it worked in 0.17.4, but I understand if, in principle, it wasn’t supposed to work like that. Again, there was no need to hack anything on my end, it just worked.
I’m not sure those two settings should be compatible? If it’s a private instance then it means it should not federate.
I guess it was an oversight regarding breaking changes. What error did you get? It might help some people who’re experience similar problems.
Prior to v18, a private instance that federates could see other instances’ content, but its own content would not federate. Not sure if they changed it on purpose.
At least on 0.17.4, with Private Instance and Federation enabled, the comments and posts I made to remote communities were federated correctly to other instances. The change seems very intentional, as shown by the error message I got after I upgraded:
lemmy_1 | Error: LemmyError { message: Some("Cannot have both private instance and federation enabled."), inner: Cannot have both private instance and federation enabled., context: SpanTrace [] }
ncgnzlcl_lemmy_1 exited with code 1
The check giving this error is pretty old, so it seems that you got it to work was not intentional: https://github.com/LemmyNet/lemmy/blame/63d3759c481ff2d7594d391ae86e881e2aeca56d/crates/api_common/src/utils.rs#L539
As far as I can see, 0.18 and its release candidates only added additional checks preventing such an instance to be set up in the first place.
I see, thank you for the insight. According to this comment, after an instance on 0.18.0 is running one can still set it to private with federation enabled, so it seems this check is only preventing the instance from starting in that state.
Yes, that’s what this check (and the later introduced changes) are meant for. On the reasoning why this configuration is not desired I can’t comment.
Thankfully the error was very explicit:
lemmy_1 | Error: LemmyError { message: Some("Cannot have both private instance and federation enabled."), inner: Cannot have both private instance and federation enabled., context: SpanTrace [] }
ncgnzlcl_lemmy_1 exited with code 1
With both options enabled, my instance operated as expected on 0.17.4: there was no anonymous access to anything, but once logged in you could subscribe to communities from any public instances. They don’t seem incompatible at all, and my posts and comments were federated correctly outside of my instance.