Dokploy

Notifuse

Open-source newsletter and notification platform that empowers teams to create, send, and track communications at scale.

Notifuse logo

Configuration

services:
  db:
    image: postgres:17-alpine
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  notifuse:
    image: notifuse/notifuse:latest
    restart: unless-stopped
    depends_on:
      - db
    environment:
      # Root user configuration
      - ROOT_EMAIL=${ROOT_EMAIL}

      # API configuration
      - API_ENDPOINT=${API_ENDPOINT}

      # Database configuration
      - DB_HOST=db
      - DB_PORT=5432
      - DB_USER=postgres
      - DB_PASSWORD=postgres
      - DB_PREFIX=notifuse
      - DB_NAME=notifuse_system
      - DB_SSLMODE=disable

      # PASETO keys for authentication
      # Default keys for testing - GENERATE YOUR OWN for production at https://paseto.notifuse.com/
      - PASETO_PRIVATE_KEY=${PASETO_PRIVATE_KEY}
      - PASETO_PUBLIC_KEY=${PASETO_PUBLIC_KEY}

      # SMTP configuration
      - SMTP_HOST=${SMTP_HOST}
      - SMTP_PORT=${SMTP_PORT}
      - SMTP_USERNAME=${SMTP_USERNAME}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL}
      - SMTP_FROM_NAME=${SMTP_FROM_NAME}

      # Server configuration
      - SERVER_PORT=8080
      - SERVER_HOST=0.0.0.0
      - ENVIRONMENT=production

volumes:
  db-data:
    driver: local
[variables]
main_domain = "${domain}"
paseto_private_key = "d04zCk3Fa45oOjDWHpAvc1AZxnLdGffOnNWK+Jt2yXf37+FTfuMMHb8flcfPMqLluRR3rvhbr555r6j1DEigrA=="
paseto_public_key = "9+/hU37jDB2/H5XHzzKi5bkUd674W6+eea+o9QxIoKw="

[config]
[[config.domains]]
serviceName = "notifuse"
port = 8080
host = "${main_domain}"

[config.env]
ROOT_EMAIL = "${email}"
API_ENDPOINT = "https://${main_domain}"

# PASETO keys for authentication
# Default keys for testing - GENERATE YOUR OWN for production at https://paseto.notifuse.com/
PASETO_PRIVATE_KEY = "${paseto_private_key}"
PASETO_PUBLIC_KEY = "${paseto_public_key}"

# SMTP Configuration (users need to configure these)
SMTP_HOST = "smtp.gmail.com"
SMTP_PORT = "587"
SMTP_USERNAME = "[email protected]"
SMTP_PASSWORD = "your-smtp-password"
SMTP_FROM_EMAIL = "[email protected]"
SMTP_FROM_NAME = "Notifuse"

