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.

Outpost logo

Self-host Outpost

v1.7.0

Open-source outbound webhooks infrastructure

ReleaseOpen SourceApache-2.0
Updated16 hours ago
LanguageGo
Setup difficultyAdvanced
ThemeDark mode
Stars
1 074
Port
3333 (HTTP API)
Requires
PostgreSQL, Redis
Docker
hookdeck/outpost
Install with Docker Compose
Outpost dashboard homepage showing tenant portal

What is Outpost?

Outpost is a self-hostable platform that lets developers add reliable outbound webhook delivery to their applications. It handles the hard parts: retry logic, tenant isolation, observability, and a customer-facing portal where end users manage their own destinations. The system runs on Go and needs Redis, PostgreSQL, plus one message queue (RabbitMQ, NATS, AWS SQS, GCP Pub/Sub, or Azure Service Bus). It can push events to 11 different destination types — plain webhooks, Hookdeck's own gateway, major cloud event buses, message queues, and object storage. Deploy it yourself with Docker Compose, Kubernetes, or Railway, or use Hookdeck's managed offering. Licensed Apache-2.0.

Should you self-host Outpost?

Outpost scores 58/100 on selfhost.directory (how scoring works) and ranks #50 of 166 in Developer Tools. It has 1 074 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.7.0, came out on 23 October 2026.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is openhands (87/100, 92 112 stars). It scores higher overall, so compare the two before you pick. See Outpost vs openhands side by side.

Features

  • 11 event destination types
  • At-least-once delivery guarantee
  • Automatic and manual retries
  • Delivery failure alerts
  • Event fanout
  • Event topics and subscriptions
  • Multi-Tenant Support
  • OpenTelemetry Support
  • Publish via API or queue
  • SDKs and MCP server
  • User portal
  • Webhook best practices

Outpost README

How to install Outpost

Install Outpost with Docker Compose

Docker and Docker Compose
Environment variables
API_KEY, REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, POSTGRES_URL, RABBITMQ_SERVER_URL, TOPICS

git clone https://github.com/hookdeck/outpost.git cd outpost/examples/docker-compose/ cp .env.example .env

Update API_KEY in .env

docker-compose -f compose.yml -f compose-rabbitmq.yml -f compose-postgres.yml up

Requires Redis, PostgreSQL, and RabbitMQ (or AWS SQS via LocalStack)

How to configure Outpost

  • AES_ENCRYPTION_SECRET16, 24, or 32 byte key for AES encryption of sensitive data

    16, 24, or 32 byte key for AES encryption of sensitive data

  • API_JWT_SECRETSecret for signing and verifying JWTs

    Secret for signing and verifying JWTs

  • API_KEYAPI key for authenticating requests to the Outpost API

    API key for authenticating requests to the Outpost API

  • CLICKHOUSE_ADDRClickHouse address

    ClickHouse address

  • DISABLE_TELEMETRYSet to true to disable anonymous usage telemetry to Hookdeck

    Set to true to disable anonymous usage telemetry to Hookdeck

    values: true,false

  • LOG_LEVELinfoLog verbosity: trace, debug, info, warn, error

    Log verbosity: trace, debug, info, warn, error

    values: trace,debug,info,warn,error

  • NATS_SERVER_URLNATS server connection URL

    NATS server connection URL

  • NATS_STREAMoutpostStream name

    Stream name

  • OTEL_SERVICE_NAMEEnables OpenTelemetry when set

    Enables OpenTelemetry when set

  • PORTAL_ORGANIZATION_NAMEOrganization name shown in the portal header

    Organization name shown in the portal header

  • PORTAL_REFERER_URLRequired. URL to redirect users to when JWT expires

    Required. URL to redirect users to when JWT expires

  • POSTGRES_URLPostgreSQL connection URL

    PostgreSQL connection URL

  • RABBITMQ_EXCHANGEoutpostExchange name

    Exchange name

  • RABBITMQ_SERVER_URLRabbitMQ connection URL

    RabbitMQ connection URL

  • REDIS_CLUSTER_ENABLEDfalseEnable Redis cluster mode

    Enable Redis cluster mode

    values: true,false

  • REDIS_DATABASE0Redis database number

    Redis database number

  • REDIS_HOST127.0.0.1Hostname of the Redis server

    Hostname of the Redis server

  • REDIS_PORT6379Port of the Redis server

    Port of the Redis server

  • REDIS_TLS_ENABLEDfalseEnable TLS for the Redis connection

    Enable TLS for the Redis connection

    values: true,false

  • TOPICSComma-separated list of topics your instance supports

    Comma-separated list of topics your instance supports

Outpost releases & version history

More in Developer Tools

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…