bitip/docker-compose.yml
Tudor Stanciu 345ed9c68c Merged PR 109: Bitip project initialization - GeoIP lookup service with frontend interface
- feat: Implement GeoIP lookup service with frontend interface
- feat: Add dotenv dependency and configure environment variables; update rate limiter response handling
- refactor: Remove development Dockerfile and docker-compose for streamlined setup; update GeoIP service to use new MaxMind types
- chore: update dependencies and ESLint configuration
- feat: Add documentation for breaking changes and package updates after major version upgrades
- feat: Add environment configuration files and update module imports for ES module support
- feat: Update nodemon configuration and add register script for ES module support
- feat: Add .gitattributes file to enforce LF line endings and define text/binary file types
- feat: Implement graceful shutdown with timeout and update nodemon configuration
- feat: Update environment configuration and add detailed configuration guide
- feat: add frontend origin validation and update rate limits
- feat: add versioning arguments and detailed OCI image labels to Dockerfile
- feat: add version and release notes endpoints, update frontend to display release notes
- feat: Refactor App component to use React Router for navigation
- feat: Update navigation styles and remove unused type definitions for react-router-dom
- feat: Generate runtime configuration for frontend and serve env.js
- feat: Update dependencies, enhance ESLint configuration, and improve Vite setup
- refactor: Remove ensureTrailingSlash function and simplify basePath assignment in Vite config
2025-10-02 22:59:22 +00:00

78 lines
1.7 KiB
YAML

version: '3.8'
services:
# GeoIP database updater
geoipupdate:
image: maxmindinc/geoipupdate:latest
restart: unless-stopped
environment:
- GEOIPUPDATE_ACCOUNT_ID=${GEOIPUPDATE_ACCOUNT_ID}
- GEOIPUPDATE_LICENSE_KEY=${GEOIPUPDATE_LICENSE_KEY}
- GEOIPUPDATE_EDITION_IDS=GeoLite2-City,GeoLite2-Country
- GEOIPUPDATE_FREQUENCY=168 # Update weekly (in hours)
volumes:
- geoip_data:/usr/share/GeoIP
networks:
- bitip-network
# Bitip GeoIP Service
bitip:
build: .
restart: unless-stopped
ports:
- '3000:3000'
environment:
# Server Configuration
- PORT=3000
- BASE_PATH=/
- NODE_ENV=production
# MaxMind Database Path
- MAXMIND_DB_PATH=/usr/share/GeoIP
# API Keys (Change these in production!)
- FRONTEND_API_KEY=your-frontend-api-key-here
- EXTERNAL_API_KEYS=your-external-api-key-1,your-external-api-key-2
# Rate Limiting
- FRONTEND_RATE_WINDOW_MS=60000
- FRONTEND_RATE_MAX=30
- EXTERNAL_RATE_WINDOW_MS=60000
- EXTERNAL_RATE_MAX=1000
# Batch Configuration
- BATCH_LIMIT=100
- DEBOUNCE_MS=2000
# Seq Logging (optional)
- SEQ_URL=${SEQ_URL}
- SEQ_API_KEY=${SEQ_API_KEY}
volumes:
- geoip_data:/usr/share/GeoIP:ro
depends_on:
- geoipupdate
networks:
- bitip-network
healthcheck:
test:
[
'CMD',
'wget',
'--no-verbose',
'--tries=1',
'--spider',
'http://localhost:3000/api/health',
]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
volumes:
geoip_data:
driver: local
networks:
bitip-network:
driver: bridge