Skip to main content
Version: 10.1

Installation Guide

Welcome to the Installation Guide! This page will help you set up and configure the system using Docker, Podman, or Kubernetes. Use the tabs below to navigate through each setup method.

Installation Methods:

  • Docker Setup: Quick and easy containerized installation.
  • Podman Setup: Docker-compatible, rootless containers.
  • Kubernetes Setup: For scalable, production-grade deployments.

To install using Docker:

  1. Download the provided docker-compose.yml file below.
  2. Pull the container image from the registry: docker pull registry.frafos.net/mon:<tag>
  3. Update your docker-compose.yml to use the registry image:
    image: registry.frafos.net/mon:<tag>
  4. Run: docker-compose up -d
  5. Access the dashboard at http://localhost:3000

Container images are available at: Frafos Container Registry

Show example docker-compose.yml
⬇️ Download docker-compose.yml
docker-compose.yml
# Example Docker Compose file for Frafos monitoring stack
# Each service below represents a containerized application.

services:
ccm: # Call Control Manager (CCM) service
image: gitlab.frafos.net:5050/sbc/sbc/ccm:5.5
container_name: ccm
ports:
- "443-444:443-444" # Expose ports 443 and 444
networks:
- monitoring # Connect to monitoring network
- signaling # Connect to signaling network
restart: always # Always restart on failure
volumes:
- ccm-data:/data # Persist data in named volume
cap_add:
- AUDIT_CONTROL # Add audit control capability
- AUDIT_WRITE # Add audit write capability

elastic: # Elasticsearch service for log and metric storage
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.28
container_name: elastic
ports:
- "9200:9200" # HTTP API
- "9300:9300" # Transport protocol
environment:
- discovery.type=single-node # Run as single node
- network.host=_local_,_site_ # Bind to local and site interfaces
- path.repo=/usr/share/elasticsearch/snapshots # Path for snapshots
#- thread_pool.search.queue_size=10000 # (optional) Increase search queue size
- xpack.ml.enabled=false # Disable ML features
- xpack.security.enabled=false # Disable security
- xpack.security.http.ssl.enabled=false# Disable HTTP SSL
#- cluster.max_shards_per_node=166 # (optional) Increase max shards
#- indices.lifecycle.history_index_enabled=false # (optional) Disable ILM history
networks:
- monitoring
restart: always
ulimits:
nofile:
soft: 65536
hard: 65536
memlock:
soft: -1
hard: -1
mem_limit: 4g
volumes:
- es-data:/usr/share/elasticsearch/data # Data volume
- es-snapshots:/usr/share/elasticsearch/snapshots # Snapshots volume
#- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro # (optional) Custom config

chrome:
# Headless Chrome for PDF generation or browser automation
image: zenika/alpine-chrome:latest
#image: registry.frafos.net/contrib/alpine-chrome:latest # (alternative image)
container_name: chrome
networks:
- monitoring
expose:
- "9222" # Expose remote debugging port
command:
- "--no-sandbox"
- "--remote-debugging-address=0.0.0.0"
- "--remote-debugging-port=9222"

mon: # Monitoring service (MON)
image: registry.frafos.net/abc/mon:10.2
container_name: mon
ports:
- "5000:5000" # SERVER_PORT
- "5044:5044" # LOGSTASH_BEATS_PORT
- "3042:3042" # UPLOAD_API_PORT
- "1873:1873" # UPLOAD_API_RSYNC_PORT
- "3000:3000" # UI_PORT
environment:
#- CCM=ccm # (optional) CCM service name
#- ES=http://elastic:9200 # (optional) ES endpoint
#- REPORT_URL=http://127.0.0.1:5000/report # (optional) Report URL
#- ES_USER=monitor # (optional) ES user
#- ES_PASSWORD=password # (optional) ES password
volumes:
- mon-data:/data # Persist MON data
networks:
- monitoring
tty: true # Enable TTY
stdin_open: true # Keep STDIN open

volumes:
es-data:
es-snapshots:
mon-data-fresh-master:

networks:
monitoring:
driver: bridge
signaling:
driver: bridge
note

Docker is the recommended way for quick setup and easy updates.