Skip to content

postgresml/blazer-docker

This branch is 3 commits ahead of, 27 commits behind ankane/blazer-docker:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

783cd6e · Aug 29, 2024

History

87 Commits
Feb 5, 2020
Feb 5, 2020
Aug 29, 2024
Sep 7, 2020
Feb 5, 2020
Feb 5, 2020
Nov 28, 2023
Jul 15, 2024
Nov 28, 2023
Aug 27, 2024
Dec 14, 2022
Feb 5, 2020
Dec 14, 2022
Feb 5, 2020
Feb 5, 2020

Repository files navigation

Blazer Docker

A Docker image for Blazer

Getting Started

Pull the image:

docker pull ankane/blazer

Create database tables:

docker run -ti -e DATABASE_URL=postgres://user:password@hostname:5432/dbname ankane/blazer rails db:migrate

Run the web server:

docker run -ti -e DATABASE_URL=postgres://user:password@hostname:5432/dbname -p 8080:8080 ankane/blazer

Use URL-encoding for any special characters in the username or password. For databases on the host machine, use host.docker.internal as the hostname (on Linux, this requires Docker 20.04+ and --add-host=host.docker.internal:host-gateway).

Then visit http://localhost:8080.

Authentication

Add basic authentication with:

-e BLAZER_USERNAME=admin -e BLAZER_PASSWORD=secret

Or use a reverse proxy like OAuth2 Proxy.

Checks

TODO: SMTP instructions

Schedule checks to run (with cron, Heroku Scheduler, etc). The default options are every 5 minutes, 1 hour, or 1 day, which you can customize. For each of these options, set up a task to run.

docker run ... rake blazer:run_checks SCHEDULE="5 minutes"
docker run ... rake blazer:run_checks SCHEDULE="1 hour"
docker run ... rake blazer:run_checks SCHEDULE="1 day"

You can also set up failing checks to be sent once a day (or whatever you prefer).

docker run ... rake blazer:send_failing_checks

For Slack notifications, create an incoming webhook and set:

-e BLAZER_SLACK_WEBHOOK_URL=https://hooks.slack.com/...

Name the webhook “Blazer” and add a cool icon.

Customization

Create a blazer.yml file with:

# see https://github.com/ankane/blazer for more info

data_sources:
  main:
    url: <%= ENV["DATABASE_URL"] %>

    # statement timeout, in seconds
    # none by default
    # timeout: 15

    # caching settings
    # can greatly improve speed
    # off by default
    # cache:
    #   mode: slow # or all
    #   expires_in: 60 # min
    #   slow_threshold: 15 # sec, only used in slow mode

    # wrap queries in a transaction for safety
    # not necessary if you use a read-only user
    # true by default
    # use_transaction: false

    smart_variables:
      # zone_id: "SELECT id, name FROM zones ORDER BY name ASC"
      # period: ["day", "week", "month"]
      # status: {0: "Active", 1: "Archived"}

    linked_columns:
      # user_id: "/admin/users/{value}"

    smart_columns:
      # user_id: "SELECT id, name FROM users WHERE id IN {value}"

# create audits
audit: true

# change the time zone
# time_zone: "Pacific Time (US & Canada)"

# email to send checks from
# from_email: [email protected]

# webhook for Slack
# slack_webhook_url: <%= ENV["BLAZER_SLACK_WEBHOOK_URL"] %>

check_schedules:
  - "1 day"
  - "1 hour"
  - "5 minutes"

# enable anomaly detection
# note: with trend, time series are sent to https://trendapi.org
# anomaly_checks: prophet / trend / anomaly_detection

# enable forecasting
# note: with trend, time series are sent to https://trendapi.org
# forecasting: prophet / trend

# enable map
# mapbox_access_token: <%= ENV["MAPBOX_ACCESS_TOKEN"] %>

# enable uploads
# uploads:
#   url: <%= ENV["BLAZER_UPLOADS_URL"] %>
#   schema: uploads
#   data_source: main

Create a Dockerfile with:

FROM ankane/blazer

COPY blazer.yml /app/config/blazer.yml

And build your image:

docker build -t my-blazer .

Deployment

Health Checks

Use the /health endpoint for health checks. Status code 200 indicates healthy.

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/blazer-docker.git
cd blazer-docker
docker build -t ankane/blazer:latest .

About

A Docker image for Blazer

Resources

License

Stars

Watchers

Forks

Languages

  • Ruby 86.7%
  • Dockerfile 12.5%
  • Procfile 0.8%