--- aliases: - /docs/grafana-cloud/oncall/open-source/ - /docs/oncall/latest/open-source/ keywords: - Open Source title: Open Source weight: 300 --- # Open Source We prepared three environments for OSS users: - **Hobby** environment for local usage & playing around: [README.md](https://github.com/grafana/oncall#getting-started). - **Development** environment for contributors: [DEVELOPER.md](https://github.com/grafana/oncall/blob/dev/DEVELOPER.md) - **Production** environment for reliable cloud installation using Helm: [Production Environment](#production-environment) ## Production Environment We prepared the helm chart for production environment: https://github.com/grafana/oncall/tree/dev/helm/oncall ## Slack Setup Grafana OnCall Slack integration use a lot of Slack API features: - Subscription on Slack events requires OnCall to be externally available and provide https endpoint. - You will need to register new Slack App. 1. Make sure your OnCall is up and running. 2. You need OnCall to be accessible through https. For development purposes we suggest using [localtunnel](https://github.com/localtunnel/localtunnel). For production purposes please consider setting up proper web server with HTTPS termination. For localtunnel: ```bash # Choose the unique prefix instead of pretty-turkey-83 # Localtunnel will generate an url, e.g. https://pretty-turkey-83.loca.lt # it is referred as below lt --port 8080 -s pretty-turkey-83 --print-requests ``` 3. If you use localtunnel, open your external URL and click "Continue" to allow requests to bypass the warning page. 4. [Create a Slack Workspace](https://slack.com/create) for development, or use your company workspace. 5. Go to https://api.slack.com/apps and click Create New App button 6. Select `From an app manifest` option and choose the right workspace 7. Copy and paste the following block with the correct and fields ```yaml _metadata: major_version: 1 minor_version: 1 display_information: name: features: app_home: home_tab_enabled: true messages_tab_enabled: true messages_tab_read_only_enabled: false bot_user: display_name: always_online: true shortcuts: - name: Create a new incident type: message callback_id: incident_create description: Creates a new OnCall incident - name: Add to postmortem type: message callback_id: add_postmortem description: Add this message to postmortem slash_commands: - command: /oncall url: /slack/interactive_api_endpoint/ description: oncall should_escape: false oauth_config: redirect_urls: - /api/internal/v1/complete/slack-install-free/ - /api/internal/v1/complete/slack-login/ scopes: user: - channels:read - chat:write - identify - users.profile:read bot: - app_mentions:read - channels:history - channels:read - chat:write - chat:write.customize - chat:write.public - commands - files:write - groups:history - groups:read - im:history - im:read - im:write - mpim:history - mpim:read - mpim:write - reactions:write - team:read - usergroups:read - usergroups:write - users.profile:read - users:read - users:read.email - users:write settings: event_subscriptions: request_url: /slack/event_api_endpoint/ bot_events: - app_home_opened - app_mention - channel_archive - channel_created - channel_deleted - channel_rename - channel_unarchive - member_joined_channel - message.channels - message.im - subteam_created - subteam_members_changed - subteam_updated - user_change interactivity: is_enabled: true request_url: /slack/interactive_api_endpoint/ org_deploy_enabled: false socket_mode_enabled: false ``` 6. Go to your "OnCall" -> "Env Variables" and set: ``` SLACK_CLIENT_OAUTH_ID = Basic Information -> App Credentials -> Client ID SLACK_CLIENT_OAUTH_SECRET = Basic Information -> App Credentials -> Client Secret SLACK_SIGNING_SECRET = Basic Information -> App Credentials -> Signing Secret SLACK_INSTALL_RETURN_REDIRECT_HOST = << OnCall external URL >> ``` 7. Go to "OnCall" -> "ChatOps" -> "Slack" and install Slack Integration 8. All set! ## Telegram Setup - Telegram integrations requires OnCall to be externally available and provide https endpoint. - Telegram integration in OnCall is designed for collaborative team work. It requires Telegram Group and a Telegram Channel (private) for alerts. 1. Make sure your OnCall is up and running. 2. Respectfully ask [BotFather](https://t.me/BotFather) for a key, put it in `TELEGRAM_TOKEN` in "OnCall" -> "Env Variables". 3. Set `TELEGRAM_WEBHOOK_HOST` with your external url for OnCall. 4. Go to "OnCall" -> "ChatOps" -> Telegram and enjoy! ## Grafana OSS-Cloud Setup Grafana OSS could be connected to Grafana Cloud for heartbeat and SMS / Phone Calls. We tried our best in making Grafana OSS <-> Cloud self-explanatory. Check "Cloud" page in your OSS OnCall instance. Please note that it's possible either to use Grafana Cloud either Twilio for SMS/Phone calls. ## Twilio Setup 1. Make sure Grafana OSS <-> Cloud connector is disabled. Set `GRAFANA_CLOUD_NOTIFICATIONS_ENABLED` as False. 2. Check "OnCall" -> "Env Variables" and set all variables starting with `TWILIO_`