diff --git a/.env.template b/.env.template index 8d10116..3db9614 100644 --- a/.env.template +++ b/.env.template @@ -4,17 +4,17 @@ FNM_WEB_API_V2=true FNM_NOT_UPLOAD_ASN_MAPPING=false COMPOSE_PROJECT_NAME=fnm -COMPOSE_FILE=docker-compose.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml +COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml # Minimal install -# COMPOSE_FILE=docker-compose.yml +# COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml # With visual stack - https://fastnetmon.com/docs-fnm-advanced/advanced-visual-traffic/ -# COMPOSE_FILE=docker-compose.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml +# COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml # With persistend - https://fastnetmon.com/docs-fnm-advanced/fastnetmon-advanced-traffic-persistency/ -# COMPOSE_FILE=docker-compose.yml:docker-compose.clickhouse.yml:docker-compose.trafficdb.yml +# COMPOSE_FILE=docker-compose.ymldocker-compose.mongo.yml::docker-compose.clickhouse.yml:docker-compose.trafficdb.yml # Full install - -# COMPOSE_FILE=docker-compose.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml +# COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9e4df6..21ee161 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,10 +19,10 @@ jobs: matrix: include: - name: Minimal test - compose_file: docker-compose.yml + compose_file: docker-compose.yml:docker-compose.mongo.yml - name: All comopose files test - compose_file: docker-compose.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml:docker-compose.gobgp.yml + compose_file: docker-compose.yml:docker-compose.mongo.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml:docker-compose.gobgp.yml with: runner: ${{ matrix.runner || 'ubuntu-24.04'}} compose_file: ${{ matrix.compose_file }} diff --git a/README.md b/README.md index 639fd38..e52cf53 100644 --- a/README.md +++ b/README.md @@ -28,18 +28,19 @@ We set there variables Minimal example ```bash -COMPOSE_FILE=docker-compose.ym +COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml ``` Most full example ```bash -COMPOSE_FILE=docker-compose.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml:docker-compose.gobgp.yml +COMPOSE_FILE=docker-compose.yml:docker-compose.mongo.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml:docker-compose.gobgp.yml ``` Components by file -- docker-compose.yml - minimal base FNM (only FastNetMon and MongoDB) +- docker-compose.yml - only FastNetMon +- docker-compose.mongo.yml - MongoDB to run as DB with configuration for FastNetMon - docker-compose.gobgp.yml - Add GoBGP daemon - docker-compose.clickhouse.yml - Add clickhouse for saving metrics - docker-compose.grafana.yml - Add grafana for [traffic visualisation](https://fastnetmon.com/docs-fnm-advanced/advanced-visual-traffic/)(need enabled clickhouse) diff --git a/docker-compose.ferretdb.yml b/docker-compose.ferretdb.yml index 405dc1a..0f499e1 100644 --- a/docker-compose.ferretdb.yml +++ b/docker-compose.ferretdb.yml @@ -1,6 +1,6 @@ services: - mongo: + ferretdb: image: ghcr.io/ferretdb/ferretdb:1.20.1 networks: - fastnetmon-network @@ -15,8 +15,8 @@ services: fastnetmon: depends_on: - mongo: + ferretdb: condition: service_started - environment: FERRETDB_ENABLED: true + MONGO_HOST: ferretdb diff --git a/docker-compose.mongo.yml b/docker-compose.mongo.yml new file mode 100644 index 0000000..1556bd4 --- /dev/null +++ b/docker-compose.mongo.yml @@ -0,0 +1,25 @@ +services: + mongo: + # https://hub.docker.com/_/mongo + image: mongo:8.3 + networks: + - fastnetmon-network + restart: unless-stopped + volumes: + - mongodb_data:/data/db + secrets: + - mongo_password + environment: + MONGO_INITDB_ROOT_USERNAME: administrator + MONGO_INITDB_ROOT_PASSWORD_FILE: /run/secrets/mongo_password + healthcheck: + test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet" ] + interval: 1m30s + timeout: 30s + retries: 5 + start_period: 40s + + fastnetmon: + depends_on: + mongo: + condition: service_healthy diff --git a/docker-compose.yml b/docker-compose.yml index 360abd9..1f74c09 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,25 +4,6 @@ include: - secrets.yml services: - mongo: - # https://hub.docker.com/_/mongo - image: mongo:8.2 - networks: - - fastnetmon-network - restart: unless-stopped - volumes: - - mongodb_data:/data/db - secrets: - - mongo_password - environment: - MONGO_INITDB_ROOT_USERNAME: administrator - MONGO_INITDB_ROOT_PASSWORD_FILE: /run/secrets/mongo_password - healthcheck: - test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet" ] - interval: 1m30s - timeout: 30s - retries: 5 - start_period: 40s fastnetmon: image: fastnetmon/fastnetmon-advanced:${FNM_VERSION:-latest} @@ -35,9 +16,6 @@ services: cap_add: - NET_ADMIN - CAP_IPC_LOCK - depends_on: - mongo: - condition: service_healthy environment: MONGO_USERNAME: administrator MONGO_HOST: mongo