[[config.mounts]]

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBkYjpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTctYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19EQj1wb3N0Z3Jlc1xuICAgICAgLSBQT1NUR1JFU19VU0VSPXBvc3RncmVzXG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPXBvc3RncmVzXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJwZ19pc3JlYWR5IC1VIHBvc3RncmVzXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiA1XG5cbiAgbm90aWZ1c2U6XG4gICAgaW1hZ2U6IG5vdGlmdXNlL25vdGlmdXNlOmxhdGVzdFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gZGJcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgICMgUm9vdCB1c2VyIGNvbmZpZ3VyYXRpb25cbiAgICAgIC0gUk9PVF9FTUFJTD0ke1JPT1RfRU1BSUx9XG5cbiAgICAgICMgQVBJIGNvbmZpZ3VyYXRpb25cbiAgICAgIC0gQVBJX0VORFBPSU5UPSR7QVBJX0VORFBPSU5UfVxuXG4gICAgICAjIERhdGFiYXNlIGNvbmZpZ3VyYXRpb25cbiAgICAgIC0gREJfSE9TVD1kYlxuICAgICAgLSBEQl9QT1JUPTU0MzJcbiAgICAgIC0gREJfVVNFUj1wb3N0Z3Jlc1xuICAgICAgLSBEQl9QQVNTV09SRD1wb3N0Z3Jlc1xuICAgICAgLSBEQl9QUkVGSVg9bm90aWZ1c2VcbiAgICAgIC0gREJfTkFNRT1ub3RpZnVzZV9zeXN0ZW1cbiAgICAgIC0gREJfU1NMTU9ERT1kaXNhYmxlXG5cbiAgICAgICMgUEFTRVRPIGtleXMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAgICAjIERlZmF1bHQga2V5cyBmb3IgdGVzdGluZyAtIEdFTkVSQVRFIFlPVVIgT1dOIGZvciBwcm9kdWN0aW9uIGF0IGh0dHBzOi8vcGFzZXRvLm5vdGlmdXNlLmNvbS9cbiAgICAgIC0gUEFTRVRPX1BSSVZBVEVfS0VZPSR7UEFTRVRPX1BSSVZBVEVfS0VZfVxuICAgICAgLSBQQVNFVE9fUFVCTElDX0tFWT0ke1BBU0VUT19QVUJMSUNfS0VZfVxuXG4gICAgICAjIFNNVFAgY29uZmlndXJhdGlvblxuICAgICAgLSBTTVRQX0hPU1Q9JHtTTVRQX0hPU1R9XG4gICAgICAtIFNNVFBfUE9SVD0ke1NNVFBfUE9SVH1cbiAgICAgIC0gU01UUF9VU0VSTkFNRT0ke1NNVFBfVVNFUk5BTUV9XG4gICAgICAtIFNNVFBfUEFTU1dPUkQ9JHtTTVRQX1BBU1NXT1JEfVxuICAgICAgLSBTTVRQX0ZST01fRU1BSUw9JHtTTVRQX0ZST01fRU1BSUx9XG4gICAgICAtIFNNVFBfRlJPTV9OQU1FPSR7U01UUF9GUk9NX05BTUV9XG5cbiAgICAgICMgU2VydmVyIGNvbmZpZ3VyYXRpb25cbiAgICAgIC0gU0VSVkVSX1BPUlQ9ODA4MFxuICAgICAgLSBTRVJWRVJfSE9TVD0wLjAuMC4wXG4gICAgICAtIEVOVklST05NRU5UPXByb2R1Y3Rpb25cblxudm9sdW1lczpcbiAgZGItZGF0YTpcbiAgICBkcml2ZXI6IGxvY2FsXG4iLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxucGFzZXRvX3ByaXZhdGVfa2V5ID0gXCJkMDR6Q2szRmE0NW9PakRXSHBBdmMxQVp4bkxkR2ZmT25OV0srSnQyeVhmMzcrRlRmdU1NSGI4ZmxjZlBNcUxsdVJSM3J2aGJyNTU1cjZqMURFaWdyQT09XCJcbnBhc2V0b19wdWJsaWNfa2V5ID0gXCI5Ky9oVTM3akRCMi9INVhIenpLaTVia1VkNjc0VzYrZWVhK285UXhJb0t3PVwiXG5cbltjb25maWddXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJub3RpZnVzZVwiXG5wb3J0ID0gODA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG5bY29uZmlnLmVudl1cblJPT1RfRU1BSUwgPSBcIiR7ZW1haWx9XCJcbkFQSV9FTkRQT0lOVCA9IFwiaHR0cHM6Ly8ke21haW5fZG9tYWlufVwiXG5cbiMgUEFTRVRPIGtleXMgZm9yIGF1dGhlbnRpY2F0aW9uXG4jIERlZmF1bHQga2V5cyBmb3IgdGVzdGluZyAtIEdFTkVSQVRFIFlPVVIgT1dOIGZvciBwcm9kdWN0aW9uIGF0IGh0dHBzOi8vcGFzZXRvLm5vdGlmdXNlLmNvbS9cblBBU0VUT19QUklWQVRFX0tFWSA9IFwiJHtwYXNldG9fcHJpdmF0ZV9rZXl9XCJcblBBU0VUT19QVUJMSUNfS0VZID0gXCIke3Bhc2V0b19wdWJsaWNfa2V5fVwiXG5cbiMgU01UUCBDb25maWd1cmF0aW9uICh1c2VycyBuZWVkIHRvIGNvbmZpZ3VyZSB0aGVzZSlcblNNVFBfSE9TVCA9IFwic210cC5nbWFpbC5jb21cIlxuU01UUF9QT1JUID0gXCI1ODdcIlxuU01UUF9VU0VSTkFNRSA9IFwieW91ci1lbWFpbEBnbWFpbC5jb21cIlxuU01UUF9QQVNTV09SRCA9IFwieW91ci1zbXRwLXBhc3N3b3JkXCJcblNNVFBfRlJPTV9FTUFJTCA9IFwibm9yZXBseUB5b3VyZG9tYWluLmNvbVwiXG5TTVRQX0ZST01fTkFNRSA9IFwiTm90aWZ1c2VcIlxuXG5bW2NvbmZpZy5tb3VudHNdXVxuIgp9

Tags

newsletter, email, communication, notifications


Version: latest

On this page