selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

MagicPush logo

Self-host MagicPush

Open-source push service for web, Android, and iOS

AlphaOpen Source
Updated2 years ago
LanguageVue
Setup difficultyAdvanced
Stars
233
Ports
6969 (Backend API), 8080 (Frontend dashboard)
Requires
PostgreSQL, Redis
Docker
svenvdz/magicpush
Install with Docker Compose

What is MagicPush?

MagicPush is an open-source push notification service that lets developers send, schedule, and track push notifications across web, Android, and iOS platforms. It provides a REST API, a web dashboard for managing campaigns, and client libraries for JavaScript, Vue, React, Node, iOS, and Android. The self-hosted version runs via Docker Compose with a Flask backend (port 6969), a Vue.js frontend (port 8080), PostgreSQL database, and Redis for caching and task queues. Features include notification scheduling with timezone support, translation, customizable widgets, and flow-based automation with conditions and delays. The project offers a cloud-hosted version with a freemium pricing model, while the self-hosted edition is free to run. No stable releases have been published on GitHub yet.

Should you self-host MagicPush?

MagicPush scores 38/100 on selfhost.directory (how scoring works) and ranks #17 of 19 in Notifications. It has 233 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is written mostly in Vue.

Its closest alternative on selfhost.directory is Dittofeed (60/100, 3 026 stars). It scores higher overall, so compare the two before you pick. See MagicPush vs Dittofeed side by side.

Features

  • Customizable widget
  • Flow automation
  • Multi-platform client libraries
  • Notification scheduling
  • Performance tracking
  • Push Notifications
  • REST API
  • Translation

MagicPush README

How to install MagicPush

Install MagicPush with Docker Compose

Environment variables
DATABASE_URL, REDIS_URL, CELERY_BROKER_URL, CELERY_RESULT_BACKEND, CELERY_ONCE_URL, FLASK_APP, VUE_APP_SERVER_URL

version: '3.8'

services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "6969:6969" environment: - DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres - REDIS_URL=redis://redis:6379/0 - FLASK_APP=magicpush/init.py - CELERY_BROKER_URL=redis://redis:6379/1 - CELERY_RESULT_BACKEND=redis://redis:6379/1 - CELERY_ONCE_URL=redis://redis:6379/1 depends_on: - db - redis

frontend: build: context: . dockerfile: Dockerfile environment: - VUE_APP_SERVER_URL=http://localhost:6969 ports: - "8080:8080" depends_on: - backend

db: image: postgres:13 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - "5432:5432"

redis: image: redis:6 ports: - "6379:6379"

Requires building from source; pre-built image available as svenvdz/magicpush

How to configure MagicPush

  • CELERY_BROKER_URLRedis URL for Celery broker

    Redis URL for Celery broker

  • CELERY_ONCE_URLRedis URL for Celery once

    Redis URL for Celery once

  • CELERY_RESULT_BACKENDRedis URL for Celery results

    Redis URL for Celery results

  • DATABASE_URLPostgreSQL connection string

    PostgreSQL connection string

  • FLASK_APPmagicpush/__init__.pyFlask application entry point

    Flask application entry point

  • REDIS_URLRedis connection string for caching

    Redis connection string for caching

  • VUE_APP_SERVER_URLhttp://localhost:6969Backend API URL for frontend

    Backend API URL for frontend

More in Notifications

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…