Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
96 changes: 96 additions & 0 deletions docker/full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
version: "3.8"

# Full FluxGate Development Environment
# Includes: MongoDB, Redis (standalone), ELK Stack
#
# Usage:
# docker-compose -f docker/full.yml up -d
# docker-compose -f docker/full.yml down
#
# Services:
# - MongoDB: localhost:27017 (user: fluxgate, password: fluxgate123)
# - Redis: localhost:6379
# - Elasticsearch: localhost:9200
# - Kibana: localhost:5601
# - Logstash: localhost:5044 (TCP input), localhost:9600 (monitoring)

services:
# ============================================
# MongoDB - Rule Storage
# ============================================
mongo:
image: mongo:7.0
container_name: fluxgate-mongo
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: fluxgate
MONGO_INITDB_ROOT_PASSWORD: fluxgate123
MONGO_INITDB_DATABASE: fluxgate
volumes:
- mongo-data:/data/db

# ============================================
# Redis Standalone - Rate Limiting
# ============================================
redis:
image: redis:7.2-alpine
container_name: fluxgate-redis
ports:
- "6379:6379"

# ============================================
# ELK Stack - Logging & Monitoring
# ============================================
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
container_name: elk-elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- "9200:9200"
volumes:
- es-data:/usr/share/elasticsearch/data

kibana:
image: docker.elastic.co/kibana/kibana:8.12.2
container_name: elk-kibana
depends_on:
- elasticsearch
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"

logstash:
image: docker.elastic.co/logstash/logstash:8.12.2
container_name: elk-logstash
depends_on:
- elasticsearch
ports:
- "5044:5044" # TCP input
- "9600:9600" # Logstash monitoring API
environment:
- XPACK_MONITORING_ENABLED=false
- PIPELINE_WORKERS=1
command: >
logstash -e '
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "fluxgate-logs-%{+YYYY.MM.dd}"
}
}
'

volumes:
mongo-data:
es-data:
17 changes: 17 additions & 0 deletions docker/mongo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: "3.8"

services:
mongo:
image: mongo:7.0
container_name: fluxgate-mongo
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: fluxgate
MONGO_INITDB_ROOT_PASSWORD: fluxgate123
MONGO_INITDB_DATABASE: fluxgate
volumes:
- mongo-data:/data/db

volumes:
mongo-data:
11 changes: 11 additions & 0 deletions docker/redis-cluster.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "3.8"

services:
redis-cluster:
image: grokzen/redis-cluster:7.0.10
container_name: redis-cluster-test
environment:
IP: 0.0.0.0
INITIAL_PORT: 7100
ports:
- "7100-7105:7100-7105"
8 changes: 8 additions & 0 deletions docker/redis-standalone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: "3.8"

services:
redis:
image: redis:7.2-alpine
container_name: fluxgate-redis
ports:
- "6379:6379"