Deployed: Mar 3, 2026 3:35 PM EST Status: ✅ LIVE
Peer ID: 12D3KooWA9CMq2VYF5dt6TvWGPKKyXEwnp5Q2zwGtmb7XAu2Z8fG
Public Address:
/dns4/gork-relay-production.up.railway.app/tcp/4001/p2p/12D3KooWA9CMq2VYF5dt6TvWGPKKyXEwnp5Q2zwGtmb7XAu2Z8fG
URL: https://gork-relay-production.up.railway.app
Ports:
- 4001: P2P relay
- 9090: Metrics
gork-agent daemon --bootstrap-peers /dns4/gork-relay-production.up.railway.app/tcp/4001/p2p/12D3KooWA9CMq2VYF5dt6TvWGPKKyXEwnp5Q2zwGtmb7XAu2Z8fGhttps://railway.com/project/78c74c9f-3e1d-4ad6-a09f-516dd89c31b1
-
Attempt 1: Rust 1.80 → edition2024 incompatibility
- Fix: Updated to Rust 1.86
-
Attempt 2: Missing libclang for zstd-sys
- Fix: Added
clangandlibclang-devpackages
- Fix: Added
-
Attempt 3-5: Permission issues with agent init
- Fix: Tried different user permission strategies
-
Attempt 6: Config file format mismatch
- Problem: Created JSON, but relay used RocksDB (now SQLite)
- Fix: Runtime initialization
-
Attempt 7: Entrypoint script not in container
- Problem: Railway cached old build
- Fix: Added
CACHEBUSTarg to force rebuild
Entrypoint script (docker-entrypoint.sh):
#!/bin/bash
set -e
# Initialize agent if not already initialized
if [ ! -f /home/gork/.gork-agent/LOCK ]; then
echo "Initializing relay agent..."
gork-agent init --account relay.gork.protocol --dev-mode
fi
# Start relay
exec gork-agent relay --port 4001 --max-circuits 1000 --metrics --metrics-port 9090This initializes the database (now SQLite) on first run, then starts the relay.
Railway: ~$3-5/month
- 512MB RAM
- Minimal CPU
- Always-on
Agent A (NAT) → Railway Relay → Agent B (NAT)
↓ ↓
Connect to relay Connect to relay
↓ ↓
Relay introduces peers
↓
Direct P2P connection (hole punching)
- ✅ Relay deployed and running
- ⏳ Test with actual agents
- ⏳ Monitor performance
- ⏳ Add to Gork Protocol documentation
Dockerfile.railway- Railway-optimized Docker imagedocker-entrypoint.sh- Runtime initialization scriptrailway.json- Railway configuration
Success Metrics:
- Build time: ~2 minutes (cached)
- Startup time: ~3 seconds
- Memory: ~50MB
- Peer ID: Stable across restarts
This relay provides NAT traversal for all Gork Protocol agents, enabling true P2P communication.