0.9.0

Compatibility

Compatible withAll Buffer, Broker, Auth, and Host plugins
ProductNotiway Notify

Installation

Environment Variables

VariableRequiredDefaultDescription
Infra__Plugins__Storage__NameYesSet to Postgres
Infra__Plugins__Storage__VersionYesPlugin version (e.g., 0.9.0)
Infra__Plugins__Storage__Settings__ConnectionStringYesPostgreSQL connection string (e.g., Host=localhost;Port=5432;Database=notiway;Username=postgres;Password=secret)

Infrastructure

  1. Running PostgreSQL instance — v13+ recommended.
  2. Tables are created automatically on startup using CREATE TABLE IF NOT EXISTS. The plugin creates notification_users and persisted_notifications tables with JSONB data columns and indexes on partition keys and TTL. No manual schema setup needed.
  3. Database must exist — the plugin creates tables but not the database itself. Make sure the database specified in the connection string exists.
  4. Expired rows are cleaned up automatically — a background service deletes rows with expired TTL every hour.

Docker Compose

docker-compose.yml
services:
  notiway:
    image: notiway/notify:portable-0.5.0
    ports:
      - "5000:8080"
    environment:
      - Infra__Plugins__Storage__Name=Postgres
      - Infra__Plugins__Storage__Version=0.9.0
      - Infra__Plugins__Storage__Settings__ConnectionString=Host=postgres;Port=5432;Database=notiway;Username=postgres;Password=secret

  postgres:
    image: postgres:16-alpine
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=notiway
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata: