Update admin modals and page components for mobile responsiveness

Bunker Admin
This commit is contained in:
2026-04-09 11:43:23 -06:00
parent 849dea7ce2
commit f0d994074d
81 changed files with 1271 additions and 588 deletions

View File

@@ -7,10 +7,10 @@
"stars_count": 0,
"forks_count": 0,
"open_issues_count": 0,
"updated_at": "2026-04-03T08:52:26-06:00",
"updated_at": "2026-04-07T17:26:04-06:00",
"created_at": "2025-05-28T14:54:59-06:00",
"clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git",
"ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git",
"default_branch": "main",
"last_build_update": "2026-04-03T08:52:26-06:00"
"last_build_update": "2026-04-07T17:26:04-06:00"
}

View File

@@ -4,10 +4,10 @@
"description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.",
"html_url": "https://github.com/anthropics/claude-code",
"language": "Shell",
"stars_count": 110576,
"forks_count": 18412,
"open_issues_count": 9331,
"updated_at": "2026-04-07T21:20:13Z",
"stars_count": 110600,
"forks_count": 18415,
"open_issues_count": 9302,
"updated_at": "2026-04-07T23:27:04Z",
"created_at": "2025-02-22T17:41:21Z",
"clone_url": "https://github.com/anthropics/claude-code.git",
"ssh_url": "git@github.com:anthropics/claude-code.git",

View File

@@ -4,10 +4,10 @@
"description": "VS Code in the browser",
"html_url": "https://github.com/coder/code-server",
"language": "TypeScript",
"stars_count": 76996,
"stars_count": 76998,
"forks_count": 6596,
"open_issues_count": 143,
"updated_at": "2026-04-07T19:48:34Z",
"updated_at": "2026-04-07T23:08:42Z",
"created_at": "2019-02-27T16:50:41Z",
"clone_url": "https://github.com/coder/code-server.git",
"ssh_url": "git@github.com:coder/code-server.git",

View File

@@ -4,10 +4,10 @@
"description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.",
"html_url": "https://github.com/gethomepage/homepage",
"language": "JavaScript",
"stars_count": 29400,
"stars_count": 29403,
"forks_count": 1853,
"open_issues_count": 2,
"updated_at": "2026-04-07T21:20:06Z",
"updated_at": "2026-04-07T23:17:05Z",
"created_at": "2022-08-24T07:29:42Z",
"clone_url": "https://github.com/gethomepage/homepage.git",
"ssh_url": "git@github.com:gethomepage/homepage.git",

View File

@@ -7,7 +7,7 @@
"stars_count": 54776,
"forks_count": 6537,
"open_issues_count": 2822,
"updated_at": "2026-04-07T21:08:31Z",
"updated_at": "2026-04-07T22:34:41Z",
"created_at": "2016-11-01T02:13:26Z",
"clone_url": "https://github.com/go-gitea/gitea.git",
"ssh_url": "git@github.com:go-gitea/gitea.git",

View File

@@ -4,10 +4,10 @@
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.",
"html_url": "https://github.com/knadh/listmonk",
"language": "Go",
"stars_count": 19473,
"stars_count": 19474,
"forks_count": 1986,
"open_issues_count": 97,
"updated_at": "2026-04-07T17:09:29Z",
"updated_at": "2026-04-07T22:55:19Z",
"created_at": "2019-06-26T05:08:39Z",
"clone_url": "https://github.com/knadh/listmonk.git",
"ssh_url": "git@github.com:knadh/listmonk.git",

View File

@@ -4,13 +4,13 @@
"description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.",
"html_url": "https://github.com/n8n-io/n8n",
"language": "TypeScript",
"stars_count": 182862,
"forks_count": 56569,
"open_issues_count": 1503,
"updated_at": "2026-04-07T21:18:33Z",
"stars_count": 182875,
"forks_count": 56576,
"open_issues_count": 1502,
"updated_at": "2026-04-07T23:16:46Z",
"created_at": "2019-06-22T09:24:21Z",
"clone_url": "https://github.com/n8n-io/n8n.git",
"ssh_url": "git@github.com:n8n-io/n8n.git",
"default_branch": "master",
"last_build_update": "2026-04-07T21:11:12Z"
"last_build_update": "2026-04-07T23:30:49Z"
}

View File

