Skip to content

Install Pixelview (AIO Setup)

In non HA setup, we setup all components of the PixelView app and automation services on one sigal server as All In One (AIO) setup. We use docker compose to setup the components and run all components in docker containers.

Host Requirements

Before proceeding with the installation, ensure that you have Docker and Docker Compose installed on your system. To do so, you can follow the instructions provided on the docker's website.

System Recommendation

8 vCPU, 16GB RAM, 1GB network

Steps to Install

Copy Docker Compose File

Create a directory for your project and create a file named docker-compose.yml. Copy the provided service configurations into this file.

docker-compose.yaml
services:
  mongodb:
    image: mongo:8.3.8
    container_name: mongodb
    restart: always
    # this version of mongo db has issue with linux kernel 6.19 and above
    # if it doesn't start or keeps restarting, uncomment this.
    # environment:
    #   GLIBC_TUNABLES: glibc.pthread.rseq=1
    volumes:
      - ./pixelview-data:/data/db
    network_mode: host

  rabbitmq:
    image: ghcr.io/pixelvirt/inithive-rabbitmq:latest
    container_name: rabbitmq
    restart: always
    environment:
      RABBITMQ_PASSWORD: dcW41MPUlM54uw2
      RABBITMQ_USER: alertagility
    network_mode: host


  pixelview-frontend:
    image: ghcr.io/pixelvirt/pixelview-frontend:v0.0.1
    container_name: pixelview-frontend
    restart: always
    environment:
      ANSIBLE_BACKEND_URL: localhost:8000
      BACKEND_URL: localhost:9090
      BACKUP_BACKEND_URL: localhost:9191
      CHAT_BACKEND_URL: localhost:8765
      HOST_MANAGEMENT_BACKEND_URL: localhost:8080
      KUBERNETES_BACKEND_URL: localhost:4000
      OPENSTACK_BACKEND_URL: localhost:8005
      PIXELVIEW_URL: localhost:9090
    network_mode: host

  pixelview-backend:
    image: ghcr.io/pixelvirt/pixelview-backend:v0.0.1
    container_name: pixelview-backend
    restart: always
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      DEX_ISSUER_URL: https://dex.pixelvirt.com/dex
      DEX_REDIRECT_URI: https://cloud.pixelvirt.com/api/auth/callback
      OPENSTACK_MIDDLEWARE_URL: http://localhost:8005
      MONGO_URI: mongodb://localhost:27017/alertagility
      DOMAIN: pixelvirt.com
      SUBDOMAIN: alertagility
      RABBITURL: amqp://alertagility:dcW41MPUlM54uw2@localhost:5672/alertagility
      ENVIRONMENT: dev
      KAMAJI_KUBECONFIG: /root/kubeconfig.yaml
      SERVICE_IP: 
    network_mode: host
    volumes:
      - ./kubeconfig.yaml:/root/kubeconfig.yaml

  pixelview-escalation:
    image: ghcr.io/pixelvirt/pixelview-escalation:v0.0.1
    container_name: pixelview-escalation
    restart: always
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      MONGO_URI: mongodb://localhost:27017
      RABBITURL: amqp://alertagility:dcW41MPUlM54uw2@localhost:5672/alertagility
    network_mode: host

  pixelview-openstack:
    image: ghcr.io/pixelvirt/pixelview-openstack:v0.0.1
    container_name: pixelview-openstack
    restart: always
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      GOPHER_CLOUD_DEBUG: true
      MONGO_URI: mongodb://localhost:27017
      MONGO_DBNAME: dashboard_db
      PIXELVIEW_URL: http://localhost:9090
    extra_hosts:
      - "newcloud.pixelvirt.com:138.199.223.176"
    network_mode: host

  pixelview-kubernetes:
    image: ghcr.io/pixelvirt/pixelview-kubernetes:v0.0.1
    container_name: pixelview-kubernetes
    restart: always
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      GET_CONFIG_FROM: bla
      KUBECONFIG_FILE: /usr/src/app/kubeconfig
      MONGO_URI: mongodb://localhost:27017
      PIXELVIEW_URL: http://localhost:9090
    network_mode: host

  pixelview-ansible-server:
    image: ghcr.io/pixelvirt/pixelview-ansible-server:v0.0.1
    build: .
    container_name: pixelview-ansible-server
    restart: unless-stopped
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      JOB_INPUT_QUEUE: admin-admin
      JOB_OUTPUT_QUEUE: ansible_output
      MONGODB_URI: mongodb://localhost:27017
      MONGODB_DBNAME: ansible_server_db
      PIXELVIEW_URL: http://localhost:9090
      RABBITMQ_HOST: localhost
      RABBITMQ_PORT: 5672
      RABBITMQ_USERNAME: alertagility
      RABBITMQ_PASSWORD: dcW41MPUlM54uw2
      RABBITMQ_VHOST: /
      SERVER_PORT: 8000
    network_mode: host

  pixelview-patch-management:
    image: ghcr.io/pixelvirt/pixelview-patch-management:v0.0.1
    container_name: pixelview-patch-management
    restart: always
    environment:
      AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
      SERVER_PORT: 8080
      LOG_LEVEL: info
      PIXELVIEW_URL: http://localhost:9090
      STATIC_API_KEY: dev-key
      MONGODB_URI: mongodb://localhost:27017
      MONGODB_DBNAME: pixelview
      ANSIBLE_SERVER_DBNAME: ansible_server_db
      ANSIBLE_SERVER_URL: localhost:8000
      LEASE_TTL_SECONDS: 30
      HEARTBEAT_INTERVAL_SECONDS: 10
      CLAIM_POLL_INTERVAL_SECONDS: 5
      REAPER_INTERVAL_SECONDS: 60
      ANSIBLE_WATCH_INTERVAL_SECONDS: 5
      BLOCKED_REQUEUE_SECONDS: 15
      WORKER_COUNT: 4
      RECONCILE_INTERVAL_SECONDS: 30
      RECONCILE_STALE_AFTER_SECONDS: 120
    network_mode: host

  # pixelview-backup:
  #   image: ghcr.io/pixelvirt/backup:latest
  #   container_name: pixelview-backup
  #   restart: unless-stopped
  #   environment:
  #     AUTH_KEY: 6c673f51-6045-47b0-8745-eef9d165a310
  #     ALLOWED_ORIGINS: "*"
  #     DB_TYPE: mongodb
  #     MONGO_URI: mongodb://localhost:27017
  #     PIXELVIEW_URL: http://localhost:9090
  #     PORT: 9191
  #   network_mode: host


