Troubleshooting
Networking¶
Container Hostname¶
If you set the container hostname to the domain of your pds server,
you will get the error curl: (7) Failed to connect to example.com port 443 after 0 ms: Couldn't connect to server. You have two options.
- Do not set the hostname.
- Add the
extra_hosts:section to your compose file to act as an entry to /etc/hosts that manually points the FQDN to your external IP. See the Cloudflare DNS section for an example.
Cloudflare DNS¶
I do not use their services after their many controversies. Theo - t3.gg has a good video on the topic. I wont be providing support for any issues that may arise. If you are a CF user and encounter issues, disable DNS proxy and restart the service.
This container does not work well with Cloudflare. I won't provide support. However, here are some notes. In the Cloudflare control panel, you need to enable WebSockets. You also need to set
services:
bluesky-pds:
image: code.modernleft.org/gravityfargo/bluesky-pds:latest
extra_hosts:
- "example.com:0.0.0.0" # must be the external IP to bypass cloudflare.
I stopped using Cloudflare around the same time I was messing with this. So I don't have any more information than this.
A user on reddit commented with a setup for using cloudflared if that helps.
FAQ¶
Why does command pdsadmin ... give me curl: (7) Failed to connect?¶
The pds server is unable to resolve itself. See the Networking section for more information.
I keep getting "/pds/pds.env: line N: $N: unbound variable"¶
You have not set all of the required environment variables.
Error: Resource URL must use the https scheme¶
PDS_HOSTNAME is not set.
"Invalid Handle"¶
Bluesky provided a fix. Here's a copy of their post.
One part of our upgraded infrastructure may affect your profile. If you see your handle now says “Invalid handle,” please reverify it by navigating to Settings > Change my handle > Type in your current handle > Verify DNS Record > Update. (Basically, update to the same handle.)
ERROR: This script must be run as root
Current images bundle a pdsadmin wrapper that clears EUID/EGID, so pdsadmin runs directly. Older images exported those values, which shadowed the Bash EUID builtin that pdsadmin checks, so it refused to run even under docker exec as root. On an older image, clear the variables for the invocation with env --unset=EUID --unset=EGID.
ERROR: Reserved handle
The PDS rejects reserved handles such as test.<domain>. Use a compound handle like test-bot instead.