@@ -4,10 +4,10 @@
"description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 A Free & Self-hostable Airtable Alternative",
"html_url": "https://github.com/nocodb/nocodb",
"language": "TypeScript",
"stars_count": 62627,
"stars_count": 62628,
"forks_count": 4714,
"open_issues_count": 668,
"updated_at": "2026-04-07T21:10:45Z",
"open_issues_count": 669,
"updated_at": "2026-04-07T21:46:28Z",
"created_at": "2017-10-29T18:51:48Z",
"clone_url": "https://github.com/nocodb/nocodb.git",
"ssh_url": "git@github.com:nocodb/nocodb.git",

View File

@@ -4,13 +4,13 @@
"description": "Get up and running with Kimi-K2.5, GLM-5, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.",
"html_url": "https://github.com/ollama/ollama",
"language": "Go",
"stars_count": 168028,
"forks_count": 15420,
"open_issues_count": 2875,
"updated_at": "2026-04-07T21:14:42Z",
"stars_count": 168040,
"forks_count": 15419,
"open_issues_count": 2871,
"updated_at": "2026-04-07T23:28:46Z",
"created_at": "2023-06-26T19:39:32Z",
"clone_url": "https://github.com/ollama/ollama.git",
"ssh_url": "git@github.com:ollama/ollama.git",
"default_branch": "main",
"last_build_update": "2026-04-07T16:18:40Z"
"last_build_update": "2026-04-07T23:28:36Z"
}

View File

@@ -4,10 +4,10 @@
"description": "Documentation that simply works",
"html_url": "https://github.com/squidfunk/mkdocs-material",
"language": "Python",
"stars_count": 26467,
"stars_count": 26468,
"forks_count": 4069,
"open_issues_count": 1,
"updated_at": "2026-04-07T19:22:44Z",
"updated_at": "2026-04-07T22:53:37Z",
"created_at": "2016-01-28T22:09:23Z",
"clone_url": "https://github.com/squidfunk/mkdocs-material.git",
"ssh_url": "git@github.com:squidfunk/mkdocs-material.git",

View File

@@ -11,6 +11,9 @@ tags:
# Changemaker Control Panel (CCP)
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
The Changemaker Control Panel is a **multi-tenant management layer** for operators who run multiple Changemaker Lite instances from a single server. It provides a web UI to provision, monitor, and maintain a fleet of instances without manual configuration.
!!! info "Single instance?"

View File

