{"id":28493068,"url":"https://github.com/hhftechnology/aetherlink","last_synced_at":"2026-02-27T05:05:56.919Z","repository":{"id":269799526,"uuid":"903438643","full_name":"hhftechnology/AetherLink","owner":"hhftechnology","description":"Secure HTTPS tunneling made simple. Create instant, secure tunnels to your local services with automatic SSL/TLS encryption.","archived":false,"fork":false,"pushed_at":"2025-08-14T05:30:04.000Z","size":98,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-14T05:31:16.060Z","etag":null,"topics":["caddy","dev-tools","developer-tools","development","https","https-proxy","local-development","localhost","reverse-proxy","secure-tunnel","ssl","tls","tunnel-server","tunneling","web-development"],"latest_commit_sha":null,"homepage":"https://forum.hhf.technology/t/secure-https-tunneling-made-simple-create-instant-secure-tunnels-to-your-local-services-with-automatic-ssl-tls-encryption/459","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hhftechnology.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-14T15:53:54.000Z","updated_at":"2025-08-14T05:30:07.000Z","dependencies_parsed_at":"2024-12-26T09:19:21.845Z","dependency_job_id":"edd105e2-07f2-4f1f-accc-cddb3571b026","html_url":"https://github.com/hhftechnology/AetherLink","commit_stats":null,"previous_names":["hhftechnology/aetherlink"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hhftechnology/AetherLink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FAetherLink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FAetherLink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FAetherLink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FAetherLink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hhftechnology","download_url":"https://codeload.github.com/hhftechnology/AetherLink/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FAetherLink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29885801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caddy","dev-tools","developer-tools","development","https","https-proxy","local-development","localhost","reverse-proxy","secure-tunnel","ssl","tls","tunnel-server","tunneling","web-development"],"created_at":"2025-06-08T09:07:23.693Z","updated_at":"2026-02-27T05:05:56.913Z","avatar_url":"https://github.com/hhftechnology.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AetherLink - Secure Tunneling Solution\n\nAetherLink is a **production-ready, secure tunneling solution** that creates HTTPS tunnels to expose your local services to the internet. Built with Go for performance and reliability, AetherLink provides enterprise-grade security with API key authentication while maintaining zero-configuration simplicity for authorized users.\n\nThe name \"AetherLink\" draws inspiration from the classical element \"aether\" - once thought to be the medium through which light traveled through space. Similarly, AetherLink serves as your secure medium for data transmission across the internet.\n\n\n##  Features in v1.1.0\n\n- **Pre-Shared API Keys**: Clients must authenticate before creating tunnels\n- **Multi-Layer Security**: API keys + JWT tokens + rate limiting + IP whitelisting\n- **Rogue Client Prevention**: Blocks unauthorized access even with known domain/IP\n- **Security Monitoring**: Real-time authentication failure alerts\n- **Auto-Cleanup**: Automatic removal of inactive tunnels\n- **Admin API**: Comprehensive API key management\n\n##  Core Features\n\n- **Enterprise Security**: API key authentication prevents unauthorized tunnel creation\n- **Zero Configuration**: Simple setup for authorized clients\n- **Secure HTTPS**: All connections encrypted end-to-end\n- **Custom Subdomains**: Request specific subdomains for your tunnels\n- **WebSocket Support**: Full support for real-time applications\n- **Cross-Platform**: Binaries for Linux, macOS, and Windows\n- **Docker Ready**: Production-ready container images\n- **Lightweight**: Minimal resource usage and fast startup\n- **Load Balancing**: Multiple concurrent connections per tunnel\n\n##  Quick Secure Setup\n\n### 1. Server Setup (Production-Ready)\n\n```bash\n# Download latest server\nwget https://github.com/hhftechnology/AetherLink/releases/latest/download/aetherlink-server-linux-amd64\nchmod +x aetherlink-server-linux-amd64\n\n# Start with authentication enabled\n./aetherlink-server-linux-amd64 \\\n  --address=0.0.0.0 \\\n  --port=8080 \\\n  --domain=tunnel.company.com \\\n  --secure=true \\\n  --auth \\\n  --auth-token=your-super-secret-server-key\n\n# Server output:\n#  Authentication is ENABLED\n#    - Clients must provide valid API keys\n#    - Use --create-api-key to generate client keys\n```\n\n### 2. Create API Keys for Authorized Clients\n\n```bash\n# Create API key for development team\n./aetherlink-server-linux-amd64 \\\n  --auth-token=your-super-secret-server-key \\\n  --create-api-key=\"development-team\" \\\n  --admin\n\n# Output:\n#    API Key created successfully!\n#    Key: ak_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z\n```\n\n### 3. Secure Client Usage\n\n```bash\n# Download client\nwget https://github.com/hhftechnology/AetherLink/releases/latest/download/aetherlink-client-linux-amd64\nchmod +x aetherlink-client-linux-amd64\n\n# Authorized client (works)\n./aetherlink-client-linux-amd64 \\\n  --server=https://tunnel.company.com \\\n  --port=3000 \\\n  --subdomain=myapp \\\n  --api-key=ak_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z\n\n# Rogue client (blocked)\n./aetherlink-client-linux-amd64 \\\n  --server=https://tunnel.company.com \\\n  --port=3000\n#  Authentication failed: API key required\n```\n\n##  Docker Deployment (Secure)\n\n### Server with Authentication\n\n```bash\n# Generate secure server secret\nexport AETHERLINK_AUTH_SECRET=\"$(openssl rand -hex 32)\"\n\n# Run secure server\ndocker run -d \\\n  --name aetherlink-server \\\n  -p 8080:8080 -p 62322:62322 \\\n  -e AETHERLINK_AUTH_SECRET=\"$AETHERLINK_AUTH_SECRET\" \\\n  hhftechnology/aetherlink-server:latest \\\n  --address=0.0.0.0 \\\n  --port=8080 \\\n  --domain=tunnel.company.com \\\n  --secure=true \\\n  --auth\n\n# Create API keys\ndocker exec aetherlink-server \\\n  /aetherlink-server \\\n  --create-api-key=\"team-dev\" \\\n  --admin\n```\n\n### Production Docker Compose\n\n```yaml\n# docker-compose.yml\nservices:\n  aetherlink-server:\n    image: hhftechnology/aetherlink-server:latest\n    restart: unless-stopped\n    ports:\n      - \"8080:8080\"\n      - \"62322:62322\"\n    environment:\n      - AETHERLINK_AUTH_SECRET=${AETHERLINK_AUTH_SECRET}\n    command: [\n      \"--address=0.0.0.0\",\n      \"--port=8080\",\n      \"--domain=tunnel.company.com\",\n      \"--secure=true\",\n      \"--auth\",\n      \"--issuer=company-tunnel-server\"\n    ]\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8080/api/status\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n```\n\n##  Security Architecture\n\n### Authentication Flow\n\n```mermaid\nsequenceDiagram\n    participant R as Rogue Client\n    participant A as Authorized Client  \n    participant S as AetherLink Server\n    participant L as Local Service\n\n    R-\u003e\u003eS: Request tunnel (no API key)\n    S-\u003e\u003eR: ❌ HTTP 401: API key required\n    \n    A-\u003e\u003eS: Request tunnel + API key\n    S-\u003e\u003eS: Validate API key\n    S-\u003e\u003eA: ✅ Tunnel info + JWT token\n    \n    A-\u003e\u003eS: Connect with tunnel ID + JWT\n    S-\u003e\u003eS: Validate JWT token\n    S-\u003e\u003eA: ✅ Tunnel established\n    \n    Note over A,S: Secure tunnel active\n    A-\u003e\u003eS: HTTP requests\n    S-\u003e\u003eL: Proxy to local service\n```\n\n### Security Layers\n\n1. **API Key Authentication**: Prevents unauthorized tunnel creation\n2. **JWT Tokens**: Secures tunnel connections\n3. **Rate Limiting**: Blocks brute force attacks\n4. **IP Whitelisting**: Network-level access control\n5. **Monitoring**: Real-time security event tracking\n\n##  Installation\n\n### From GitHub Releases (Recommended)\n\n```bash\n# Server\nwget https://github.com/hhftechnology/AetherLink/releases/latest/download/aetherlink-server-linux-amd64\nchmod +x aetherlink-server-linux-amd64\n\n# Client  \nwget https://github.com/hhftechnology/AetherLink/releases/latest/download/aetherlink-client-linux-amd64\nchmod +x aetherlink-client-linux-amd64\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/hhftechnology/AetherLink.git\ncd AetherLink\ngo mod download\ngo build -o aetherlink-server ./cmd/lt-server\ngo build -o aetherlink-client ./cmd/lt-client\n```\n\n### Using Go Install\n\n```bash\ngo install github.com/hhftechnology/AetherLink/cmd/lt-server@latest\ngo install github.com/hhftechnology/AetherLink/cmd/lt-client@latest\n```\n\n## Configuration\n\n### Server Options\n\n```bash\n./aetherlink-server [options]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--address` | \"127.0.0.1\" | Server bind address |\n| `--port` | \"8080\" | Server port |\n| `--domain` | \"\" | Domain for subdomain routing |\n| `--secure` | false | Enable HTTPS mode |\n| `--auth` | false | **Enable API key authentication** |\n| `--auth-token` | \"\" | **Server authentication secret** |\n| `--issuer` | \"aetherlink-server\" | JWT token issuer |\n| `--create-api-key` | \"\" | **Create API key (admin mode)** |\n| `--list-keys` | false | **List all API keys** |\n\n### Client Options\n\n```bash\n./aetherlink-client [options]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--server` | \"http://localhost:80\" | Server URL |\n| `--port` | \"80\" | Local port to expose |\n| `--subdomain` | \"\" | Custom subdomain |\n| `--api-key` | \"\" | **API key for authentication** |\n\n## Production Security Setup\n\n### 1. Secure Server Deployment\n\n```bash\n# Generate strong secrets\nSERVER_SECRET=$(openssl rand -hex 32)\nexport AETHERLINK_AUTH_SECRET=\"$SERVER_SECRET\"\n\n# Start production server\n./aetherlink-server \\\n  --address=0.0.0.0 \\\n  --port=8080 \\\n  --domain=tunnel.company.com \\\n  --secure=true \\\n  --auth \\\n  --issuer=company-production-server\n```\n\n### 2. API Key Management\n\n```bash\n# Create team-specific API keys\n./aetherlink-server --create-api-key=\"frontend-team\" --admin\n./aetherlink-server --create-api-key=\"backend-team\" --admin\n./aetherlink-server --create-api-key=\"devops-team\" --admin\n\n# Create API key with IP restrictions\n./aetherlink-server \\\n  --create-api-key=\"production-ci\" \\\n  --ip-whitelist=\"203.0.113.0/24,198.51.100.10\" \\\n  --admin\n\n# List all API keys\n./aetherlink-server --list-keys --admin\n```\n\n### 3. Client Distribution\n\n```bash\n# Secure distribution to team members\nexport AETHERLINK_API_KEY=\"ak_team_key_here\"\n\n# Team member usage\n./aetherlink-client \\\n  --server=https://tunnel.company.com \\\n  --port=3000 \\\n  --subdomain=alice-frontend\n```\n\n## Real-World Usage Examples\n\n### Secure Development Environment\n\n```bash\n# 1. Start secure server\n./aetherlink-server \\\n  --address=0.0.0.0 \\\n  --auth \\\n  --auth-token=dev-server-secret \\\n  --domain=dev.company.com\n\n# 2. Create development API key\n./aetherlink-server \\\n  --create-api-key=\"development\" \\\n  --admin \\\n  --auth-token=dev-server-secret\n\n# 3. Developers use API key\n./aetherlink-client \\\n  --server=https://dev.company.com \\\n  --port=3000 \\\n  --subdomain=react-app \\\n  --api-key=ak_development_key\n\n# Result: https://react-app.dev.company.com (secure)\n```\n\n### Production Staging Environment\n\n```bash\n# 1. Production server with IP restrictions\n./aetherlink-server \\\n  --address=0.0.0.0 \\\n  --auth \\\n  --auth-token=$PRODUCTION_SECRET \\\n  --domain=staging.company.com\n\n# 2. Create restricted API key for CI/CD\n./aetherlink-server \\\n  --create-api-key=\"github-actions\" \\\n  --ip-whitelist=\"140.82.112.0/20\" \\\n  --admin \\\n  --auth-token=$PRODUCTION_SECRET\n\n# 3. CI/CD pipeline usage\n./aetherlink-client \\\n  --server=https://staging.company.com \\\n  --port=4173 \\\n  --subdomain=pr-$PR_NUMBER \\\n  --api-key=$GITHUB_ACTIONS_API_KEY\n\n# Result: https://pr-123.staging.company.com (IP-restricted)\n```\n\n### Team Collaboration\n\n```bash\n# Different teams, different subdomains, same security\n./aetherlink-client --api-key=$FRONTEND_KEY --subdomain=frontend-alice\n./aetherlink-client --api-key=$BACKEND_KEY --subdomain=api-bob  \n./aetherlink-client --api-key=$MOBILE_KEY --subdomain=mobile-charlie\n\n# All protected with authentication\n```\n\n## API Endpoints\n\n### Public Endpoints\n\n- `GET /api/status` - Server status and statistics\n- `GET /api/tunnels/{id}/status` - Tunnel-specific status\n\n### Tunnel Creation (Requires API Key)\n\n- `GET /?new` - Create tunnel with random subdomain\n- `GET /{subdomain}` - Create tunnel with custom subdomain\n\n### Admin Endpoints (Requires API Key)\n\n- `GET /api/admin/keys` - List all API keys\n- `POST /api/admin/keys` - Create new API key\n- `DELETE /api/admin/keys/{key}` - Delete API key\n\n### Example API Usage\n\n```bash\n# Check server status (public)\ncurl https://tunnel.company.com/api/status\n\n# Create tunnel (requires API key)\ncurl -H \"Authorization: Bearer $API_KEY\" \\\n  https://tunnel.company.com/?new\n\n# Admin: List API keys\ncurl -H \"Authorization: Bearer $ADMIN_KEY\" \\\n  https://tunnel.company.com/api/admin/keys\n```\n\n## Firewall Configuration\n\n**Required Ports:**\n\n| Port | Protocol | Purpose |\n|------|----------|---------|\n| 8080 | TCP | HTTP/HTTPS server |\n| 62322 | TCP | Tunnel connections |\n| 80 | TCP | HTTP redirects (optional) |\n| 443 | TCP | HTTPS (with reverse proxy) |\n\n**Firewall Setup:**\n\n```bash\n# Ubuntu/Debian (ufw)\nsudo ufw allow 8080/tcp\nsudo ufw allow 62322/tcp\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\n\n# CentOS/RHEL (firewalld)\nsudo firewall-cmd --permanent --add-port=8080/tcp\nsudo firewall-cmd --permanent --add-port=62322/tcp\nsudo firewall-cmd --permanent --add-port=80/tcp\nsudo firewall-cmd --permanent --add-port=443/tcp\nsudo firewall-cmd --reload\n\n# Manual iptables\niptables -A INPUT -p tcp --dport 8080 -j ACCEPT\niptables -A INPUT -p tcp --dport 62322 -j ACCEPT\n```\n\n## Advanced Deployments\n\n### Kubernetes with Security\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: aetherlink-server\nspec:\n  replicas: 2\n  template:\n    spec:\n      containers:\n      - name: aetherlink-server\n        image: hhftechnology/aetherlink-server:latest\n        args:\n          - \"--address=0.0.0.0\"\n          - \"--port=8080\"\n          - \"--domain=tunnel.company.com\"\n          - \"--secure=true\"\n          - \"--auth\"\n        env:\n        - name: AETHERLINK_AUTH_SECRET\n          valueFrom:\n            secretKeyRef:\n              name: aetherlink-secrets\n              key: auth-secret\n        resources:\n          limits:\n            memory: \"512Mi\"\n            cpu: \"500m\"\n        securityContext:\n          runAsNonRoot: true\n          readOnlyRootFilesystem: true\n```\n\n### AWS with Secrets Manager\n\n```bash\n# Store secrets in AWS Secrets Manager\naws secretsmanager create-secret \\\n  --name \"aetherlink/auth-secret\" \\\n  --secret-string \"$(openssl rand -hex 32)\"\n\n# EC2 user data script\n#!/bin/bash\nSECRET=$(aws secretsmanager get-secret-value \\\n  --secret-id \"aetherlink/auth-secret\" \\\n  --query SecretString --output text)\n\ndocker run -d \\\n  -e AETHERLINK_AUTH_SECRET=\"$SECRET\" \\\n  -p 8080:8080 -p 62322:62322 \\\n  hhftechnology/aetherlink-server:latest \\\n  --auth --domain=tunnel.company.com\n```\n\n## Monitoring \u0026 Security\n\n### Security Event Monitoring\n\n```bash\n# Monitor authentication failures\ntail -f /var/log/aetherlink/server.log | grep \"authentication failed\" | \\\nwhile read line; do\n  echo \"SECURITY ALERT: $line\"\n  # Send to monitoring system\ndone\n\n# Rate limiting alerts\ntail -f /var/log/aetherlink/server.log | grep \"rate limit exceeded\" | \\\nwhile read line; do\n  IP=$(echo \"$line\" | grep -oE '([0-9]{1,3}\\.){3}[0-9]{1,3}')\n  echo \"RATE LIMIT: IP $IP blocked\"\ndone\n```\n\n### Health Checks\n\n```bash\n# Server health with authentication status\ncurl https://tunnel.company.com/api/status\n\n# Response includes security info:\n{\n  \"tunnels\": 5,\n  \"auth_enabled\": true,\n  \"tunnel_port\": 62322,\n  \"mem\": {...}\n}\n```\n\n##  Migration Guide\n\n### Upgrading from v1.0.x (No Auth) to v1.1.0 (With Auth)\n\n**Existing Deployments (Backward Compatible):**\n```bash\n# Your existing setup continues to work\n./aetherlink-server --address=0.0.0.0 --port=8080\n# ⚠️ Authentication disabled - still works but not secure\n```\n\n**Enable Security (Recommended):**\n```bash\n# 1. Add authentication to existing server\n./aetherlink-server \\\n  --address=0.0.0.0 \\\n  --port=8080 \\\n  --auth \\\n  --auth-token=your-secret-key\n\n# 2. Create API keys for existing clients\n./aetherlink-server --create-api-key=\"existing-clients\" --admin\n\n# 3. Update clients with API keys\n./aetherlink-client \\\n  --server=https://your-server.com \\\n  --port=3000 \\\n  --api-key=ak_generated_key\n```\n\n##  Security Best Practices\n\n###  Do's\n\n- **Enable authentication** in production (`--auth` flag)\n- **Use strong secrets** (32+ characters, random)\n- **Store secrets securely** (environment variables, secret managers)\n- **Rotate API keys regularly** (quarterly recommended)\n- **Use IP whitelisting** for sensitive environments\n- **Monitor authentication failures** and set up alerts\n- **Use HTTPS** in production (`--secure` flag)\n\n###  Don'ts\n\n- **Never put API keys in source code** or command line history\n- **Don't use weak server secrets** (dictionary words, short keys)\n- **Don't share API keys** between different teams/environments\n- **Don't run without authentication** in production\n- **Don't ignore security logs** and monitoring alerts\n\n##  Troubleshooting\n\n### Authentication Issues\n\n**1. API Key Required Error:**\n```bash\n# Error: authentication failed: API key required\n# Solution: Provide valid API key\n./aetherlink-client --api-key=ak_your_key_here --server=https://server.com --port=3000\n```\n\n**2. Invalid API Key Error:**\n```bash\n# Error: authentication failed: invalid API key  \n# Solution: Check API key or create new one\n./aetherlink-server --create-api-key=\"new-client\" --admin\n```\n\n**3. Rate Limit Exceeded:**\n```bash\n# Error: rate limit exceeded for IP X.X.X.X\n# Solution: Wait or contact administrator to whitelist IP\n```\n\n### Connection Issues\n\n**1. Connection Refused:**\n```bash\n# Check server is running and accessible\ncurl https://your-server.com/api/status\n\n# Verify firewall allows ports 8080 and 62322\nsudo ufw status\n```\n\n**2. Subdomain Already Exists:**\n```bash\n# Error: ID myapp already exists\n# Solution: Choose different subdomain or wait for timeout\n./aetherlink-client --subdomain=myapp-v2 --server=https://server.com\n```\n\n##  Performance \u0026 Limits\n\n- **Latency**: \u003c 50ms additional latency\n- **Throughput**: Full network bandwidth utilization\n- **Connections**: 10 concurrent connections per tunnel (configurable)\n- **Memory**: ~10MB base + ~1MB per active tunnel\n- **Tunnels**: No hard limit (dependent on server resources)\n- **Rate Limiting**: 10 requests/minute per IP (configurable)\n\n##  Contributing\n\nWe welcome security-focused contributions! Please see our [contributing guidelines](CONTRIBUTING.md).\n\n**Security-related contributions especially welcome:**\n- Additional authentication methods\n- Enhanced monitoring and alerting\n- Security vulnerability reports\n- Documentation improvements\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/security-enhancement`)\n3. Commit your changes (`git commit -m 'Add security feature'`)\n4. Push to the branch (`git push origin feature/security-enhancement`)\n5. Open a Pull Request\n\n##  License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n##  Support\n\n- **Security Issues**: [security@hhftechnology.com](mailto:discourse@hhf.technology)\n- **Bug Reports**: [GitHub Issues](https://github.com/hhftechnology/AetherLink/issues)\n- **Feature Requests**: [GitHub Discussions](https://github.com/hhftechnology/AetherLink/discussions)\n- **Documentation**: [Wiki](https://github.com/hhftechnology/AetherLink/wiki)\n\n##  Changelog\n\n### v1.1.0 (Current) - Security Release\n- ✅ **API Key Authentication** - Prevents unauthorized tunnel creation\n- ✅ **JWT Token Security** - Secures tunnel connections\n- ✅ **Rate Limiting** - Blocks brute force attacks\n- ✅ **IP Whitelisting** - Network-level access control\n- ✅ **Admin API** - Comprehensive key management\n- ✅ **Security Monitoring** - Real-time event tracking\n- ✅ **Auto-cleanup** - Removes inactive tunnels\n\n### v1.0.0 - Initial Release\n- ✅ Basic tunneling functionality\n- ✅ HTTP/HTTPS support\n- ✅ WebSocket support\n- ✅ Docker images\n- ✅ Cross-platform binaries\n\n##  Acknowledgments\n\n- Built with [Go](https://golang.org/) for performance and reliability\n- JWT authentication powered by [golang-jwt](https://github.com/golang-jwt/jwt)\n- Security-first design inspired by enterprise best practices\n- Thanks to the security community for vulnerability reports and suggestions\n- Inspired by ngrok and similar tunneling solutions\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e AetherLink - Secure tunneling that actually keeps the bad guys out\u003c/strong\u003e\u003cbr\u003e\n  Built with ❤️ and 🛡️ for developers who care about security\n\u003c/p\u003e\n\n## 🔗 Quick Links\n\n- [ Quick Start](#-quick-secure-setup)\n- [ Security Guide](docs/security-guide.md)\n- [ Deployment Examples](docs/deployment-scenarios.md)\n- [ API Documentation](docs/api-reference.md)\n- [ Docker Hub](https://hub.docker.com/r/hhftechnology/aetherlink-server)\n- [ GitHub Releases](https://github.com/hhftechnology/AetherLink/releases)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Faetherlink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhhftechnology%2Faetherlink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Faetherlink/lists"}