volumes:
  data:

Important: Service Authentication Key (AUTH_KEY)

Make sure to change the default AUTH_KEY to a strong, secure secret before deploying. The AUTH_KEY must be identical across all PixelView backend services (pixelview-backend, pixelview-escalation, pixelview-openstack, pixelview-kubernetes, pixelview-ansible-server, pixelview-patch-management, etc.) to allow authenticated communication between all services.

Start the containers

Info

Make sure to add the SERVICE_IP to the environment variable of pixelview-backend service. This is the ip of the host that your pixelview-backend container is running on.

Open a terminal window, navigate to the directory where the docker-compose.yml file is located, and run the following command:

docker compose up -d
This command will start all the services in detached mode, meaning they will run in the background.

Verify Installation

After running the docker-compose up -d command, you can verify that the services are running by executing:

docker compose ps
This command will display the status of all the services defined in the docker-compose.yml file.

Accessing the Application

Once the services are up and running, you can access the frontend application at http://localhost

Credentials

  • The default username to access the frontend is admin@localhost
  • The default password is password

Stopping Services

To stop the running services, execute the following command:

docker compose down
This will stop and remove all containers defined in the docker-compose.yml file.

Add licence key

Apart from username and password, you will also need to add a license key to be able to access the PixelView interface. Once you receive license, pelase follow these instructions.

  • Goto Settings -> License key

  • Paste your license key

  • Hit Apply License

Notes

  • The services are configured to automatically restart (restart: always) in case of failures or system reboots.
  • The depends_on directive is used to define service dependencies, ensuring that dependent services are started before the dependent ones.
  • Ensure that your system meets the resource requirements for running the services, especially for memory and CPU.
  • You can customize environment variables and port mappings in the docker-compose.yml file as needed.