A web application to collect and inspect HTTP requests for testing and debugging purposes. Request Inbox provides a simple and free alternative to services like webhook.site and webhookinbox.com.
π Try it live at request-inbox.com
- π¬ Create, list, and delete inboxes - Organize your inboxes
- π― Endpoint collection - Capture HTTP requests with detailed information
- π§ Custom responses - Configure response headers and body content
- π Request inspection - View detailed request information including headers, body, and metadata
- ποΈ Request management - Remove requests from an inbox
- π Light and dark themes - Choose your preferred interface style
- π Inbox search - Quickly find your inboxes
- β»οΈ Auto-refresh - Real-time request updates
- π JSON viewer - Pretty-print and inspect request bodies
- π OpenAPI documentation - Complete API specification
- π€ User authentication - Secure login with GitHub and Google OAuth
- π Private inboxes - Control access to your testing environments
- π API keys - Programmatic access to your inboxes
Run the complete application in a single container with nginx and the Go API:
# Using Docker Compose
docker-compose up -d
# Or pull from Docker Hub
docker pull jesusnoseq/request-inbox:latest
docker run -d -p 80:80 -p 8080:8080 -v inbox-data:/app/data jesusnoseq/request-inbox:latest
# Or pull from GitHub Container Registry
docker pull ghcr.io/jesusnoseq/request-inbox:latest
docker run -d -p 80:80 -p 8080:8080 -v inbox-data:/app/data ghcr.io/jesusnoseq/request-inbox:latestThe application will be available at http://localhost
π Full Docker deployment guide
Run separate containers for frontend and backend development:
docker-compose -f docker-compose-dev.yml up --buildThis will start:
- API server on
http://localhost:8080 - Frontend on
http://localhost:3000
- Docker and Docker Compose (for containerized deployment)
- Go 1.24+ (for local development)
- Node.js 20+ (for local development)
- Backend setup:
cd api
make install # Download Go dependencies
make run-api-hot # Start with hot reloading- Frontend setup:
cd front
npm install # Install dependencies
npm start # Start development server- View all available commands:
make help- Backend: Go 1.24+ with Gin web framework. Can also work as an AWS lambda.
- Frontend: React 18 with TypeScript and Material-UI
- Database: BadgerDB (embedded) for local development, DynamoDB for production
- Infrastructure: Terraform on AWS (Lambda, API Gateway, S3, CloudFront)
- Authentication: JWT with OAuth2 (GitHub, Google)
- Monitoring: PostHog analytics
- Development: Local Docker containers
- Production: Serverless AWS infrastructure with CI/CD via GitHub Actions
request-inbox/
βββ .github/workflows/ # CI/CD pipelines (GitHub Actions)
βββ api/ # Backend application (Go)
β βββ cmd/ # Application entry points
β βββ pkg/ # Shared packages and business logic
β β βββ handler/ # HTTP request handlers
β β βββ model/ # Data models and validation
β β βββ database/ # Database abstraction layer
β β βββ login/ # Authentication & authorization
β β βββ route/ # API route definitions
β βββ go.mod # Go module dependencies
β βββ air.toml # Hot reload configuration
βββ front/ # Frontend application (React + TypeScript)
β βββ src/ # Source code
β β βββ components/ # Reusable UI components
β β βββ pages/ # Application pages
β β βββ services/ # API client services
β β βββ types/ # TypeScript type definitions
β βββ public/ # Static assets
β βββ package.json # Node.js dependencies
β βββ tsconfig.json # TypeScript configuration
βββ deploy/ # Infrastructure as Code (Terraform)
β βββ back.tf # Backend infrastructure
β βββ front.tf # Frontend infrastructure
β βββ cert.tf # SSL certificates
β βββ variables.tf # Configuration variables
βββ docs/ # Documentation
β βββ openapi.yaml # API specification (OpenAPI 3.1)
βββ docker-compose-local.yml # Local development environment
βββ Dockerfile-api # Backend container definition
βββ Dockerfile-front # Frontend container definition
βββ Makefile # Development commands
βββ README.md # This file
Our REST API is documented using OpenAPI 3.1 specification:
- Online: API Documentation
- Source: OpenAPI YAML
- Production:
https://api.request-inbox.com/api/v1 - Local Development:
http://localhost:8080/api/v1
Responses can work as golang templates is the response is mark as dynamic.
make help # Show all commandsFor local development, create .env.development in the api/ directory:
# Database
DB_ENGINE=embedded
# Server
API_HTTP_PORT=8080
API_MODE=server
# CORS
CORS_ALLOW_ORIGINS=http://localhost:3000
# Authentication (optional for local development)
LOGIN_GITHUB_CLIENT_ID=your_github_client_id
LOGIN_GITHUB_CLIENT_SECRET=your_github_client_secret
LOGIN_GOOGLE_CLIENT_ID=your_google_client_id
LOGIN_GOOGLE_CLIENT_SECRET=your_google_client_secret
JWT_SECRET=your_jwt_secret- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
- Follow Go best practices and run
make lintandmake test - Write tests for new functionality
- Update documentation for API changes
- Use conventional commit messages
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- β Docker images - Production-ready Docker image with nginx and API
- β GitHub Container Registry - Automated image publishing
- Alerts: Notification system for new requests
- Import/Export: Inbox configuration backup and restore fromt github
- Testing: Request testing capabilities. Mark request as Pass or Fail
- Limits: Configurable request and inbox limits
- WebSocket support for real-time updates
- Custom domain support for inboxes
- Advanced filtering and search
- Request callback/passthrough
- Performance monitoring and metrics