G’day, I just got Lemmy going on my site https://apollo.town and it doesn’t appear to be federating. I ran through the Lemmy troubleshooting docs and I can return valid JSON from the site, but I can’t look up anything on lemmy.ml from my site - although I can look up my site from lemmy.ml.
Caddy is my reverse proxy with the world’s simplest config:
root@apollotown:~/lemmy# cat Caddyfile
# apollo.town Lemmy instance
apollo.town {
reverse_proxy :4040
}
During initial setup, did you specify to federate with yourself? Clicking the instances link at the bottom of your page, shows:
If you specify an instance to explicitly federate with, all other instances are disallowed.
When I go look in the admin settings, both Allowed and Disallowed boxes are blank, but it’s possible I put my host in somewhere I wasn’t supposed to in the configs. Let me double check that, where in the configs files would I be looking?
Sorry I have no idea. I’ve just never seen an instance “linked” to itself. Something is definitely wrong. Might be easier to blow away the database and start again.
I just started this about 15 minutes ago, so this is as clean as it gets. I must have just missed something somewhere.
Blew away the database and it’s still there. Removed all references to apollo.town in the docker-compose, lemmy.hjson, and nginx, other than in the lemmy.json where it SPECIFICALLY says to put your domain name. I’ll change that anyway to try it
Check the logs, if you see something about http error for lemmy.ml then the issue is the internal network.
Add a 3rd network just like the one for the proxy and add it to the lemmy container.
What happened to me was caused by this, the lemmy container couldn’t connect to the internet so it wasn’t able to find the other instances.I think you might be on to something. I looked up myself(@[email protected] from apollo.town and got the following:
2023-06-09T04:19:01.663684Z ERROR HTTP request{http.method=GET http.scheme="https" http.host=apollo.town http.target=/api/v3/ws otel.kind="server" request_id=a0092113-8277-47a7-9e73-d9bedd908228 http.status_code=101 otel.status_code="OK"}: lemmy_server::api_routes_websocket: couldnt_find_object: Request error: error sending request for url (https://beehaw.org/.well-known/webfinger?resource=acct:tekeous@beehaw.org): operation timed out 0: lemmy_apub::fetcher::search::search_query_to_object_id at crates/apub/src/fetcher/search.rs:17 1: lemmy_apub::api::resolve_object::perform with self=ResolveObject { q: "@[email protected]", auth: Some(Sensitive) } at crates/apub/src/api/resolve_object.rs:21 2: lemmy_server::root_span_builder::HTTP request with http.method=GET http.scheme="https" http.host=apollo.town http.target=/api/v3/ws otel.kind="server" request_id=a0092113-8277-47a7-9e73-d9bedd908228 http.status_code=101 otel.status_code="OK" at src/root_span_builder.rs:16
I’m not too familiar with docker networks - how would I add a third one?
So you want to have this:
networks: # only ports facing any connection from outside lemmyexternalproxy: lemmybridge: # communication between lemmy services lemmyinternal: driver: bridge internal: true
And in the container this.
lemmy: image: dessalines/lemmy:0.17.3 hostname: lemmy networks: - lemmyinternal - lemmybridge restart: always
(leave the rest as is, you can name the new network however you want)
You’re a bloody genius, thank you, that appears to have solved the problem.
As a logged in user have you tried searching for a remote community such as: [email protected]
Nothing comes up on my server. Other servers can see me.
Create a community on your instance to test with.
Ah HA! Whatever I add to lemmy.hjson is added as a federated instance.
# the domain name of your instance (eg "lemmy.ml") hostname: "lemmy.ml"
And now lemmy.ml is listed as my only linked instance.
yeah that should be your own hostname… “apollo.town”.
I’m not sure that’s not by design, because lemmy.ml lists itself on Instances here.
I did enable and disable federation debug mode, would that have bunged something up?
I’ve never tried it, but I wouldn’t think so. I’d expect it to be more verbose in logging.