Void is a modern, high-performance reverse proxy and maintenance system developed by ByteBrush Studios. It provides intelligent traffic routing with beautiful, techy maintenance pages when services are unavailable. Built with Go for exceptional performance and featuring a stunning glassmorphic UI with animated backgrounds.
- π Intelligent Reverse Proxy: Automatically routes traffic to healthy backends and shows maintenance pages when services are down
- π¨ Modern UI: Beautiful glassmorphic design with animated backgrounds and smooth transitions
- β‘ High Performance: Built with Go's concurrency model for lightning-fast response times
- π± Responsive Design: Works flawlessly on desktop, tablet, and mobile devices
- π οΈ Debug Information: Built-in debugging tools with client and server information
- π Multi-Service Support: Manage multiple services with individual configurations
- π Smart API Handling: JSON responses for API endpoints during maintenance
- π§ Easy Configuration: Simple YAML-based service configuration
- π³ Container Ready: Docker and Kubernetes compatible
- π Multiple Deployment Options: Works with Nginx, Traefik, Dokploy, and more
Experience the modern, techy interface of Void:
Clean, modern maintenance page with glassmorphic design

Comprehensive debug information with syntax highlighting
- Go 1.18 or higher (for building from source)
- OR Docker (for containerized deployment)
-
Download and Build
git clone https://github.com/ByteBrushStudios/void.git cd void make build -
Configure Services
# Copy example service configuration mkdir -p services cp examples/services/example.yaml services/myapp.yaml # Edit the configuration file
-
Run Void
./void
- Using Docker Compose
git clone https://github.com/ByteBrushStudios/void.git cd void cp examples/services.yaml.example services.yaml docker-compose -f examples/docker-compose.yml up -d
Void will start on port 1292 by default and begin reverse proxying to your configured services.
Void uses YAML configuration files in the services directory to define your services:
# services/myapp.yaml
services:
- name: "My Web Application [Production]"
host: "http://127.0.0.1:3000" # Backend server URL
domain: "myapp.com" # Domain to match requests
support: "https://discord.gg/support"
status: "https://status.myapp.com"You can create multiple YAML files to organize your services by project or environment.
- Healthy Service: Void reverse proxies requests to the backend defined in
host - Unhealthy Service: Void displays the beautiful maintenance page
- API Endpoints: Services listed in
apiUrlsreceive JSON responses during maintenance
| Field | Description | Example |
|---|---|---|
name |
Display name for the service | "My App [Production]" |
host |
Backend server URL for reverse proxy | "http://127.0.0.1:3000" |
domain |
Domain to match requests against | "myapp.com" |
support |
Support/contact URL | "https://discord.gg/support" |
status |
Status page URL | "https://status.myapp.com" |
Perfect for traditional server setups. Void acts as a fallback when your main services are down.
# Copy the example configuration
cp examples/nginx.conf /etc/nginx/sites-available/your-site
# Edit and enable the configuration
sudo nginx -t && sudo systemctl reload nginxSee examples/nginx.conf for a complete production-ready configuration.
Ideal for containerized environments with automatic service discovery.
# Copy Traefik configuration
cp examples/traefik.yml /etc/traefik/
# Void integrates seamlessly with Traefik's circuit breaker middlewareModern deployment platform with built-in container orchestration.
# Import the Dokploy configuration
dokploy import examples/dokploy.json
# Deploy with zero-downtime rolling updatesFor production server deployments:
# Copy service file
sudo cp examples/void.service /etc/systemd/system/
# Enable and start
sudo systemctl daemon-reload
sudo systemctl enable void.service
sudo systemctl start void.service| Variable | Description | Default |
|---|---|---|
VOID_PORT |
Server port | 1292 |
VOID_LOG_LEVEL |
Log level (debug, info, warn, error) | info |
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Load Balancer ββββββ Void ββββββ Backend Apps β
β (Nginx/Traefik)β β Reverse Proxy β β (Your Services) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β Maintenance UI β
β (When backend β
β is unhealthy) β
βββββββββββββββββββ
- Incoming Request β Load balancer routes to Void
- Domain Matching β Void matches request domain to configured service
- Health Check β Void attempts to proxy to backend service
- Success β Request proxied to healthy backend
- Failure β Beautiful maintenance page served (HTML) or JSON response (APIs)
- Automatic Failover: Seamlessly switches between backend and maintenance mode
- Domain-Based Routing: Route different domains to different backend services
- Health Detection: Automatically detects when services are available again
- Header Preservation: Maintains original request headers for proper backend handling
apiUrls:
- "api.example.com"
- "webhooks.example.com"API endpoints receive structured JSON responses instead of HTML:
{
"message": "This service is down for maintenance...",
"service": {
"name": "API Server [Production]",
"domain": "api.example.com",
"support": "https://support.example.com",
"status": "https://status.example.com"
},
"info": {
"version": "2.0.0-alpha.1",
"commit": "abc123"
}
}The debug panel provides comprehensive diagnostics:
- Server Info: Void version, commit hash, routing details
- Client Info: IP address, geolocation, browser details with privacy controls
- Request Details: Path, hostname, and routing information
- Animated Background: Subtle particle animations and grid patterns
- Glassmorphic Design: Modern blur effects and transparency
- Smooth Transitions: Buttery smooth animations and micro-interactions
- Responsive Layout: Perfect on all screen sizes and devices
- Dark Theme: Modern color palette optimized for readability
void/
βββ main.go # Main application entry point
βββ services.yaml # Service configuration
βββ app.html # Modern maintenance page template
βββ assets/ # Static assets (images, icons)
β βββ previews/ # UI preview images
βββ state/ # Application state management
βββ types/ # Type definitions and structs
βββ examples/ # Configuration examples
β βββ nginx.conf # Nginx integration example
β βββ traefik.yml # Traefik configuration
β βββ dokploy.json # Dokploy deployment config
β βββ void.service # Systemd service template
β βββ docker-compose.yml # Docker Compose setup
β βββ services.yaml.example # Service configuration example
βββ temp/ # Temporary files and drafts
βββ README.md # This documentation
# Install dependencies and build
make build
# Run in development mode with hot reload
make dev
# Run tests
make test
# Build for production with optimizations
make release| Endpoint | Description |
|---|---|
/* |
Main router - handles all requests with domain matching |
/__voidStatic/* |
Static assets (CSS, JS, images) |
Void works excellently behind load balancers:
HAProxy Example:
backend void_maintenance
server void1 127.0.0.1:1292 check
backend app_servers
option httpchk GET /health
server app1 127.0.0.1:3000 check fall 3 rise 2
server app2 127.0.0.1:3001 check fall 3 rise 2
frontend web_frontend
default_backend app_servers
# Fallback to maintenance on 5xx errors
errorfile 503 /dev/null
errorloc 503 http://void-maintenance:1292Kubernetes Example:
apiVersion: apps/v1
kind: Deployment
metadata:
name: void-maintenance
spec:
replicas: 2
selector:
matchLabels:
app: void
template:
metadata:
labels:
app: void
spec:
containers:
- name: void
image: void:latest
ports:
- containerPort: 1292
env:
- name: VOID_PORT
value: "1292"
- name: VOID_LOG_LEVEL
value: "info"We welcome contributions! Here's how to get started:
-
Fork & Clone
git clone https://github.com/your-username/void.git cd void -
Create Feature Branch
git checkout -b feature/amazing-feature
-
Make Changes & Test
make test make dev # Test your changes
-
Commit & Push
git commit -m "feat: add amazing feature" git push origin feature/amazing-feature -
Open Pull Request
- Follow Go best practices and
gofmtformatting - Add tests for new features
- Update documentation for any API changes
- Ensure backwards compatibility
- Test with multiple deployment scenarios
This project is licensed under the MIT License - see the LICENSE file for details.
- Go - The Go Programming Language
- Chi Router - Lightweight HTTP router
- Tailwind CSS - Utility-first CSS framework
- Iconify - Unified icon framework
- ipapi.co - IP geolocation API
- π Documentation: This README and inline code comments
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π¬ Discord: Join our community
- π§ Email: hey@bytebrush.dev
Void is developed and maintained by ByteBrush Studios, creators of high-quality open-source software for developers and businesses.
Other Projects:
- Infinity Bot List - The next generation Discord bot list
- Eureka - Powerful logging and utilities library
β Star this repo β’ π Report Bug β’ π‘ Request Feature
Made with β€οΈ by ByteBrush Studios