diff --git a/blueprints/notifuse/docker-compose.yml b/blueprints/notifuse/docker-compose.yml new file mode 100644 index 00000000..7a33cd4d --- /dev/null +++ b/blueprints/notifuse/docker-compose.yml @@ -0,0 +1,58 @@ +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 diff --git a/blueprints/notifuse/logo.png b/blueprints/notifuse/logo.png new file mode 100644 index 00000000..af765540 Binary files /dev/null and b/blueprints/notifuse/logo.png differ diff --git a/blueprints/notifuse/template.toml b/blueprints/notifuse/template.toml new file mode 100644 index 00000000..ec619010 --- /dev/null +++ b/blueprints/notifuse/template.toml @@ -0,0 +1,29 @@ +[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 = "your-email@gmail.com" +SMTP_PASSWORD = "your-smtp-password" +SMTP_FROM_EMAIL = "noreply@yourdomain.com" +SMTP_FROM_NAME = "Notifuse" + +[[config.mounts]] diff --git a/meta.json b/meta.json index 51e72251..3e263e16 100644 --- a/meta.json +++ b/meta.json @@ -3398,6 +3398,24 @@ "nocode" ] }, + { + "id": "notifuse", + "name": "Notifuse", + "version": "latest", + "description": "Open-source newsletter and notification platform that empowers teams to create, send, and track communications at scale.", + "logo": "logo.png", + "links": { + "github": "https://github.com/notifuse/notifuse", + "website": "https://notifuse.com/", + "docs": "https://docs.notifuse.com/" + }, + "tags": [ + "newsletter", + "email", + "communication", + "notifications" + ] + }, { "id": "ntfy", "name": "NTFY",