Releases: sudocarlos/tailrelay
v0.7.0
v0.7.0
This release introduces a complete frontend rewrite and significant backend additions.
What's New
Frontend
- Svelte 5 + Tailwind CSS SPA — replaced vanilla JS/Bootstrap with a modern, reactive single-page application
- Vite-based build pipeline; assets embedded directly into the Go binary at build time
- Improved UI responsiveness and component structure
Authentication
- bcrypt password hashing — replaces plain-text password storage
Tailscale Management
- New Web UI section for Tailscale node information and status
- Tailscale hostname change now migrates existing Caddy proxy routes automatically
Caddy / Proxy
- TLS certificate startup check — validates certs on boot for
*.ts.netproxies - Replaced per-server metrics with global server metrics
- Caddy proxy hostnames migrate automatically when Tailscale hostname changes
Backup & Restore
- Full configuration backup and restore support via the Web UI
Other
- Improved logging throughout the backend
- Various bug fixes and stability improvements
Upgrade Notes
- The frontend assets are now compiled via
make frontend-build(Node 22 + Vite required for building from source) - Docker image users: no action required — assets are pre-built in the image
- Password hashes are automatically upgraded to bcrypt on first login after upgrade
Docker
docker pull sudocarlos/tailrelay:v0.7.0
v0.7.0-rc1
v0.7.0-rc1
This release candidate introduces a complete frontend rewrite and significant backend additions.
What's New
Frontend
- Svelte 5 + Tailwind CSS SPA — replaced vanilla JS/Bootstrap with a modern, reactive single-page application
- Vite-based build pipeline; assets embedded directly into the Go binary at build time
- Improved UI responsiveness and component structure
Authentication
- bcrypt password hashing — replaces plain-text password storage
Tailscale Management
- New Web UI section for Tailscale node information and status
- Tailscale hostname change now migrates existing Caddy proxy routes automatically
Caddy / Proxy
- TLS certificate startup check — validates certs on boot for
*.ts.netproxies - Replaced per-server metrics with global server metrics
- Caddy proxy hostnames migrate automatically when Tailscale hostname changes
Backup & Restore
- Full configuration backup and restore support via the Web UI
Other
- Improved logging throughout the backend
- Various bug fixes and stability improvements
Upgrade Notes
- The frontend assets are now compiled via
make frontend-build(Node 22 + Vite required for building from source) - Docker image users: no action required — assets are pre-built in the image
- Password hashes are automatically upgraded to bcrypt on first login after upgrade
Docker
docker pull sudocarlos/tailrelay:v0.7.0-rc1
v0.6.0
What's Changed
- docs: update StartOS deployment section to reference tailrelay-startos sideloading by @Copilot in #3
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Changes since v0.4.1:
- WebUI: Added a guided tour, keyboard shortcuts, and various UI enhancements. (f045c41)
- WebUI: Added a footer with links to contribute, feedback, and contact. (62a18b0)
- Caddy: Resolved startup errors by modifying the proxy manager to query root config. (4648415)
- Build/Release: Added a new
releasetarget to the Makefile for pushing images to Docker Hub and GHCR. (d68851f) - Docs: Updated
git-workflowskill commit message formatting rules. (8b75b88)
v0.4.1
What's Changed
Bug Fixes
- fix(caddy): handle 400 Bad Request on empty config
- fix: handle empty Caddy config when adding a new proxy
- fix: add missing internal/tailscale package to git (was excluded by .gitignore)
- fix: use :dev image tag in compose-test.yml to match what docker-compose-test.sh builds
Features
- feat: Add Agent Skills documentation and WebUI Tailscale integration
- feat: add backup/restore UI template
- feat: enhance backup/restore to include all config files
- feat(ci): add automated ci/cd pipeline with socat verification
Chores & CI
- chore: update module path and all references to github.com/sudocarlos/tailrelay
- chore: update build scripts with version ldflags
- ci: fix test permission denied and caddy api invalid traversal path
- test: Fix permission denied error for socat relay testing in CI
Full Changelog: v0.4...v0.4.1
v0.4.0
Release Notes - v0.4.0
Release Date: February 5, 2026
🚀 Highlights
This release introduces a complete SPA (Single Page Application) overhaul of the Web UI with modern Bootstrap styling, enhanced proxy metadata management, and improved user experience:
- Complete SPA redesign with Bootstrap UI framework
- Proxy metadata storage and migration system
- Floating Action Button (FAB) for quick proxy/relay management
- Bootstrap Icons integration with update tooling
- Userspace networking mode for improved compatibility
✨ Key Features
SPA UI Overhaul
- Complete redesign of Web UI as a modern Single Page Application
- Bootstrap 5 integration for consistent, responsive design
- Floating Action Button (FAB) for quick access to add/edit/delete operations
- Modal-based proxy and relay management for better UX
- Improved navigation and workflow throughout the interface
Proxy Metadata System
- New metadata storage for proxy configurations
- Automatic migration from existing Caddy configurations
- Metadata tracking for proxy names, descriptions, and settings
- Migration status validation and error handling
- Backwards-compatible with existing proxy configurations
Bootstrap Icons Integration
- Comprehensive Bootstrap Icons SVG sprite included
- Automated update script (
update-bootstrap-icons.sh) - Easy version management and upgrades
- Lightweight SVG-based icon system
Userspace Networking Mode
- Tailscale now runs in userspace networking mode by default
- No longer requires NET_ADMIN capability or /dev/net/tun
- Improved compatibility with restricted container environments
- SOCKS5 proxy on localhost:1055 for applications
Development Improvements
- Frontend build system with npm/Node.js support
- Separate SPA bundle for optimized loading
- Dev-mode workflow for rapid UI iteration
- Enhanced Makefile targets for development builds
🔧 Technical Changes
Added
- Complete SPA frontend with Bootstrap styling (
webui/frontend/) - Proxy metadata storage and migration system
- Bootstrap Icons SVG sprite and update script
- FAB component for proxy/relay management
- Modal dialogs for add/edit/delete operations
- Userspace networking mode in Tailscale daemon
- Frontend build pipeline with webpack/rollup
- Dev-mode asset handling for rapid iteration
Changed
- Web UI architecture from server-side templates to SPA
- Proxy manager to support metadata storage
- Caddy integration to handle metadata migration
- Login page with improved Tailscale auth flow
- Dashboard layout with modern Bootstrap components
- Container startup to use userspace networking
Improved
- Web UI responsiveness and mobile compatibility
- Proxy configuration workflow with validation
- Error handling and user feedback
- Development workflow with live reload support
📦 Upgrade Instructions
Docker Users
# Pull the latest image
docker pull sudocarlos/tailrelay:v0.4
# or
docker pull sudocarlos/tailrelay:latest
# Restart your container
docker restart tailrelayStart9 Users
- Stop the current container:
sudo podman stop start9.tailscale sudo podman rm start9.tailscale
- Pull the new version:
sudo podman pull docker.io/sudocarlos/tailrelay:v0.4
- Start with the same configuration:
sudo podman run --name start9.tailscale \ -v /home/start9/tailscale/:/var/lib/tailscale \ -e TS_HOSTNAME=start9 \ -p 8021:8021 \ --net start9 \ docker.io/sudocarlos/tailrelay:v0.4
🔄 Migration Notes
Automatic Proxy Metadata Migration
On first startup with v0.4, the system will automatically:
- Detect existing Caddy proxy configurations
- Generate metadata for each proxy
- Store metadata in
proxy_metadata.json - Preserve all existing proxy functionality
No manual intervention is required for the migration.
Bootstrap Icons Updates
To update Bootstrap Icons to the latest version:
./update-bootstrap-icons.shTo update to a specific version:
./update-bootstrap-icons.sh 1.11.3🔍 Verification
After upgrading, verify the new features:
# Web UI health (should load new SPA interface)
curl http://localhost:8021
# Check Tailscale userspace networking
docker exec tailrelay-test ps aux | grep tailscaled
# Verify proxy metadata exists
docker exec tailrelay-test cat /var/lib/tailscale/proxy_metadata.json⚠️ Breaking Changes
None. This release is fully backwards-compatible with v0.3.x configurations.
📝 Changelog
Added
- SPA frontend with Bootstrap 5 UI framework
- Proxy metadata storage and migration system
- Bootstrap Icons integration with update tooling
- FAB for quick proxy/relay management
- Modal-based add/edit/delete workflows
- Userspace networking mode for Tailscale
- Frontend build pipeline with npm support
- Dev-mode development workflow
Changed
- Web UI from server-side templates to SPA architecture
- Proxy manager to support metadata
- Caddy integration for metadata migration
- Container startup to use userspace networking
- Dashboard and login page layouts
Improved
- UI responsiveness and mobile support
- Proxy management workflow
- Development iteration speed
- Container compatibility
Full Changelog: v0.3.0...v0.4
Docker Images:
docker.io/sudocarlos/tailrelay:v0.4docker.io/sudocarlos/tailrelay:latest
v0.3.0
Release Notes - v0.3.0
Release Date: February 1, 2026
🚀 Highlights
This release focuses on stronger observability and more robust proxy management:
- Live log streaming in the Web UI
- Custom CA certificate uploads for TLS-verified upstreams
- More consistent and stable Caddy proxy configuration handling
✨ Key Features
Web UI Logging (Live Streaming)
- Comprehensive logging system added to the Web UI
- Live streaming of logs to the browser for faster troubleshooting
- Improved visibility into proxy, relay, and service activity
Custom CA Certificate Uploads
- Upload custom CA certificates for upstream TLS verification
- Enables secure connections to services using internal or private PKI
- Reduces the need for insecure TLS bypasses
Proxy Management Improvements
- Aligned Caddy route structure for consistent configuration output
- Persisted server mappings per proxy to minimize churn
- Refactored proxy manager for clearer configuration handling
🔧 Technical Changes
Added
- Logging subsystem with live-streaming endpoints in the Web UI
- Custom CA certificate upload pipeline for proxy TLS
- Local Web UI development workflow for rapid iteration
Changed
- Caddy route generation to maintain consistent proxy structure
- Caddy server mappings stored per proxy for stability
- Internal proxy manager refactors to match new configuration flows
Removed
- Legacy file-based proxy handling (Caddyfile/JSON-based proxy CRUD)
📦 Upgrade Instructions
Docker Users
# Pull the latest image
docker pull sudocarlos/tailrelay:v0.3.0
# or
docker pull sudocarlos/tailrelay:latest
# Restart your container
docker restart tailrelayStart9 Users
- Stop the current container:
sudo podman stop start9.tailscale sudo podman rm start9.tailscale
- Pull the new version:
sudo podman pull docker.io/sudocarlos/tailrelay:v0.3.0
- Start with the same configuration:
sudo podman run --name start9.tailscale \ -v /home/start9/tailscale/:/var/lib/tailscale \ -e TS_HOSTNAME=start9 \ -p 8021:8021 \ --net start9 \ docker.io/sudocarlos/tailrelay:v0.3.0
🔍 Verification
After upgrading, verify the new features:
# Web UI health (should load and show logs)
curl http://localhost:8021
# Caddy config routes
tailrelay_caddy_routes=$(curl -s http://localhost:2019/config/apps/http/servers/tailrelay/routes)
echo "$tailrelay_caddy_routes" | jq⚠️ Notes
- Proxy configuration is now fully API-driven; legacy file-based proxy handling has been removed.
- If you use a private CA for upstream TLS, upload it through the Web UI before enabling verification.
📝 Changelog
Added
- Live log streaming in the Web UI
- Custom CA certificate upload support for upstream TLS verification
- Local Web UI development workflow
Changed
- Consistent Caddy proxy route structure
- Persisted Caddy server mappings per proxy
- Refactored proxy manager and configuration handling
Removed
- Legacy proxy file handling
Full Changelog: v0.2.1...v0.3.0
v0.2.0 - Web UI Integration
🎉 Major Release: Web UI Integration
This release adds a comprehensive browser-based Web UI for managing all aspects of tailrelay without manual configuration editing!
🌟 Key Features
Web UI Management
- Dashboard with Tailscale connection status and system health monitoring
- Tailscale Management - Connect/disconnect, view peers, check status
- Caddy Proxy Management - Add, edit, delete, and toggle HTTP/HTTPS reverse proxies
- Socat Relay Management - Full TCP relay process management
- Backup & Restore - Create, download, upload, and restore configuration backups
- Dark Theme with responsive design optimized for readability
Security & Authentication
- Dual Authentication:
- Token-based authentication (auto-generated on first run)
- Automatic Tailscale network authentication (no token needed from Tailnet)
- Session management with secure cookies
- Token stored at
/var/lib/tailscale/.webui_token
Auto-Configuration
- Automatic migration from
RELAY_LISTenvironment variable to JSON configs - Auto-generated Caddyfile from Web UI proxy settings
- Process management with PID tracking for socat relays
- Configuration validation and error handling
📦 Installation & Access
Docker Hub Images (multi-platform: amd64, arm64):
docker pull sudocarlos/tailrelay:v0.2.0
# or
docker pull sudocarlos/tailrelay:latestAccess Web UI:
- Port:
8021(expose with-p 8021:8021) - URL:
http://localhost:8021orhttps://your-hostname.tailnet.ts.net:8021
Get Authentication Token:
# Docker
docker exec <container> cat /var/lib/tailscale/.webui_token
# Podman
sudo podman exec start9.tailscale cat /var/lib/tailscale/.webui_token🔧 Technical Details
- Built with: Go 1.21, embedded HTML/CSS/JS
- Binary size: ~14MB (includes all assets)
- Multi-stage Docker build for optimized image size
- RESTful API with 20+ endpoints
- 5,700+ lines of new code and documentation
📚 Documentation
- Comprehensive README with Web UI sections
- Full CHANGELOG with API documentation
- Troubleshooting guide and upgrade instructions
- AGENTS.md for developers
⚠️ Breaking Changes
RELAY_LISTenvironment variable is now deprecated (auto-migrated)- Recommended to manage relays through Web UI instead
- Manual Caddyfile editing still supported but not recommended with Web UI
🔄 Upgrading from v0.1.1
- Backup your configuration
- Pull new image:
docker pull sudocarlos/tailrelay:v0.2.0 - Stop old container
- Start new container with
-p 8021:8021for Web UI access - Access Web UI and migrate configurations
See CHANGELOG.md for detailed upgrade instructions.
🐛 Known Issues
- Permission warning for
/var/log/tailrelay-webui.log(non-critical) - Web UI requires root user in container (Tailscale requirement)
🙏 Feedback
Please report issues or suggestions on the GitHub Issues page.
Full Changelog: https://github.com/sudocarlos/tailscale-socaddy-proxy/blob/main/CHANGELOG.md
Docker Hub: https://hub.docker.com/r/sudocarlos/tailrelay