@@ -11,6 +11,9 @@ tags:
# Environment Variables
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Changemaker Lite uses a single `.env` file at the project root to configure all services. Copy the example file to get started:
```bash

View File

@@ -11,6 +11,9 @@ search:
# Features at a Glance
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Changemaker Lite bundles advocacy campaigns, geographic mapping, volunteer management, media hosting, and landing pages into a single self-hosted platform. Every feature can be toggled on or off from **Settings** in the admin panel.
---

View File

@@ -12,6 +12,9 @@ search:
# First Steps
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
You've installed Changemaker Lite — here's what to do next.
---

View File

@@ -1,43 +1,127 @@
---
title: Getting Started
description: Install and configure Changemaker Lite from scratch.
description: Everything you need to deploy Changemaker Lite from prerequisites to your first login.
icon: material/rocket-launch
tags:
- guide
- getting-started
- operator
- planning
search:
boost: 2
---
# Getting Started
This guide walks you through installing Changemaker Lite, running your first deployment, and logging into the admin dashboard.
Changemaker Lite is a self-hosted campaign platform that runs entirely on Docker. This guide takes you from zero to a working deployment — whether you're evaluating locally or launching for a live campaign.
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
![Admin Dashboard](../../assets/images/screenshots/getting-started/dashboard.png){ loading=lazy }
---
## Prerequisites
## What You'll Need
- **Docker** 24+ and **Docker Compose** v2
- **OpenSSL** (for secret generation)
- A Linux server (Ubuntu 22.04+ recommended) or macOS for development
- At least 2 GB RAM and 10 GB disk space
- A domain name (optional, but recommended for production)
Before deploying, gather the essentials. The requirements differ depending on whether you're running a **quick local test** or a **production deployment** serving real users.
## Quick Install (Pre-built Images)
### :material-laptop:{ .lg } Development (Local Testing)
The fastest way to deploy — no source code, no compilation:
All you need is Docker — no domain, tunnel, or SMTP required:
<div class="grid cards" markdown>
- :material-docker:{ .lg .middle } **Docker 24+ & Compose v2**
---
The only hard requirement. All 30+ services run as containers.
- :material-lock:{ .lg .middle } **OpenSSL**
---
Used by the config wizard to auto-generate 21 secrets (JWT, encryption keys, passwords).
- :material-memory:{ .lg .middle } **2 GB RAM / 10 GB Disk**
---
Minimum for core services. 4 GB recommended if enabling media, chat, or monitoring.
</div>
!!! tip "MailHog captures all emails locally"
In dev mode, every outbound email is caught by MailHog at `http://localhost:8025` — no SMTP provider needed.
### :material-server:{ .lg } Production Deployment
For a deployment that serves real users, you'll also need:
<div class="grid cards" markdown>
- :material-web:{ .lg .middle } **A Domain Name**
---
Changemaker Lite uses **subdomain routing**`app.`, `api.`, `docs.`, `git.`, and 10+ more subdomains are created automatically. Wildcard DNS (`*.yourdomain.org`) is the simplest approach.
Budget ~$1015/year from any registrar.
- :material-tunnel:{ .lg .middle } **A Reverse Tunnel or Public IP**
---
Your server needs to be reachable from the internet. Built-in support for **[Pangolin](https://github.com/fosrl/pangolin)** — a self-hosted tunnel with SSL, subdomain routing, and access control. The admin dashboard includes a one-click setup wizard.
*Alternatives: Cloudflare Tunnel, a VPS with public IP, or any reverse proxy with SSL.*
- :material-email-fast:{ .lg .middle } **SMTP Email Provider**
---
Campaign messages, password resets, volunteer invitations, and newsletters all need real email delivery.
Recommended: **[Proton Mail](https://proton.me/mail)** (privacy-focused), **[Mailgun](https://www.mailgun.com)** (100/day free), **[Amazon SES](https://aws.amazon.com/ses/)** (cheapest at scale), or **[Brevo](https://www.brevo.com)** (300/day free).
- :material-linux:{ .lg .middle } **A Linux Server**
---
Any Linux with Docker. Ubuntu 22.04+ LTS recommended. A VPS from [DigitalOcean](https://www.digitalocean.com), [Hetzner](https://www.hetzner.com), or [Linode](https://www.linode.com) works great — or a spare machine on your network if using a tunnel.
</div>
??? info "Optional services that enhance your deployment"
These aren't required but unlock additional features:
| Service | Purpose | Free Tier |
|---------|---------|-----------|
| **[Stripe](https://stripe.com)** | Donations, merchandise, membership plans | Free account, pay-as-you-go |
| **[Mapbox](https://www.mapbox.com/pricing)** or **[Google Maps](https://developers.google.com/maps)** | Better geocoding accuracy for mapping | 100K req/mo (Mapbox) or $200/mo credit (Google) |
| **[MaxMind GeoLite2](https://www.maxmind.com/en/geolite2/signup)** | Geographic analytics (visitor locations) | Free account |
| **[Android phone + Termux](https://termux.dev)** | SMS campaigns via physical phone gateway | Free — no third-party SMS costs |
| **Public IP + UDP 10000** | Jitsi self-hosted video conferencing | Free (requires open firewall port) |
See [Prerequisites & External Services](prerequisites.md) for setup details on each.
---
## :material-lightning-bolt: Quick Install
### Pre-built Images (Recommended)
The fastest path — no source code, no compilation:
```bash
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash
```
This downloads a lightweight release package (~2 MB), runs the configuration wizard, and pulls pre-built Docker images. First startup takes ~2 minutes. See [Installation](installation.md#pre-built-image-installation) for details.
This downloads a lightweight release package (~2 MB), runs the **14-step configuration wizard**, and pulls pre-built Docker images. First startup takes ~2 minutes.
## Quick Start (From Source)
### From Source (Development)
For development or customization, clone the full repository:
For development or customization:
```bash
git clone https://gitea.bnkops.com/admin/changemaker.lite
@@ -52,12 +136,12 @@ bash config.sh
docker compose up -d
```
Open **http://localhost:3000** and sign in with the admin email and password you configured. The API container automatically runs database migrations and seeding on first startup — no manual steps needed.
Open **http://localhost:3000** and sign in with the admin credentials you configured. The API container automatically runs database migrations and seeding on first startup.
!!! warning "Change your password"
If you used the wizard's generated password, change it immediately from the admin dashboard.
For the full setup walkthrough, see [Installation](installation.md).
---
## Configuration Wizard
@@ -82,7 +166,25 @@ The `config.sh` wizard produces a fully populated `.env` file in **14 steps**:
See [Installation](installation.md) for detailed documentation of each step.
## Services
---
## Pre-Installation Checklist
Use this to make sure you're ready before running the installer:
- [ ] **Docker 24+** and **Docker Compose v2** installed
- [ ] **OpenSSL** installed (for secret generation)
- [ ] **Domain name** registered and DNS accessible
- [ ] **DNS configured** — wildcard `*.yourdomain.org` or individual subdomains pointing to your tunnel/server
- [ ] **Tunnel or public IP** — Pangolin credentials (API key + Org ID), or server with public IP + SSL
- [ ] **SMTP credentials** — host, port, username, password from your email provider
- [ ] *(Optional)* Stripe account for payments
- [ ] *(Optional)* Mapbox or Google Maps API key for geocoding
- [ ] *(Optional)* MaxMind account for geographic analytics
---
## Services at a Glance
Changemaker Lite includes **30+ Docker services** organized into 8 categories:
@@ -99,15 +201,58 @@ Changemaker Lite includes **30+ Docker services** organized into 8 categories:
See [Services Overview](services.md) for the complete catalog with ports, feature flags, and detailed descriptions.
---
## Next Steps
- [Prerequisites](prerequisites.md) — external services checklist (domain, SMTP, tunnel)
- [Installation](installation.md) — detailed setup walkthrough and manual configuration
- [Services Overview](services.md) — complete service catalog (30+ containers)
- [Environment Variables](environment-variables.md) — complete `.env` reference
- [First Steps](first-steps.md) — create your first campaign and add locations
- [Updates & Upgrades](upgrades.md) — keep your installation current
- [Control Panel (CCP)](control-panel.md) — multi-instance management
- [Features at a Glance](features.md) — visual overview of every module
- [Admin Guide](../admin/index.md) — full administration reference
- [Deployment](../deployment/index.md) — production setup with SSL and tunneling
<div class="grid cards" markdown>
- :material-clipboard-check-outline:{ .lg .middle } **[Prerequisites](prerequisites.md)**
---
Full details on every external service — domain setup, SMTP providers, tunnel options, and optional integrations.
- :material-download:{ .lg .middle } **[Installation](installation.md)**
---
Detailed setup walkthrough, manual configuration, and the full config wizard reference.
- :material-view-grid:{ .lg .middle } **[Services Overview](services.md)**
---
Complete catalog of 30+ containers with ports, feature flags, and descriptions.
- :material-cog:{ .lg .middle } **[Environment Variables](environment-variables.md)**
---
Complete `.env` reference for every setting.
- :material-flag-checkered:{ .lg .middle } **[First Steps](first-steps.md)**
---
Create your first campaign, add locations to the map, and invite volunteers.
- :material-arrow-up-circle:{ .lg .middle } **[Updates & Upgrades](upgrades.md)**
---
Keep your installation current with zero-downtime upgrades.
- :material-monitor-dashboard:{ .lg .middle } **[Control Panel](control-panel.md)**
---
Manage multiple Changemaker Lite instances from a single dashboard.
- :material-star-shooting:{ .lg .middle } **[Features at a Glance](features.md)**
---
Visual overview of every module — advocacy, mapping, media, payments, and more.
</div>

View File

@@ -13,6 +13,9 @@ search:
# Installation
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Changemaker Lite runs as a set of Docker containers orchestrated by Docker Compose. The `config.sh` wizard handles all configuration — or you can set things up manually.
!!! info "Have your external services ready?"

View File

@@ -13,6 +13,9 @@ search:
# Prerequisites & External Services
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Before running the installer, gather the external services and accounts listed below. Having these ready makes the configuration wizard a smooth, uninterrupted process.
!!! tip "Don't have these yet?"
@@ -183,7 +186,7 @@ Setting up infrastructure — domains, tunnels, SMTP, servers — can be the har
!!! quote "Built by organizers, for organizers"
Bunker Operations exists so campaign teams can focus on **building power** — not wrestling with infrastructure. We provide the plumbing so you can focus on the mission.
**Get in touch:** [bnkops.com](https://bnkops.com) or email `hello@bnkops.com`
**Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
---

View File

@@ -11,6 +11,9 @@ tags:
# Services Overview
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Changemaker Lite runs as **30+ Docker containers** orchestrated by Docker Compose. This page catalogs every service, organized by category.
!!! tip "Quick reference"

View File

@@ -10,6 +10,9 @@ tags:
# Updates & Upgrades
!!! tip "Need help getting set up?"
**Bunker Operations** provides managed infrastructure and hands-on setup assistance for organizations running Changemaker Lite. We handle domains, tunnels, SMTP, and servers so you can focus on your campaign. **Get in touch:** [bnkops.com](https://bnkops.com) | `admin@bnkops.ca`
Changemaker Lite includes a built-in upgrade system that pulls code updates, rebuilds containers, runs database migrations, and restarts services — all while preserving your customizations.
There are two ways to upgrade: