๐ Table of Contents
๐ฏ Overview
This guide will help you set up an OpenADP server on your Raspberry Pi running either Raspberry Pi OS or Fedora 42. OpenADP servers provide distributed secret sharing capabilities, allowing users to securely encrypt files with threshold cryptography.
๐ Secure
Noise-NK encrypted communications with authentication codes
๐ Distributed
Part of a global network of OpenADP servers
โก Efficient
Optimized for Raspberry Pi hardware
๐ง Easy Setup
Automated installation and configuration
๐ Requirements
Hardware Requirements
- Raspberry Pi 4 (2GB RAM minimum, 4GB+ recommended)
- MicroSD Card (32GB minimum, Class 10 or better)
- Reliable Internet Connection (Ethernet preferred)
- Power Supply (USB-C 3A+ recommended for Pi 4 stability)
Software Requirements
- Operating System: Raspberry Pi OS (64-bit) or Fedora 42 (ARM64)
- Go 1.21+ (will be installed automatically)
- Git (usually pre-installed)
- SSH access (for remote management)
Network Requirements
Choose your hosting approach:
- Option A - Direct Public IP: Static IP or Dynamic DNS, any port accessible
- Option B - Cloudflare Proxy: Hide your IP behind Cloudflare (recommended for home users)
For Direct Public IP only: Domain name and SSL certificate (Let's Encrypt) recommended
For Cloudflare Proxy: We provide subdomain (like xyzzy.openadp.org) and SSL automatically
๐ Installation Steps
Prepare Your Raspberry Pi
Choose the instructions for your operating system:
๐ For Raspberry Pi OS (Debian-based):
๐ฉ For Fedora 42:
Install Go
OpenADP requires Go 1.21 or later:
๐ One-Command Installation
OpenADP includes an automated installation script that does everything for you!
โจ What the Script Does Automatically:
- Detects your OS (Raspberry Pi OS, Fedora, etc.)
- Installs the right packages for your system
- Downloads and installs Go compiler
- Builds OpenADP server binary
- Creates service user and directories
- Sets up systemd service
- Starts the server and runs tests
๐ Easy Updates
To update your server later, just run the same script again:
๐ Hosting Options
Choose how you want to make your server accessible to the internet:
Option A: Direct Public IP Hosting
Host your server directly with your own public IP address. This gives you full control but exposes your IP address.
Requirements:
- Static IP address or Dynamic DNS service
- Router port forwarding (your chosen port โ your Pi)
- Firewall configuration (covered in installation steps)
- Domain name (optional but recommended)
- SSL certificate setup (Let's Encrypt recommended)
Option B: Cloudflare Proxy (Recommended for Home Users)
Hide your IP address behind Cloudflare's network! This is perfect for home users who want privacy and don't want to expose their residential IP.
โ Benefits of Cloudflare Proxy:
- IP Privacy: Your IP address stays hidden
- Free Subdomain: We provide yourname.openadp.org (like xyzzy.openadp.org)
- Automatic SSL: HTTPS encryption included, no setup needed
- DDoS Protection: Cloudflare handles attacks
- No Port Forwarding: No router configuration needed
- Global CDN: Better performance worldwide
๐จ Setup Required on Discord
You MUST ping us on Discord for Cloudflare setup! We need to:
- Assign you a subdomain (like dave.openadp.org)
- Create a CNAME DNS record for your server
- Provide you with 2 commands to run on your Pi
- Configure the Cloudflare tunnel connection
Join Discord: https://discord.gg/TaHNeGsE8j
๐ฏ Perfect for Dave and Home Users!
This option is ideal for volunteers like Dave who want to contribute a server but don't want to expose their network. Two simple commands and you're protected by Cloudflare's global network!
๐ Port Flexibility
You can use any port you want! Common choices:
- Port 80: Standard web port (no port number in URL)
- Port 8080: Default OpenADP port
- Custom ports: 3000, 8000, 9000, etc.
When you register on Discord, we'll include your chosen port in api/servers.json
so clients can find you correctly.
โ๏ธ Configuration (Optional)
The installation script creates a working configuration automatically. You can customize it if needed:
Customize Server Settings
Edit the configuration file if you want to change ports or other settings:
โ ๏ธ Configuration Notes
- The script creates a secure default configuration
- Server keys are generated automatically
- Database and logs are set up in /opt/openadp/
- Only edit if you need custom settings
Configure Firewall
Open the necessary ports for your operating system:
๐ For Raspberry Pi OS (UFW):
๐ฉ For Fedora 42 (firewalld):
๐งช Testing Your Server
Start the Service
Test Server Functionality
โ Success Indicators
- Service status shows "active (running)"
- Echo endpoint returns your test message
- Server info includes Noise-NK public key
- Health endpoint returns "OK"
- No errors in the logs
๐จ CRITICAL: Server Registration Required
Your server won't be discoverable by clients until it's added to the network!
- Join our Discord server immediately
- Share your server details with the team
- We must manually add your server to
api/servers.json
- Only then will clients be able to find and use your server
Don't skip this step! A working server that isn't registered is invisible to the network.
๐ง Maintenance
Regular Updates
Log Rotation
Monitoring
๐ Troubleshooting
Common Issues
โ ๏ธ Service Won't Start
- Check configuration file syntax
- Verify file permissions
- Ensure port 8080 is not in use
- Check system logs:
sudo journalctl -u openadp
โ ๏ธ Connection Refused
- Verify firewall settings
- Check if service is running
- Test local connectivity first
- Verify router port forwarding
โ ๏ธ High Memory Usage
- Monitor with
htop
- Check database size
- Consider log rotation
- Restart service if needed
โ ๏ธ Cloudflare Tunnel Issues
- Check if cloudflared is running:
ps aux | grep cloudflared
- Restart tunnel:
sudo systemctl restart cloudflared
- Check tunnel logs:
journalctl -u cloudflared -f
- Ping Discord if tunnel stops working
Diagnostic Commands
OS-Specific Package Management
๐ฌ Support
๐ Documentation
๐ Issues
๐ฌ Community
๐ Network Status
๐ Congratulations!
Your OpenADP server is now running and contributing to the distributed network. Thank you for supporting privacy and security!
๐ Special Thanks to Dave!
This guide was enhanced specifically to support Dave's Raspberry Pi 4 running Fedora 42. Thanks to community volunteers like Dave, we can support more diverse setups and make OpenADP accessible to everyone!
Next steps:
- ๐จ FIRST: Join Discord and ping us to add your server to the network!
- Register your server at servers.openadp.org
- Set up SSL/TLS with Let's Encrypt
- Configure monitoring and alerting
- Join the community discussions