Sistema de On Call scheduling.

URL: https://goalert.me/ Github: https://github.com/target/goalert

Podemos usar o Twilio para notificações

Usa o Postgres

Notas

Exemplo de chamada para criar alerta

Doc sobre: https://goalert.me/docs/alerting/alerting-from-generic-api/

curl -X POST -v "https://go-alert-domain/api/v2/generic/incoming?token=91e6cca7-8dd0-4c9f-b77d-de10110fb833&summary=test-2&details=testing-2"

Execução local

.env de exemplo

POSTGRES_USER=myuser
POSTGRES_PASSWORD=mypassword
POSTGRES_DB=mydatabase

GOALERT_PUBLIC_URL=http://localhost:8081
GOALERT_DB_URL=postgresql://myuser:mypassword@postgres:5432/mydatabase

Dockerfile

FROM goalert/goalert:nightly AS builder

COPY . .

EXPOSE 8080

RUN addgroup -S nonroot-group && adduser -S nonroot -G nonroot-group && chown nonroot:nonroot-group .
USER nonroot

ENTRYPOINT [ "goalert" ]

Docker compose

version: "3.9"
 
services:
  goalert:
    build:
      context: .
    restart: always
    container_name: goalert
    networks:
      - goalert
    ports:
      - 8081:8081
    env_file:
      - .env
 
  postgres:
    image: postgres:16.1
    restart: always
    container_name: postgres
    networks:
      - goalert
    ports:
      - 5432:5432
    env_file:
      - .env
    volumes:
      - postgres:/var/lib/postgresql/data
 
volumes:
  postgres:
    driver: local
 
networks:
  goalert:
    driver: bridge

Adicionar usuário

Entrar na imagem docker rodando:

docker exec -it goalert sh
	goalert add-user --db-url $GOALERT_DB_URL --admin --user admin --email admin@example.com

Mais sobre aqui: https://github.com/target/goalert/blob/master/docs/getting-started.md