diff --git a/README.md b/README.md index aa8300dc..e89ee533 100644 --- a/README.md +++ b/README.md @@ -11,57 +11,45 @@ Developer-friendly, incident response management with brilliant Slack integratio ![Grafana OnCall Screenshot](screenshot.png) ## Getting Started -OnCall consists of two parts: -1. OnCall backend -2. "Grafana OnCall" plugin you need to install in your Grafana -### How to run OnCall backend -1. An all-in-one image of OnCall is available on docker hub to run it: +### Launch "hobby" environment + +Download docker-compose.yaml: ```bash -docker run -it --name oncall-backend -p 8000:8000 grafana/oncall-all-in-one +curl https://github.com/... -o docker-compose.yaml ``` -2. When the image starts up you will see a message like this: +Set environment: ```bash -👋 This script will issue an invite token to securely connect the frontend. -Maintainers will be happy to help in the slack channel #grafana-oncall: https://slack.grafana.com/ -Your invite token: , use it in the Grafana OnCall plugin. +export DOMAIN=http://localhost +export SECRET_KEY=my_random_secret_must_be_more_than_32_characters_long +export RABBITMQ_PASSWORD=rabbitmq_secret_pw +export MYSQL_PASSWORD=mysql_secret_pw +export COMPOSE_PROFILES=with_grafana +export GRAFANA_USER=admin +export GRAFANA_PASSWORD=admin ``` -3. If you started your container detached with -d check the log: +Launch stack: ```bash -docker logs oncall-backend +docker-compose -f docker-compose.yml up --build -d ``` -### How to install "Grafana OnCall" Plugin and connect with a backend -1. Open Grafana in your browser and login as an Admin -2. Navigate to Configuration → Plugins -3. Type Grafana OnCall into the "Search Grafana plugins" field -4. Select the Grafana OnCall plugin and press the "Install" button -5. On the Grafana OnCall Plugin page Enable the plugin and go to the Configuration tab you should see a status field with the message -``` -OnCall has not been setup, configure & initialize below. -``` -6. Fill in configuration fields using the token you got from the backend earlier, then press "Install Configuration" -``` -OnCall API URL: (The URL & port used to access OnCall) -http://host.docker.internal:8000 - -OnCall Invitation Token (Single use token to connect Grafana instance): -Invitation token from docker startup - -Grafana URL (URL OnCall will use to talk to this Grafana instance): -http://localhost:3000 (or http://host.docker.internal:3000 if your grafana is running in Docker locally) +Get the instructions and the token: +```bash +docker-compose -f docker-compose.yml run engine python manage.py issue_invite_for_the_frontend --override ``` -## Getting Help +^ follow instructions and enjoy! + +## Join our comminuty - `#grafana-oncall` channel at https://slack.grafana.com/ - Grafana Labs community forum for OnCall: https://community.grafana.com - File an [issue](https://github.com/grafana/oncall/issues) for bugs, issues and feature suggestions. ## Production Setup -Looking for the production instructions? We're going to release them soon. Please join our Slack channel to be the first to know about them. +For production setup check [PRODUCTION.md](PRODUCTION.md). ## Further Reading - *Documentation* - [Grafana OnCall](https://grafana.com/docs/grafana-cloud/oncall/) diff --git a/deploy/docker-compose/README.md b/deploy/docker-compose/README.md index 41e77bd8..e69de29b 100644 --- a/deploy/docker-compose/README.md +++ b/deploy/docker-compose/README.md @@ -1,28 +0,0 @@ -Download docker-compose.yaml -```bash -curl https://github.com/... -o docker-compose.yaml -``` - -Start docker-compose stack -```bash -DOMAIN=localhost \ -SECRET_KEY=my_random_secret_must_be_more_than_32_characters_long \ -RABBITMQ_PASSWORD=rabbitmq_secret_pw \ -MYSQL_PASSWORD=mysql_secret_pw \ -COMPOSE_PROFILES=with_grafana \ -GRAFANA_USER=admin \ -GRAFANA_PASSWORD=grafana_secret_pw \ -docker-compose -f docker-compose.yml up --build -d -``` - -Get the instructions and credentials -```bash -DOMAIN=localhost \ -SECRET_KEY=my_random_secret_must_be_more_than_32_characters_long \ -RABBITMQ_PASSWORD=rabbitmq_secret_pw \ -MYSQL_PASSWORD=mysql_secret_pw \ -COMPOSE_PROFILES=with_grafana \ -GRAFANA_USER=admin \ -GRAFANA_PASSWORD=grafana_secret_pw \ -docker-compose -f docker-compose.yml run engine python manage.py issue_invite_for_the_frontend --override -``` diff --git a/deploy/docker-compose/docker-compose.yml b/deploy/docker-compose/docker-compose.yml index 7f7d998c..a07bb72e 100644 --- a/deploy/docker-compose/docker-compose.yml +++ b/deploy/docker-compose/docker-compose.yml @@ -3,6 +3,8 @@ services: # TODO: change to the public image once it's public # image: ... build: ../../engine + ports: + - 8080:8080 command: > sh -c "uwsgi --ini uwsgi.ini" environment: @@ -49,7 +51,7 @@ services: MYSQL_PORT: 3306 REDIS_URI: redis://redis:6379/0 DJANGO_SETTINGS_MODULE: settings.hobby - CELERY_WORKER_QUEUE: "default,critical,long,slack,telegram,webhook" + CELERY_WORKER_QUEUE: "celery" CELERY_WORKER_CONCURRENCY: "1" CELERY_WORKER_MAX_TASKS_PER_CHILD: "100" CELERY_WORKER_SHUTDOWN_INTERVAL: "65m" @@ -138,6 +140,8 @@ services: grafana: image: "grafana/grafana:8.3.2" mem_limit: 500m + ports: + - 3000:3000 cpus: 0.5 environment: GF_DATABASE_TYPE: mysql @@ -148,8 +152,6 @@ services: GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD:?err} GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: grafana-oncall-app GF_INSTALL_PLUGINS: grafana-oncall-app - GF_SERVER_ROOT_URL: http://$DOMAIN/grafana/ - GF_SERVER_SERVE_FROM_SUB_PATH: "true" volumes: - ../../grafana-plugin:/var/lib/grafana/plugins/grafana-plugin depends_on: @@ -160,30 +162,8 @@ services: profiles: - with_grafana - caddy: - image: caddy - volumes: - - caddy_data:/data - - caddy_config:/config - ports: - - 80:80 - - 443:443 - command: - - sh - - '-c' - - | - cat < /etc/caddy/Caddyfile - {\$$CADDY_DOMAIN} { - reverse_proxy /grafana/* grafana:3000 - reverse_proxy /* engine:8080 - } - EOF - caddy run --config=/etc/caddy/Caddyfile - environment: - CADDY_DOMAIN: $DOMAIN - volumes: dbdata: rabbitmqdata: caddy_data: - caddy_config: \ No newline at end of file + caddy_config: diff --git a/docs/sources/integrations/webhooks/_index.md b/docs/sources/integrations/webhooks/_index.md index 026458a8..c5a92ffe 100644 --- a/docs/sources/integrations/webhooks/_index.md +++ b/docs/sources/integrations/webhooks/_index.md @@ -9,4 +9,4 @@ You can use webhooks to send alert group notifications, and also to receive aler Follow these links to learn more about using webhooks for OnCall alert notifications: -{{< section >}} \ No newline at end of file +{{< section >}}