selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Abby logo

Self-host Abby

Open-source feature flags and A/B testing platform

BetaOpen SourceAGPL-3.0
Updatedlast year
LanguageTypescript
Setup difficultyAdvanced
Stars
167
Port
3000 (Web application)
Requires
MailHog, MariaDB, Redis
Install with Docker Compose
Abby dashboard screenshot showing feature management UI

What is Abby?

Abby is an open-source platform for feature flags, remote configuration, and A/B testing built for developers. It offers a simple, statically typed API alongside a web dashboard that non-technical team members can use. The project emphasizes privacy by avoiding personalized tracking and marketing cookies. Self-hosting options include Docker Compose (bundling MariaDB, Redis, and MailHog) or a manual pnpm-based setup. Official SDKs cover JavaScript/TypeScript, React, Next.js, Angular, and Svelte. Authentication works via email magic links, GitHub OAuth, and Google OAuth. The codebase is licensed under AGPL-3.0.

Should you self-host Abby?

Abby scores 41/100 on selfhost.directory (how scoring works) and ranks #7 of 8 in Feature Flags. It has 167 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is AGPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is unleash (75/100, 13 909 stars). It scores higher overall, so compare the two before you pick. See Abby vs unleash side by side.

Features

  • A/B Testing
  • Angular SDK
  • Dashboard
  • Feature Flags
  • Next.js SDK
  • Privacy-focused
  • React SDK
  • Remote Config
  • Svelte SDK
  • TypeScript SDK

Abby README

How to install Abby

Install Abby with Docker Compose

Environment variables
DATABASE_URL, REDIS_URL, EMAIL_SERVER, NEXTAUTH_SECRET, NEXTAUTH_URL, and OAuth credentials

version: "3.3" services: db: image: mariadb restart: always environment: MYSQL_DATABASE: "db" MYSQL_USER: "user" MYSQL_PASSWORD: "password" MYSQL_ROOT_PASSWORD: "password" ports: - "3306:3306" expose: - "3306" volumes: - my-db:/var/lib/mysql redis: image: redis restart: always ports: - "6379:6379" expose: - "6379" volumes: - my-redis:/data mailhog: image: mailhog/mailhog ports: - "1025:1025" - "8025:8025" volumes: my-db: my-redis:

Includes MariaDB, Redis, and MailHog services

How to configure Abby

  • ABBY_FROM_EMAILno-reply@tryabby.devFrom email address for outgoing emails

    From email address for outgoing emails

  • DATABASE_URLMySQL/MariaDB connection string

    MySQL/MariaDB connection string

  • EMAIL_SERVERsmtp://0.0.0.0:1025SMTP server for email delivery

    SMTP server for email delivery

  • GITHUB_IDGitHub OAuth client ID

    GitHub OAuth client ID

  • GITHUB_OAUTH_TOKENGitHub OAuth token

    GitHub OAuth token

  • GITHUB_SECRETGitHub OAuth client secret

    GitHub OAuth client secret

  • GOOGLE_CLIENT_IDGoogle OAuth client ID

    Google OAuth client ID

  • GOOGLE_CLIENT_SECRETGoogle OAuth client secret

    Google OAuth client secret

  • HASHING_SECRETSecret for password hashing

    Secret for password hashing

  • LOGSNAG_API_KEYLogSnag API key for notifications

    LogSnag API key for notifications

  • NEXTAUTH_SECRETNextAuth.js secret for session encryption

    NextAuth.js secret for session encryption

  • NEXTAUTH_URLhttp://localhost:3000NextAuth.js callback URL

    NextAuth.js callback URL

  • NEXT_PUBLIC_ABBY_PROJECT_IDAbby project ID

    Abby project ID

  • NEXT_PUBLIC_PLAUSIBLE_DOMAINtryabby.comPlausible analytics domain

    Plausible analytics domain

  • NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE_IDStripe pro plan price ID

    Stripe pro plan price ID

  • NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYStripe publishable key

    Stripe publishable key

  • NEXT_PUBLIC_STRIPE_STARTER_PLAN_PRICE_IDStripe starter plan price ID

    Stripe starter plan price ID

  • NODE_ENVdevelopmentNode.js environment

    Node.js environment

  • REDIS_URLredis://localhost:6379Redis connection string

    Redis connection string

  • STRIPE_SECRET_KEYStripe secret API key

    Stripe secret API key

  • STRIPE_WEBHOOK_SECRETStripe webhook signing secret

    Stripe webhook signing secret

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…