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

