Secure tunneling service to expose your local services to the internet.
GiraffeCloud is a self-hostable reverse proxy and tunneling platform. Expose services running on your laptop, home server, or VPS to the internet using custom domains with automatic HTTPS—without revealing your real IP address.
Similar to Cloudflare Tunnel or Ngrok — but fully open-source and self-hosted.
- 🔒 Secure Tunneling - Expose local services safely through encrypted connections
- 🌐 Custom Domains - Use your own domains or get a free auto-generated subdomain
- 🔐 Automatic HTTPS - Let's Encrypt certificates handled automatically via Caddy
- 🔄 Auto-Reconnect - Intelligent retry logic with exponential backoff
- 📊 Web Dashboard - Manage tunnels through a modern Next.js interface
# macOS/Linux
curl -fsSL https://raw.githubusercontent.com/osa911/giraffecloud/main/scripts/install.sh | bash
# Linux with service (auto-start on boot)
curl -fsSL https://raw.githubusercontent.com/osa911/giraffecloud/main/scripts/install.sh | bash -s -- --service systemFor Windows and other installation methods, see docs/installation.md
# Login to GiraffeCloud
giraffecloud login --token YOUR_API_TOKEN
# Expose your local service
giraffecloud connect
# Check tunnel status
giraffecloud statusGiraffeCloud uses a hybrid tunnel architecture:
- gRPC Tunnels - Unlimited concurrent HTTP requests via HTTP/2 multiplexing
- TCP Tunnels - Real-time WebSocket and bidirectional communication
- Dual-Stream Control - Separate control channel for instant request cancellation
Key components:
- Go Backend - High-performance tunnel server and API
- Next.js Dashboard - Modern web interface for tunnel management
- PostgreSQL - User and tunnel data persistence
- Caddy - Automatic HTTPS and reverse proxy
For technical details, see docs/hybrid-tunnel-architecture.md
- Installation Guide - Detailed installation instructions
- Architecture Overview - Technical architecture
- Subdomain Feature - Free auto-generated subdomains
- VPS Deployment - Self-hosting guide
Browse all documentation in docs/
- Go 1.21+
- PostgreSQL 15+
- Node.js 22+ (for web dashboard)
- Make
# Clone repository
git clone https://github.com/osa911/giraffecloud.git
cd giraffecloud
# Set up environment
cp .env.example .env
# Edit .env with your configuration
# Initialize database
make db-init
make db-migrate
# Start development server
make dev (or make dev-hot)
# In another terminal, start web dashboard
cd apps/web
yarn install
yarn devgiraffecloud/
├── cmd/ # CLI and server entry points
│ ├── giraffecloud/ # CLI client
│ └── server/ # Tunnel server
├── internal/ # Go backend code
│ ├── api/ # API handlers
│ ├── tunnel/ # Tunnel implementation
│ └── db/ # Database layer
├── apps/
│ └── web/ # Next.js dashboard
├── docs/ # Documentation
└── scripts/ # Installation scripts
Contributions are welcome! Please feel free to submit issues and pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
- Website: giraffecloud.xyz
- GitHub: github.com/osa911/giraffecloud
- Documentation: docs/
- Development - Share localhost servers with teammates or clients
- Self-Hosting - Expose home services without port forwarding
- Demos - Show projects without deploying infrastructure
- IoT - Connect devices behind NAT/firewalls
- Testing - Webhook testing with real domains
Built with modern technologies:
- Go - Backend and CLI
- Next.js - Web dashboard
- PostgreSQL - Database
- Caddy - Reverse proxy and HTTPS
- gRPC - High-performance RPC framework
The internet should be easy to share — not locked behind limits, logins, or pricing walls.
You own the stack. We just help you reach higher. 🦒