mirror of
https://dev.azure.com/tstanciu94/PhantomMind/_git/Bitip
synced 2025-10-13 01:52:19 +03:00
- 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
78 lines
1.7 KiB
YAML
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
|