Bluesky is a thing that exists.
Crazy fucking concept! Yeah, I finally got around to it. Gonna use it for more posting about my specific niche interests and stick to more general posting and getting news from Masto. Don’t hate y’all just feels a bit more lively over there.
Anyway, in lieu of everyone else talking about their weird-ass ways of setting up the PDS, I feel like I need to explain how I did mine, if only for my own sanity, because holy fuck I took two days to figure out what was wrong and how to fix it.
FUCK CADDY
Yelling that out into the void now.
Okay so for the longest time I have been using Nginx for website stuff. It just kinda makes sense to me? At least outside of headers, those never make sense regardless of who you are, just copy a preexisting config and move on or whatev. But yeah everything I’ve ever ran through Kyun used Nginx to figure out ports and stuff, so I assumed I could kinda do the same here. Unfortunately, I don’t understand Docker and am a dumbass, so it took me a while to realize the square peg won’t fit in the cirular hole.
By default, the script for setting up the PDS will install three things:
- Caddy
- The PDS itself
- Watchtower
The first is basically Nginx if it was more gay (endearingly) and Watchtower basically allows for clean updates without stopping the server in any way. Kinda neat.
Running both Nginx and Caddy simultaniously though meant that they were both fighting for the same ports of 80 and 443. I managed to kinda scoot Caddy to the side and use Nginx to talk to the PDS, however nothing to do with images would ever respond, and while images uploaded WOULD save, they could never be pulled out again. I assume this has to do with the containerization of Docker or whatever (never used it before this shit so idfk).
So after many failed attempts of getting Nginx to cooperate (and trying to remove Caddy completely from the docker compose file to do so), I eventually conceeded and reinstalled the PDS from scratch, and instead work from the inside out.
I wanted to figure out how to keep my basic bitch config without just completely going all-in on Dockershit, and so what I decided to do was a bit absurd but completely works:
- Run Caddy and everything else as expected by the PDS.
- Edit the Caddyrun file it uses as a configuration.
- Keep the part where it’s bsky.forgettable.xyz or *.bsky.forgettable.xyz to get to the PDS on port 443 (or 80 for an http request).
- Add an additional few lines where if it is looking for just forgettable.xyz to instead go to port 8443 (or 8080 if it’s an http request).
- Run Nginx outside of the Dockerstuff, just switching the port it’s looking for from 443 or 80 to 8443 and 8080.
- Everything else about Nginx is the same, http -> https requests and all.
SUPER scuffed, but to be honest, I don’t really go in and update shit or move shit all that often, so as long as I don’t have major infastructure changes I should be completely fine. Thank god for cron and shell scripts - actually, fuck it shoutout Linux and GNU devs y’all don’t get nearly enough praise for the work you do and I respect the fuck out of it.