Skip to content

chore: local dev setup#606

Merged
alexluong merged 8 commits into
mainfrom
dev
Jan 4, 2026
Merged

chore: local dev setup#606
alexluong merged 8 commits into
mainfrom
dev

Conversation

@alexluong

@alexluong alexluong commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

Improve Local Development Setup

⚠️ Existing Contributors: This PR introduces significant changes to the local dev workflow. After merge, please re-read getting-started.md and update your setup:

  • Ports changed from 1xxxx2xxxx (e.g., Redis 1637926379)
  • New starter configs: .env.dev and .outpost.yaml.dev
  • Dependencies now use Docker Compose profiles via LOCAL_DEV_* variables

Why

The previous local dev setup required manual configuration and had port conflicts with common services.

What

  1. Quick start config files - Added .env.dev and .outpost.yaml.dev as ready-to-use starter configs that work out of the box

  2. Modular dependency management - Refactored docker-compose to use profiles controlled by LOCAL_DEV_* env vars:

    • Entity store: Redis (default) or Dragonfly
    • Log store: PostgreSQL and/or ClickHouse
    • MQ: RabbitMQ, LocalStack (AWS SQS), GCP PubSub
    • Optional GUI tools: redis-commander, pgAdmin, Tabix
  3. Port conflict prevention - All host ports now use 2xxxx prefix (e.g., 26379 for Redis, 25432 for PostgreSQL)

  4. Streamlined documentation - Rewrote getting-started.md with quick start at the top and reference tables for configuration

  5. Test cleanup - Refactored rsmq tests to use shared testutil.CreateTestRedisClient

Getting Started

git clone https://github.com/hookdeck/outpost.git
cd outpost
cp .env.dev .env
cp .outpost.yaml.dev .outpost.yaml
make network
make up/deps
make up/outpost

API available at http://localhost:3333

Configuring Local Dependencies

Configuration is split between two files:

  • .env - Controls which Docker services to start (LOCAL_DEV_* variables)
  • .outpost.yaml - Outpost application settings (MQ connections, log store, API keys, etc.)

Why .outpost.yaml? Air watches this file and auto-restarts Outpost when it changes. With .env, you'd need to manually run make down/outpost && make up/outpost for changes to take effect.

The .env file controls which services make up/deps starts via LOCAL_DEV_* variables. By default, the setup uses Redis, PostgreSQL, and RabbitMQ.

Example: Switch from RabbitMQ to AWS SQS

  1. Edit .env:

    # Optional: comment out to skip starting RabbitMQ container
    # LOCAL_DEV_RABBITMQ=1
    
    # Enable LocalStack (provides AWS SQS locally)
    LOCAL_DEV_LOCALSTACK=1
  2. Edit .outpost.yaml to use SQS:

    mqs:
      # rabbitmq:
      #   server_url: "amqp://guest:guest@rabbitmq:5672"
      aws_sqs:
        endpoint: "http://localstack:4566"
        region: "us-east-1"
        access_key_id: "test"
        secret_access_key: "test"
  3. Restart dependencies:

    make down/deps
    make up/deps

Available Options

Variable Service
LOCAL_DEV_DRAGONFLY=1 Use Dragonfly instead of Redis
LOCAL_DEV_POSTGRES=1 PostgreSQL (log store)
LOCAL_DEV_CLICKHOUSE=1 ClickHouse (log store)
LOCAL_DEV_RABBITMQ=1 RabbitMQ
LOCAL_DEV_LOCALSTACK=1 LocalStack (AWS SQS/SNS/S3)
LOCAL_DEV_GCP=1 GCP PubSub emulator
LOCAL_DEV_REDIS_COMMANDER=28081 Redis Commander UI
LOCAL_DEV_PGADMIN=28082 pgAdmin UI
LOCAL_DEV_TABIX=28083 Tabix (ClickHouse UI)

@vercel

vercel Bot commented Jan 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
outpost-docs Ready Ready Preview, Comment Jan 3, 2026 9:36am
outpost-website Ready Ready Preview, Comment Jan 3, 2026 9:36am

@vercel vercel Bot temporarily deployed to Preview – outpost-docs January 3, 2026 09:03 Inactive
@vercel vercel Bot temporarily deployed to Preview – outpost-website January 3, 2026 09:03 Inactive
@vercel vercel Bot temporarily deployed to Preview – outpost-docs January 3, 2026 09:16 Inactive
@vercel vercel Bot temporarily deployed to Preview – outpost-website January 3, 2026 09:16 Inactive
@vercel vercel Bot temporarily deployed to Preview – outpost-website January 3, 2026 09:36 Inactive
@vercel vercel Bot temporarily deployed to Preview – outpost-docs January 3, 2026 09:36 Inactive
@alexluong alexluong merged commit 0c36d71 into main Jan 4, 2026
5 checks passed
@alexluong alexluong deleted the dev branch January 4, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants