Pipe Network PoP Cache Node Setup Guide (Ubuntu 22.04+)
This guide provides a step-by-step instruction on how to install and run a Pipe Network CDN PoP (Point of Presence) Cache Node on Ubuntu 22.04 or later, including solutions to common errors such as missing GLIBC_2.39, permission errors on port 443, and API registration issues.
✅ 1. System Requirements
OS: Ubuntu 22.04 or newer (tested successfully on Ubuntu 24.04)
RAM: 8 GB or more recommended
Disk space: At least 100 GB free
Ports: HTTP (8080) and HTTPS (8443)
🔧 2. Create a dedicated user
sudo useradd -m -s /bin/bash popcache
sudo usermod -aG sudo popcache
📦 3. Download and install PoP binary
cd /opt
sudo mkdir popcache && sudo chown $USER:$USER popcache
cd popcache
wget https://github.com/pipe-network/releases/releases/download/v0.3.0/pop-v0.3.0-linux-x64.tar.gz
sudo tar -xzvf pop-v0.3.0-linux-x64.tar.gz
sudo chmod +x pop
⚙️ 4. Configure config.json
Create /opt/popcache/config.json with the following example content:
{
"pop_name": "xxxxxx",
"pop_location": "Ho Chi Minh City, Vietnam",
"server": {
"host": "0.0.0.0",
"port": 8443,
"http_port": 8080,
"workers": 0
},
"cache_config": {
"memory_cache_size_mb": 8192,
"disk_cache_path": "./cache",
"disk_cache_size_gb": 100,
"default_ttl_seconds": 86400,
"respect_origin_headers": true,
"max_cacheable_size_mb": 1024
},
"api_endpoints": {
"base_url": "https://dataplane.pipenetwork.com"
},
"identity_config": {
"node_name": "xxxx",
"name": "xxxxx",
"email": "xxxxx",
"website": "xxxx",
"discord": "xxxx",
"telegram": "@xxxx",
"solana_pubkey": "your_Solana_wallet"
}
}
🔑 5. Set invite code and validate config
export POP_INVITE_CODE=YOUR_INVITE_CODE
export POP_CONFIG_PATH=/opt/popcache/config.json
./pop --validate-config
Make sure registration does not return timeout or 429 Too Many Requests.
🧵 6. Fix permission issues on port 443 (Optional)
Since PoP uses a privileged port (443), either run as root or change to a higher port (e.g. 8443 as above). Ensure firewall rules allow the selected ports.
🛠️ 7. Create systemd service
Create file /etc/systemd/system/popcache.service:
[Unit]
Description=POP Cache Node
After=network.target
[Service]
Type=simple
User=popcache
Group=popcache
WorkingDirectory=/opt/popcache
ExecStart=/opt/popcache/pop
Environment=POP_CONFIG_PATH=/opt/popcache/config.json
Environment=POP_INVITE_CODE=YOUR_INVITE_CODE
Restart=always
RestartSec=5
LimitNOFILE=65535
StandardOutput=append:/opt/popcache/logs/stdout.log
StandardError=append:/opt/popcache/logs/stderr.log
[Install]
WantedBy=multi-user.target
Reload and start:
sudo systemctl daemon-reload
sudo systemctl enable popcache
sudo systemctl start popcache
🔎 8. Verify the service
sudo systemctl status popcache
curl http://localhost:8080
Expected output:
Pipe Network CDN PoP Cache Node - Direct HTTP
✅ 9. Logs and Monitoring
Logs are stored in:
/opt/popcache/logs/stdout.log
/opt/popcache/logs/stderr.log
Tail logs for real-time monitoring:
tail -f /opt/popcache/logs/stdout.log
🧼 10. Optional: Fix missing state.json
This file is created after successful registration. If not found, ensure:
Invite code is correct
Network is not blocking API endpoint
Registration isn’t rate-limited (HTTP 429)
🏁 Done!
Your PoP Cache Node is now active and accessible via:
HTTPS: https://<server-ip>:8443