Monorepo for Aesthetic.Computer
aesthetic.computer
ATProto PDS Management#
Quick reference for managing the aesthetic.computer Personal Data Server (PDS).
Quick Commands#
Access PDS Admin Console#
# Drop into interactive SSH shell on PDS server
ac-pds
# Run pdsadmin commands directly
ac-pds account create # Create a new account
ac-pds account list # List all accounts
ac-pds create-invite-code # Generate an invite code
ac-pds update # Update PDS to latest version
Server Details#
- Hostname:
pds.aesthetic.computer - Wildcard:
*.pds.aesthetic.computer - Droplet:
aesthetic-computer-pds(DigitalOcean NYC3) - IP:
138.197.35.160 - Storage:
pds-blobs-aesthetic-computer(DigitalOcean Spaces) - Admin Email:
mail@aesthetic.computer
Common Tasks#
Create Your First Account#
# Interactive mode
ac-pds
# Then on server:
pdsadmin account create
# Or directly from dev container:
ac-pds account create
You'll be prompted for:
- Email address
- Handle (e.g.,
you.pds.aesthetic.computer) - Password
Generate Invite Code#
ac-pds create-invite-code
Check PDS Health#
# From dev container
curl https://pds.aesthetic.computer/xrpc/_health
# Should return: {"version":"0.4.x"}
Check Service Status#
ac-pds
# Then on server:
systemctl status pds
docker ps
View PDS Logs#
ac-pds
# Then on server:
docker logs pds
journalctl -u pds -f
Update PDS#
ac-pds update
Configuration#
PDS Environment File#
Located at: /pds/pds.env on server
Key settings:
PDS_HOSTNAME: Domain namePDS_EMAIL_SMTP_URL: SMTP settings (Gmail configured)PDS_EMAIL_FROM_ADDRESS: Email senderPDS_DATA_DIRECTORY: SQLite database locationPDS_BLOBSTORE_*: DigitalOcean Spaces configuration
To edit:
ac-pds
nano /pds/pds.env
systemctl restart pds
Spaces Credentials (Blob Storage)#
Already configured in /pds/pds.env:
- Region:
nyc3 - Bucket:
pds-blobs-aesthetic-computer - Endpoint:
https://nyc3.digitaloceanspaces.com
Bluesky App Integration#
- Open Bluesky app or mobile app
- Click "Sign in" → "Hosting Provider"
- Enter:
https://pds.aesthetic.computer - Use your account credentials or invite code
Note: First time subdomain certificates take 10-30s to provision.
Deployment#
See /at/pds/ directory for:
QUICKSTART.md- 15-minute deployment guideDEPLOYMENT.md- Complete setup instructionsMAINTENANCE.md- Operations guidedeployment/digitalocean/- Automated deployment scripts
Redeploy from Scratch#
cd /workspaces/aesthetic-computer/at/pds/deployment/digitalocean
fish deploy.fish
Troubleshooting#
DNS Not Resolving#
# Check DNS propagation
dig pds.aesthetic.computer
dig random.pds.aesthetic.computer
# Should both return: 138.197.35.160
PDS Not Responding#
ac-pds
systemctl status pds
docker ps
docker logs pds
Email Not Sending#
Check SMTP configuration in /pds/pds.env:
ac-pds
grep SMTP /pds/pds.env
systemctl restart pds
Spaces Connection Issues#
ac-pds
grep BLOBSTORE /pds/pds.env
# Verify credentials match vault: ~/aesthetic-computer/aesthetic-computer-vault/at/deploy.env
Backup & Recovery#
Manual Backup#
ac-pds
/pds/pds-backup.sh
# Backups stored in: pds-blobs-aesthetic-computer/backups/
Restore from Backup#
ac-pds
# Stop PDS
systemctl stop pds
# Restore databases
aws s3 cp s3://pds-blobs-aesthetic-computer/backups/latest/accounts.sqlite /pds/
aws s3 cp s3://pds-blobs-aesthetic-computer/backups/latest/pds.sqlite /pds/
# Restart
systemctl start pds
Security#
- SSH access via key authentication only (
~/.ssh/aesthetic_pds) - Firewall configured for ports 22, 80, 443 only
- Let's Encrypt SSL/TLS via Caddy (auto-renewed)
- SMTP password stored in vault, not committed to git
Monitoring#
Health Check Script#
Located at: /at/pds/scripts/health-check.sh
cd /workspaces/aesthetic-computer/at/pds/scripts
bash health-check.sh
Metrics to Watch#
- Disk usage:
df -hon server - Memory:
free -h - Docker status:
docker stats pds - Log size:
du -sh /pds/*.log
Cost#
- Droplet: $6/month (1GB RAM, 1 vCPU, 25GB SSD)
- Spaces: $5/month (250GB storage, 1TB transfer)
- Total: ~$11/month
References#
- Official PDS Docs: https://github.com/bluesky-social/pds
- ATProto Specs: https://atproto.com/
- Discord: https://discord.gg/e7hpHxRfBP (AT Protocol PDS Admins)
Related Tools#
- Account management:
/at/post-to-bluesky.mjs - Painting sharing:
/at/share-latest-painting.mjs - Profile queries:
/at/query-profile.mjs - Post management:
/at/delete-all-posts.mjs