Hello all,
I am trying to understand what I need to do to ensure that my Lemmy instance can be federated, found, and usable with other instances and users. https://GeekRoom.Tech is my instance.
Currently, the issues I’m running into are:
-
If I search for my own [email protected] from any other instance, nothing comes up.
-
When I try to add my instance to FediDB.org, it shows that my “Instance is invalid, unreachable or unavailable.”
-
When I subscribe to other communities from my instance, I am seeing posts, but no comments appear at all. I have verified that those same threads appear on the instance that they are generated on. (My understanding is that I should be able to see these comments and be able to respond to them)
-
All of the other communities that I have attempted to subscribe to are showing “Subscribe Pending”, but the 2 communities that I’ve created on my instance are obviously showing as Joined.
-
If I comment on a post from within my own instance, that post does not show up on the original post. (again, may be my misunderstanding of how to use Lemmy lol)
I know I’m asking a lot, but it seems to me that obviously something is misconfigured, or I’m using Lemmy wrong.
What am I doing wrong? I can post configs if needed.-
Edit1: Looks like, based on some changes I made here: https://lemmy.world/comment/15359241, that federation is now partially working as it is sending out activities… however, after waiting some more time eventually it shows that there are more activities that are behind (possibly after trying to edit a comment that I made and was trying to get it to post something to the feed)
Edit2: I have attempted to unsubscribe and resubscribe and it appears that is not working even after 24 hrs. The logs are showing when I am attempting to subscribe, and then the logs show that I am 1 activities behind for that action on all the subscribed servers. In addition, I changed the following:
set $proxpass "http://127.0.0.1:10633";
to
set $proxpass "http://127.0.0.1:1234";
However, I’m still not seeing any action on being up to date. I’m not seeing any new posts from other communities and I’m not seeing my comments on those remote subscribed communities showing up on the original posts.
Edit3: After doing some more digging, I believe I have found another part of the issue. So there’s the NGINX reverse proxy that I have installed at the host level, which redirects to port 127.0.0.1:10633 for the geekroomtech-proxy-1 container to serve content from.
If I set the initial $proxpass value to port 1234 it gives me a 502 bad gateway when doing the curl tests. If I set it as: set $proxpass “http://127.0.0.1:10633”; then it returns values properly.
However, the issue becomes when I have these next two conditional sections that breaks the curl tests and goes back to 502 bad gateway:
if ($http_accept = "application/activity+json") {
set $proxpass "http://127.0.0.1:8536";
}
if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
set $proxpass "http://127.0.0.1:8536";
}
When inside the internal proxy that lemmy provides, I can issue: curl -H “Accept: application/activity+json” http://lemmy:8536/c/rDataHoarder and returns information properly.
So… I exposed the ports 8536 on the Lemmy container, and magically, I’m no longer getting the 502 bad gateway errors.
ports:
- "127.0.0.1:8536:8536"
While I’m not seeing any failures for activity trying to come in, I’m still seeing communities aren’t updating, subscribes are still pending, and I’m still not getting any activity showing up in the feel.
You should put the lemmy-ui’s port (8635) first then in the conditions blocks, the lemmy’s port
set $proxpass "http://0.0.0.0/:{{ lemmy_ui_port }}"; if ($http_accept = "application/activity+json") { set $proxpass "http://0.0.0.0/:{{ lemmy_port }}"; } if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams/"") { set $proxpass "http://0.0.0.0/:{{ lemmy_port }}"; } proxy_pass $proxpass;
https://join-lemmy.org/docs/administration/troubleshooting.html
So when I look at the docker-compose file, the only exposures are 10633 on nginx-proxy which routes to 8536. Docker ps -a is showing lemmy-ui as 1234/tcp and lemmy as 8536.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 530dd3852e24 nginx:1-alpine "/docker-entrypoint.…" 15 hours ago Up 15 hours 80/tcp, 127.0.0.1:10633->8536/tcp geekroomtech-proxy-1 e5976396c4f2 dessalines/lemmy-ui:0.19.9 "docker-entrypoint.s…" 15 hours ago Up 15 hours (healthy) 1234/tcp geekroomtech-lemmy-ui-1 a91f86523a95 dessalines/lemmy:0.19.9 "lemmy_server" 15 hours ago Up 15 hours 8536/tcp geekroomtech-lemmy-1 15c8a65b2e02 asonix/pictrs:0.5.16 "/sbin/tini -- /usr/…" 15 hours ago Up 15 hours 6669/tcp, 8080/tcp geekroomtech-pictrs-1 135f75ceccf4 pgautoupgrade/pgautoupgrade:17-alpine "/usr/local/bin/dock…" 15 hours ago Up 15 hours (healthy) 5432/tcp geekroomtech-postgres-1
So you’re saying it should look like this instead?
set $proxpass "http://0.0.0.0/:1234"; if ($http_accept = "application/activity+json") { set $proxpass "http://0.0.0.0/:8536"; } if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams/"") { set $proxpass "http://0.0.0.0/:8536"; } proxy_pass $proxpass;
is that right?
yes 😅,
For me thats working like this anyway, ^^
I had to set it as this because if I used port 1234 for lemmy-ui then it would give me 502 bad gateway errors.
set $proxpass "http://127.0.0.1:10633"; if ($http_accept = "application/activity+json") { set $proxpass "http://127.0.0.1:8536"; } if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") { set $proxpass "http://127.0.0.1:8536"; }
But this works.