Has anyone managed to get OnCall working locally/on premise?

Hello,

I have been using the open source Grafana for a couple of years now on premise on a Ubuntu VM, not in Docker. I’ve trying to install OnCall using this link (hobby mode):

However I get this error:

image

Grafana and Prometheus are already running locally, but this is how ‘docker ps’ and my ‘docker-compose.yaml’ looks. I’m missing something:

CONTAINER ID   IMAGE            COMMAND                  CREATED       STATUS                 PORTS                                       NAMES
2438bcb7c144   grafana/oncall   "sh -c 'uwsgi --ini …"   6 days ago    Up 6 days              0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   mydocker_engine_1
ed34f543c51c   grafana/oncall   "sh -c ./celery_with…"   6 days ago    Up 21 minutes                                                      mydocker_celery_1
2bd197d1c28c   redis:7.0.5      "docker-entrypoint.s…"   2 weeks ago   Up 2 weeks (healthy)   6379/tcp                                    mydocker_redis_1

docker-compose.yml file


x-environment: &oncall-environment
  DATABASE_TYPE: sqlite3
  BROKER_TYPE: redis
  BASE_URL: $DOMAIN
  SECRET_KEY: $SECRET_KEY
  FEATURE_PROMETHEUS_EXPORTER_ENABLED: ${FEATURE_PROMETHEUS_EXPORTER_ENABLED:-false}
  PROMETHEUS_EXPORTER_SECRET: ${PROMETHEUS_EXPORTER_SECRET:-}
  REDIS_URI: redis://redis:6379/0
  DJANGO_SETTINGS_MODULE: settings.hobby
  CELERY_WORKER_QUEUE: "default,critical,long,slack,telegram,webhook,retry,celery,grafana"
  CELERY_WORKER_CONCURRENCY: "1"
  CELERY_WORKER_MAX_TASKS_PER_CHILD: "100"
  CELERY_WORKER_SHUTDOWN_INTERVAL: "65m"
  CELERY_WORKER_BEAT_ENABLED: "True"
  GRAFANA_API_URL: https://grafana.com:3000

services:
  engine:
    image: grafana/oncall
    restart: always
    ports:
      - "8080:8080"
    command: sh -c "uwsgi --ini uwsgi.ini"
    environment: *oncall-environment
    volumes:
      - oncall_data:/var/lib/oncall
    depends_on:
      oncall_db_migration:
        condition: service_completed_successfully
      redis:
        condition: service_healthy

  celery:
    image: grafana/oncall
    restart: always
    command: sh -c "./celery_with_exporter.sh"
    environment: *oncall-environment
    volumes:
      - oncall_data:/var/lib/oncall
    depends_on:
      oncall_db_migration:
        condition: service_completed_successfully
      redis:
        condition: service_healthy

  oncall_db_migration:
    image: grafana/oncall
    command: python manage.py migrate --noinput
    environment: *oncall-environment
    volumes:
      - oncall_data:/var/lib/oncall
    depends_on:
      redis:
        condition: service_healthy

  redis:
    image: redis:7.0.5
    restart: always
    expose:
      - 6379
    volumes:
      - redis_data:/data
    deploy:
      resources:
        limits:
          memory: 500m
          cpus: "0.5"
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      timeout: 5s
      interval: 5s
      retries: 10

volumes:
#  grafana_data:
#  prometheus_data:
  oncall_data:
  redis_data:

I’m wondering if I’m missing the prometheus part, I really don’t know at this point. I’m so close, but now lost to how to fix this.

Here is some other screenshots:

Add the local host address:

Then if I select ‘Open Grafana Oncall’

I quickly see this:

Then I get this

If I choose ‘Open Grafana Oncall’. I get:

image

Sure I use it on-prem. No reason it won’t work. It’s tough to say what’s going on here without logs but it looks like there’s an issue syncing the users from Grafana → Grafana OnCall. Check that the Service Account is set up and API key working. This would be in Grafana>Users and access> Service Accounts. OnCall periodically syncs users from the main Grafana instance into its own DB.

If I setup from docker-compose, everyting works well.
But if Grafana is configurated with tls the Authentication fails at first on the validation of the cert and I think also on the user sync.

@g0nz0uk in the documentation the url ist http://engine:8080 and is your .env file in the same folder as your compose file?