Deploy your own BMKG API instance with unlimited requests and full control over your data.
The easiest way to get started. Pull a pre-built image from GitHub Container Registry or build from source.
Option A: Pull pre-built image from GHCR
docker pull ghcr.io/dhanyyudi/bmkg-api:latest
docker run -d -p 8099:8099 ghcr.io/dhanyyudi/bmkg-api:latest
Option B: Build from source with Docker Compose
git clone https://github.com/dhanyyudi/bmkg-api.git
cd bmkg-api
cp .env.example .env
docker-compose up -d
Verify Installation
curl http://localhost:8099/health
Quick demo deployment. Has rate limits, for demo purposes only.
Deploy to VercelOr use Vercel CLI:
vercel --prod
Rate limited: 30 req/min on free tier
Full control with Python 3.12+ setup.
pip install -r requirements.txt
python main.py
Configure your instance by editing the
.env
file
| Variable | Default | Description |
|---|---|---|
PORT
|
8099
|
Server port to listen on |
REDIS_URL
|
redis://redis:6379
|
Redis connection URL (optional) |
LOG_LEVEL
|
INFO
|
Logging level (DEBUG, INFO, WARN, ERROR) |
WORKERS
|
1
|
Number of worker processes |
# Server Configuration
PORT=8099
LOG_LEVEL=INFO
WORKERS=1
# Redis (optional - enables caching)
REDIS_URL=redis://redis:6379/0
# CORS (comma-separated origins)
CORS_ORIGINS=*
Use a reverse proxy like Nginx or Traefik for SSL termination and load balancing in production.
For Docker:
docker-compose pull && docker-compose up -d
The
/health
endpoint returns 200 when the API is ready. Use this for
monitoring and container health checks.
Get started with your own BMKG API instance in minutes. Questions? Check the GitHub repository or API documentation.