Skip to content

Skillcape-Software-LLC/dispatch

Repository files navigation

Dispatch

Lightweight, containerized HTTP testing tool. The anti-Postman.

  • Collections with folders, drag-and-drop ordering, and variables
  • Environments with variable interpolation ({{variable}})
  • Request history with auto-pruning
  • cURL import and code generation (cURL, JavaScript fetch, Python requests, C# HttpClient, PowerShell)
  • Tabbed workspaces
  • Monaco-powered JSON editor with syntax highlighting
  • Dark theme (Bootstrap 5.3)
  • Keyboard shortcuts for everything
  • Single Docker container — no accounts, no cloud, no sync

Quick Start

  1. Create a docker-compose.yml (or use the one included in this repo):
services:
  dispatch:
    image: ghcr.io/skillcape-software-llc/dispatch:latest
    ports:
      - "3000:3000"
    volumes:
      - dispatch-data:/data
    restart: unless-stopped
    environment:
      NODE_ENV: production

volumes:
  dispatch-data:
  1. Run it:
docker compose up -d
  1. Open http://localhost:3000

Development

npm install
npm run dev

Architecture

Dispatch is a monorepo with two apps. The Angular 19 SPA (client/) talks to a Fastify REST API (server/) that acts as an HTTP proxy — all user requests go through the server to avoid CORS issues, handle auth, and capture accurate timing. Data is stored in LokiJS, an embedded NoSQL database that persists to a single JSON file on disk. In production, Fastify serves the Angular build as static files inside a single Docker container.

Configuration

Variable Default Description
PORT 3000 Server port (prod)
DATA_DIR ./data LokiJS data directory
LOG_LEVEL info Pino log level

Settings can also be configured in-app via the settings modal (gear icon), including request timeout, history limit, SSL verification, and proxy log level.

Keyboard Shortcuts

Shortcut Action
Ctrl+Enter Send request
Ctrl+S Save request to collection
Ctrl+N New tab
Ctrl+W Close tab
Ctrl+E Focus environment selector
Ctrl+/ Show keyboard shortcuts

Data Persistence

Data is stored in /data/dispatch.db.json inside the container. Mount a volume to persist across restarts:

docker run -p 3000:3000 -v dispatch-data:/data ghcr.io/skillcape-software-llc/dispatch:latest

Backup & Restore

To back up, copy the database file from the volume:

docker cp $(docker ps -qf name=dispatch):/data/dispatch.db.json ./backup.json

To restore, copy it back:

docker cp ./backup.json $(docker ps -qf name=dispatch):/data/dispatch.db.json

Then restart the container to pick up the restored data.

Docker Log Rotation

The Docker Compose file includes log rotation by default (10 MB, 3 files). For standalone docker run, add:

docker run -p 3000:3000 -v dispatch-data:/data \
  --log-opt max-size=10m --log-opt max-file=3 \
  ghcr.io/skillcape-software-llc/dispatch:latest

License

Copyright 2026 Skillcape Software LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

HTTP request management tool to replace Postman v2+

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors