Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
Docker Compose deployment
menu mobile close menu
Analyzing projects
Additional information
toggle menu Contents

Docker Compose deployment

Aug 26 2026

Description

PVS-Studio Atlas Server is deployed via Docker Compose in containers running 64-bit Linux.

The example of the docker-compose.yml configuration file:

services:
  database:
    image: postgres:18.2
    platform: linux/amd64
    container_name: atlas-database
    restart: unless-stopped
    shm_size: 1g
    environment:
      - POSTGRES_DB=atlas
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
    volumes:
      - ./postgresql_data:/var/lib/postgresql
    ports:
      - 8081:5432
  dashboard:
    image: viva64/atlas-dashboard:latest
    platform: linux/amd64
    container_name: atlas-dashboard
    restart: unless-stopped
    shm_size: 1g
    depends_on:
      - database
    environment:
      - "ATLAS_DB_CONNECTION_STRING=Server=database;Port=5432;\
           Username=postgres;Password=password;Database=atlas;\
           Timeout=300;CommandTimeout=300;"
      #- ATLAS_DB_CONNECTION_STRING_FILE=
      - "ATLAS_JWT_PRIVATE_TOKEN=DEMO_JWT_PRIVATE_TOKEN_\
          loH93fI6vNyL71M0bD6TmCTlZJa"
      #- ATLAS_JWT_PRIVATE_TOKEN_FILE=
      - ATLAS_SERVER_URL=http://localhost:8080
      #- ATLAS_SERVER_URL_FILE=
    volumes:
    # Store logs on the local disk outside the container
      - ./dashboard_logs:/app/logs
    # Store authorization keys on the local disk so
    # they are not lost when the container restarts
      - ./dashboard_keys:/root/.aspnet/DataProtection-Keys
    # Store root certificates
      - ./dashboard_certs:/app/certs
    # Store .pvsmap reports
      - ./storage_data:/app/storage
    ports:
      - 8080:8080
  migrator:
    image: viva64/atlas-migrator:latest
    platform: linux/amd64
    container_name: atlas-migrator
    depends_on:
      - database
    environment:
      - "ATLAS_DB_CONNECTION_STRING=Server=database;Port=5432;\
           Username=postgres;Password=password;Database=atlas;\
           Timeout=300;CommandTimeout=300;"
      #- ATLAS_DB_CONNECTION_STRING_FILE=
    profiles:
      - manual

Database service

Name: database.

Environment variables:

  • TZ : a timezone used for storing dates.
  • POSTGRES_DB: a database name. Default: atlas.
  • POSTGRES_USER: a database administrator name. Default: postgres.
  • POSTGRES_PASSWORD: a database administrator password. Default: postgres.

On the first run, the database will be created with the specified name and credentials.

User service

Name: dashboard.

  • TZ : a timezone used for storing dates.
  • ATLAS_DB_CONNECTION_STRING: a connection string in Key-Value format.
  • ATLAS_JWT_PRIVATE_TOKEN: a JWT token.
  • ATLAS_SERVER_URL: the address of the future server.

How to download and run Docker images

Open the directory containing the docker-compose.yml configuration file and run the following commands:

docker compose --profile manual pull
docker compose up

Add the -d parameter to run the server detached from the console:

docker compose up -d

The first time, it is recommended to run the services with console output enabled to ensure the absence of errors.

Follow the link specified in ATLAS_SERVER_URL and try logging in with the admin / admin credentials. Once run and authentication succeed, continue setting up the server.