Production-Ready URL Redirect Service
fLINK is a simple URL redirect service that makes it easy to manage short links, track campaigns, and handle domain migrations. Configure redirects via file, URL, or environment variables, connect your analytics tools, and get instant updates without restarts. Perfect for QR codes, marketing links, and SEO-preserving migrations.
Moving to a new domain? Preserve years of SEO work with proper 301 redirects that maintain your search rankings.
Create memorable links like go.company.com/demo instead of sharing long, complex URLs.
Connect to Matomo or other analytics tools to track clicks to external sites you don't control.
Print QR codes once, update destinations forever. Perfect for menus, brochures, and packaging.
Track Google Ads, Facebook, and email campaigns. Full UTM support with automatic click ID preservation.
Change redirect destinations instantly. File changes detected in 5 seconds, remote configs refresh every 10 minutes.
Choose your preferred configuration method:
Quick start with environment variables or file-based configuration.
Direct execution with command-line flags for all options.
Quick start with environment variables or file-based configuration.
File-based configuration with automatic hot-reloading on changes.
Centralized configuration management via HTTP/HTTPS.
Your redirects are immediately available at http://localhost/shop
and http://localhost/docs
Just edit your configuration - fLINK detects changes automatically. File changes are detected within 5 seconds, remote configs refresh every 10 minutes. No restarts, no downtime.
Yes! fLINK supports wildcard patterns using *
at the end of paths. For example, blog/*=https://new.com/posts/*
redirects all blog paths to the new location while preserving the path suffix. More specific patterns take precedence over general ones.
Redirects are served from memory with sub-millisecond response times (7-18 microseconds in production). The Go implementation ensures excellent performance and low resource usage.
Yes! Use ,permanent
or ,status=301
for permanent redirects (SEO-friendly) or ,temporary
or ,status=302
for temporary redirects. Also supports 303, 307, and 308 status codes.
By default, all query parameters are forwarded to the destination URL. This includes UTM parameters, click IDs (gclid, fbclid), and custom parameters. You can disable this with FORWARD_QUERY_PARAMS=false
.
fLINK updates instantly without server restarts, integrates with analytics tools like Matomo, generates QR codes automatically, and doesn't require web server expertise. It's purpose-built for redirect management.
Yes! fLINK integrates with Matomo to track redirect events with full UTM parameters and click IDs, even when the destination site doesn't have your analytics. Google Analytics support coming soon.
Add /qr to any redirect path: yoursite.com/menu/qr
returns a QR code image. The destination can be updated anytime without reprinting.
Yes. Input validation prevents injection and path traversal attacks, runs as non-root in Docker, supports secrets management, trusted proxy validation, and doesn't execute any user-provided code.
Yes, HTTP redirects naturally preserve the original referer header. The destination sees where visitors originally came from, not your redirect server.
fLINK itself stores no user data or logs. Analytics tracking is optional and uses your own Matomo instance. It respects X-Forwarded-For headers for accurate visitor tracking.
fLINK continues using the last successfully loaded configuration. It attempts to refresh every 10 minutes but won't break if the config source is temporarily unavailable.
Yes! fLINK supports wildcard patterns using *
at the end of paths. For example, blog/*=https://new.com/posts/*
redirects all blog paths to the new location while preserving the path suffix. More specific patterns take precedence over general ones.
Set MATOMO_URL
and MATOMO_TOKEN
environment variables. fLINK will automatically track all redirects, including UTM parameters and referrer information.
File configs are watched for changes every 5 seconds - perfect for local development. URL configs refresh every 10 minutes - ideal for centralized management across multiple instances.
Forward requests internally without exposing the destination URL, perfect for reverse proxy scenarios and maintaining clean URLs.
Native support for Google Analytics 4, including event tracking, conversion goals, and e-commerce data.
RESTful API with bearer token authentication for retrieving loaded rules, triggering configuration rescans, and health checks.