Sign inSign up

linkforty/core

By linkforty

Updated 1 day ago

LinkForty Core is a self-hosted deeplink management engine with device detection and analytics.

Image
0

10K+

linkforty/core repository overview

LinkForty Core

Open-source alternative to Branch.io, AppsFlyer OneLink, and Firebase Dynamic Links.

Self-hosted deep linking engine with device detection, analytics, deferred deep linking, and smart routing. No per-click pricing, no vendor lock-in, full data ownership — runs on your own PostgreSQL.

Firebase Dynamic Links shut down in August 2025. LinkForty is a production-ready, open-source replacement.

Quick Start

curl -O https://raw.githubusercontent.com/linkforty/core/main/docker-compose.yml
docker compose up -d

That's it. LinkForty is running at http://localhost:3000.

Docker CLI

docker run -d \
  --name linkforty \
  -p 3000:3000 \
  -e DATABASE_URL=postgresql://user:pass@host:5432/linkforty \
  -e REDIS_URL=redis://host:6379 \
  linkforty/core:latest

Features

  • Smart Link Routing — Device-specific URLs for iOS, Android, and web
  • Deferred Deep Linking — Probabilistic fingerprint matching for install attribution
  • Click Analytics — Geolocation, device type, platform, UTM tracking
  • QR Code Generation — Built-in PNG/SVG QR codes for any link
  • Webhooks — HMAC-signed event notifications with retry logic
  • iOS Universal Links & Android App Links — Automatic .well-known file serving
  • OG Preview Pages — Social media scraper detection with Open Graph meta tags
  • Redis Caching — Optional Redis for high-performance link lookups
  • TypeScript — Fully typed API

Environment Variables

VariableRequiredDefaultDescription
DATABASE_URLYesPostgreSQL connection string
REDIS_URLNoRedis connection string (recommended)
PORTNo3000Server port
NODE_ENVNoproductionEnvironment mode
CORS_ORIGINNo*CORS allowed origins
IOS_TEAM_IDNoApple Team ID for Universal Links
IOS_BUNDLE_IDNoiOS app bundle ID
ANDROID_PACKAGE_NAMENoAndroid package name
ANDROID_SHA256_FINGERPRINTSNoAndroid signing certificate fingerprints

Image Details

  • Architectures: linux/amd64, linux/arm64
  • Base: Node.js 22 Alpine
  • Security: Non-root user, SBOM + Provenance attestations
  • Health checks: Built-in

Tags

TagDescription
latestLatest stable release
v1.6.1Specific version (recommended for production)
v1.6Latest patch of minor version
v1Latest minor of major version

Pin versions in production:

services:
  linkforty:
    image: linkforty/core:v1.6.1

Docker Compose (Full Stack)

services:
  linkforty:
    image: linkforty/core:latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://linkforty:linkforty@postgres:5432/linkforty
      REDIS_URL: redis://redis:6379
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: linkforty
      POSTGRES_PASSWORD: linkforty
      POSTGRES_DB: linkforty
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U linkforty"]
      interval: 5s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:

Mobile SDKs

Why LinkForty?

LinkFortyBranchAppsFlyerFirebase Dynamic Links
PricingFree (self-hosted)$299+/mo$500+/moShut down
Open SourceYes (AGPL-3.0)NoNoNo
Self-HostedYesNoNoNo
Data OwnershipCompleteVendorVendorWas Google

License

AGPL-3.0 — see LICENSE for details.

Tag summary

Content type

Image

Digest

sha256:1da61eb9c

Size

167 MB

Last updated

1 day ago

docker pull linkforty/core