Deploy static content like JAMStack sites to the Veilid DHT with instant web access through gateway servers. Zero censorship, zero single points of failure - your content lives forever in the decentralized network.
- 📦 Simple Packaging: Bundle static sites into
.veilidpkgformat - 🌐 Instant Deployment: Publish to Veilid DHT with one command
- 🌍 Gateway Server: Full HTTP server for web browser access via subdomains
- 🔗 Universal Access: Automatic gateway URLs with SSL termination
- 🔐 Decentralized: Content stored in Veilid DHT, served through gateways
- 🚫 Zero Censorship: No central authority can remove your content
- 🌍 Unstoppable: Multiple gateway redundancy prevents takedowns
- 🎯 Developer Friendly: Four commands: bundle, publish, gateway, access
Static Site → Bundle → Veilid DHT → Gateway Server → Web Browser
(HTML/CSS/JS) (.veilidpkg) (Distributed) (subdomain.domain.com) (HTTPS)
↑
CENSORSHIP-RESISTANT
No single point of control
- Bundle your static site files into a package
- Publish the package to Veilid's distributed hash table
- Gateway serves content via subdomain routing (e.g.,
my-site.localhost:8080) - Share the gateway URL - fully accessible in any web browser
- Survive - Content remains accessible even if gateways are blocked
- Rust 1.70+ (install via rustup.rs)
- Static Website (HTML/CSS/JS files ready to deploy)
# 1. Clone and build
git clone https://github.com/jdbohrman/roselite
cd roselite
cargo build --release
# 2. Bundle your static site
./target/release/roselite-cli bundle ./my-website
# 3. Publish to Veilid DHT
./target/release/roselite-cli publish my-website.veilidpkg
# 4. Run gateway server
./target/release/roselite-gateway --domain mydomain.com --port 8080
# 5. Access via browser
# http://localhost:8080 (with Host: your-site-key.mydomain.com)# Bundle a directory into .veilidpkg
roselite-cli bundle ./dist
# Specify custom output name
roselite-cli bundle ./dist --output my-site.veilidpkg# Publish package to Veilid network
roselite-cli publish my-site.veilidpkg
# Returns: VLD0:ABCDEFxxxxxx (your DHT key)# Basic gateway
roselite-gateway --domain example.com --port 8080
# With custom cache directory
roselite-gateway --domain example.com --port 8080 --cache ./custom-cache
# Production mode with SSL proxy (coming soon)
roselite-gateway --domain example.com --proxy --sslFor public access, configure DNS records:
# TXT record for DHT resolution
your-site.example.com TXT "veilid-app=VLD0:YOUR_DHT_KEY_HERE"
# A record pointing to your gateway server
your-site.example.com A 123.456.789.10
- Content stored as compressed tar archives in Veilid DHT
- Cryptographically signed and immutable once published
- Distributed across multiple nodes for redundancy
- No central server can delete or modify content
For large websites exceeding DHT record size limits, Roselite automatically splits content across multiple records:
- Automatic Splitting: Large packages split into sequential chunks (0, 1, 2, ...)
- Optimal Size: Each chunk targets ~30KB to stay under DHT limits
- Compression: Content is gzip-compressed before chunking for efficiency
The main DHT key contains a lookup record with complete package metadata:
{
"manifest": { /* Package manifest */ },
"chunk_count": 5,
"total_size": 150000,
"chunk_keys": [
"VLD0:ABC123...000", // Chunk 0
"VLD0:ABC123...001", // Chunk 1
"VLD0:ABC123...002", // Chunk 2
"VLD0:ABC123...003", // Chunk 3
"VLD0:ABC123...004" // Chunk 4
]
}- Resolve DNS:
your-site.domain.com→VLD0:MainKey - Fetch Lookup: Download lookup record from main DHT key
- Parallel Download: Fetch all chunks simultaneously for speed
- Reassemble: Concatenate chunks in correct order
- Decompress: Extract tar.gz to serve individual files
- Cache: Store assembled content locally for subsequent requests
- Parallel Loading: Multiple chunks download simultaneously
- Efficient Updates: Only changed chunks need republishing
- DHT Compliance: Each record stays within Veilid's size constraints
- Local Development: Run
roselite-gatewayon localhost - Self-Hosted: Deploy on your VPS/cloud instance
- Public Gateways: Universal access points (coming soon)
- TXT Records: Map domains to DHT keys
- Subdomain Routing:
site-key.gateway-domain.com - SSL Support: Automatic HTTPS via Let's Encrypt (planned)
We're launching a network of public gateway servers for universal access:
- Public Gateway Nodes: Multiple geographic locations
- Automatic HTTPS: SSL certificates via Let's Encrypt
- CDN Integration: Edge caching for faster content delivery
- Custom Domains: Point your domain to any gateway
- Load Balancing: Automatic failover between gateways
- Zero Configuration: Publish once, access anywhere
- 🇺🇸 US East (Virginia)
- 🇺🇸 US West (California)
- 🇪🇺 EU (Frankfurt)
- 🇦🇺 Asia-Pacific (Singapore)
# Publish once
roselite-cli publish my-site.veilidpkg --gateway-url http://localhost:8080
# → Returns: VLD0:ABCDEFxxxxxx
# Access from anywhere
https://VLD0-ABCDEFxxxxxx.roselite.network
https://VLD0-ABCDEFxxxxxx.gateway.veilid.comroselite/
├── roselite-cli/ # Command-line bundling & publishing tools
├── roselite-gateway/ # HTTP gateway server
├── roselite-core/ # Shared Veilid integration logic
└── examples/ # Example sites and configurations
git clone https://github.com/jdbohrman/roselite
cd roselite
cargo build --releasecargo test --all"Veilid network not ready"
- Wait 30-60 seconds for initial DHT connection
- Check internet connectivity
- Ensure no firewall blocking UDP traffic
"File not found" on gateway
- Verify DNS TXT record is correct
- Check DHT key format:
VLD0:... - Clear gateway cache:
rm -rf .cache/
Gateway not starting
- Check port availability:
netstat -an | grep :8080 - Verify domain ownership for SSL mode
- Review logs for Veilid connection errors
Apache 2.0 License - see LICENSE file for details.
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
Roselite is developed by @jdbohrman with the goal of creating truly decentralized, censorship-resistant web hosting. If this project helps you deploy uncensorable websites, consider supporting development:
- 🌐 Universal Gateway Network: Public gateways worldwide for instant access
- 🔒 Enhanced Security: E2E encryption and content verification
- 🚀 Developer Tools: CLI improvements, web dashboard, API integrations
- 📱 Mobile Apps: Native iOS/Android apps for publishing and browsing
- 🌍 Community: Growing the ecosystem of decentralized web hosting
Your support helps maintain public gateways, develop new features, and keep the internet free and open for everyone.
Built with ❤️ for a decentralized web

