Changemaker Lite

Changemaker Lite

A self-hosted campaign platform for community organizers who want to own their data.

Documentation · Website · Apache 2.0 License

--- Changemaker Lite consolidates advocacy campaigns, geographic mapping, volunteer canvassing, media management, newsletters, and administration into a single Docker Compose stack. One `.env` file, one command to start, everything under your control.

Admin Dashboard

## Why Changemaker Lite? Most campaign tools are SaaS platforms that lock you into monthly subscriptions, hold your data hostage, and disappear when funding dries up. Changemaker Lite is different: - **Self-hosted** -- runs on any machine with Docker. Your server, your data. - **All-in-one** -- replaces 5-10 separate tools with a single integrated platform. - **Free and open source** -- Apache 2.0 licensed. Fork it, modify it, make it yours. - **Privacy-first** -- no telemetry, no third-party analytics, no data leaving your server. ## What's Inside ### Advocacy Campaigns Let supporters look up their elected representatives by postal code and send advocacy emails in a few clicks. Track responses, moderate a public response wall, and monitor email delivery.

Public Campaign Page

Campaign Management

### Interactive Map & Canvassing Import thousands of addresses, draw canvassing areas, schedule volunteer shifts, and track door-to-door visits with GPS. Volunteers get a full-screen mobile map with real-time location tracking and visit recording.

Public Map

Canvass Dashboard

### Volunteer Portal Volunteers get their own portal with shift sign-ups, canvassing assignments, activity tracking, a social calendar, and a friends system to stay connected with their team.

Volunteer Map

Volunteer Calendar

### Media Library & Public Gallery Upload campaign videos, manage metadata, schedule publishing, and share them through a public gallery. Includes GDPR-compliant analytics.

Media Library

Public Gallery

### Landing Pages & Email Templates Build campaign microsites with a drag-and-drop GrapesJS editor. Design email templates for consistent campaign communications.

Landing Page Builder

### SMS Campaigns, Newsletters & More Send SMS campaigns via an Android bridge, sync subscribers to Listmonk for newsletters, recognize volunteers on a Wall of Fame leaderboard, and monitor everything with built-in Prometheus + Grafana observability.

SMS Dashboard

Wall of Fame

## Quick Start ```bash # One-command install (downloads pre-built images, runs config wizard) curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash cd ~/changemaker.lite docker compose up -d ``` Or clone and build from source: ```bash git clone changemaker.lite cd changemaker.lite && git checkout v2 cp .env.example .env # Edit .env -- set passwords, JWT secrets, admin credentials docker compose up -d v2-postgres redis api admin docker compose exec api npx prisma migrate deploy docker compose exec api npx prisma db seed ``` Then open **http://localhost:3000** and log in with the admin credentials from your `.env`. ## Documentation **Full documentation is available at [cmlite.org/docs/getting-started](https://cmlite.org/docs/getting-started/).** The docs site covers installation, configuration, all features, architecture details, production deployment with Pangolin tunnels, and troubleshooting. It is the authoritative and up-to-date reference for Changemaker Lite. ## Architecture at a Glance | Layer | Technology | |-------|-----------| | API | Express.js + Prisma + PostgreSQL 16 | | Media API | Fastify + Prisma (shared DB) | | Frontend | React + Vite + Ant Design + Zustand | | Reverse Proxy | Nginx (subdomain routing) | | Cache & Queue | Redis + BullMQ | | Newsletter | Listmonk | | Monitoring | Prometheus + Grafana + Alertmanager | | Tunneling | Pangolin (self-hosted Cloudflare alternative) | The entire stack runs on Docker Compose. Enable optional modules (media, newsletters, SMS, monitoring) with feature flags in `.env`. ## License [Apache License 2.0](https://opensource.org/license/apache-2-0) ## AI Disclaimer AI tools were used to assist in the creation of this project. All generated code has been reviewed. Users should test all functionality to ensure it meets their requirements.