244 lines
5.6 KiB
Markdown

# Quick Start Guide
Get Changemaker Lite V2 running in 5 minutes with this streamlined guide.
!!! warning "For Evaluation Only"
This quick start uses default credentials and minimal configuration. **Do not use in production** without following the [Full Installation Guide](installation.md) and changing all default passwords.
## Step 1: Clone the Repository
```bash
git clone <repo-url> changemaker.lite
cd changemaker.lite
git checkout v2
```
!!! tip
If you're evaluating locally, you can skip the domain configuration and use `localhost` URLs.
## Step 2: Create Environment File
```bash
cp .env.example .env
```
Edit `.env` and set the minimum required variables:
```bash
# Database
V2_POSTGRES_PASSWORD=your_secure_password_here
# Redis
REDIS_PASSWORD=another_secure_password
# JWT Secrets (generate with: openssl rand -hex 32)
JWT_ACCESS_SECRET=<your-access-secret>
JWT_REFRESH_SECRET=<your-refresh-secret>
# Encryption Key (must differ from JWT secrets)
ENCRYPTION_KEY=<your-encryption-key>
# Email (use test mode for evaluation)
EMAIL_TEST_MODE=true
```
!!! tip "Generate Secure Secrets"
```bash
echo "JWT_ACCESS_SECRET=$(openssl rand -hex 32)"
echo "JWT_REFRESH_SECRET=$(openssl rand -hex 32)"
echo "ENCRYPTION_KEY=$(openssl rand -hex 32)"
```
## Step 3: Start Core Services
```bash
# Start database and cache
docker compose up -d v2-postgres redis
# Wait for database to be ready (about 10 seconds)
sleep 10
# Start API and admin
docker compose up -d api admin nginx
```
## Step 4: Run Database Migrations
```bash
# Run Prisma migrations
docker compose exec api npx prisma migrate deploy
# Seed initial data (creates admin user)
docker compose exec api npx prisma db seed
```
This creates:
- **Admin user**: `admin@example.com` / `Admin123!`
- **Site settings**: Default configuration
- **Page blocks**: Landing page components
## Step 5: Access the Platform
Open your browser and navigate to:
- **Admin Interface**: [http://localhost:3000](http://localhost:3000)
- **API**: [http://localhost:4000](http://localhost:4000)
- **API Health Check**: [http://localhost:4000/health](http://localhost:4000/health)
Login with:
- **Email**: `admin@example.com`
- **Password**: `Admin123!`
!!! danger "Change Default Credentials"
Immediately change the default admin password:
1. Navigate to **Settings** in the sidebar
2. Click your profile
3. Change password to something secure (12+ chars, mixed case, numbers)
## Step 6: Verify Installation
Check that all services are running:
```bash
docker compose ps
```
You should see:
- `v2-postgres` - Database (port 5433)
- `redis-changemaker` - Cache (port 6379)
- `api` - Express API (port 4000)
- `admin` - React admin (port 3000)
- `nginx` - Reverse proxy (port 80)
Test the API:
```bash
curl http://localhost:4000/health
```
Expected response:
```json
{
"status": "healthy",
"timestamp": "2026-02-11T18:00:00.000Z"
}
```
## What's Next?
Now that you have Changemaker Lite running:
1. **[First Login](first-login.md)** - Tour the admin interface
2. **[Environment Configuration](environment.md)** - Customize your setup
3. **[Create Your First Campaign](../user-guides/campaign-manager-guide.md)** - Run an advocacy campaign
4. **[Import Locations](../user-guides/map-organizer-guide.md)** - Set up your map
## Optional: Start Additional Services
### Email Testing (MailHog)
Capture emails in development without sending real messages:
```bash
docker compose up -d mailhog
```
Access at: [http://localhost:8025](http://localhost:8025)
### Data Browser (NocoDB)
Read-only database browser:
```bash
docker compose up -d nocodb-v2
```
Access at: [http://localhost:8091](http://localhost:8091)
### Newsletter Platform (Listmonk)
Email marketing integration:
```bash
docker compose up -d listmonk-postgres listmonk listmonk-init
```
Access at: [http://localhost:9001](http://localhost:9001)
### Monitoring Stack
Prometheus + Grafana + Alertmanager:
```bash
docker compose --profile monitoring up -d
```
Access:
- **Grafana**: [http://localhost:3001](http://localhost:3001) (admin/admin)
- **Prometheus**: [http://localhost:9090](http://localhost:9090)
- **Alertmanager**: [http://localhost:9093](http://localhost:9093)
## Common Issues
### Port Already in Use
If you see errors like `port is already allocated`:
```bash
# Check what's using the port
sudo lsof -i :3000
# Stop the conflicting service or change ports in .env
```
### Database Connection Failed
```bash
# Check if PostgreSQL is running
docker compose ps v2-postgres
# View logs
docker compose logs v2-postgres
# Restart database
docker compose restart v2-postgres
```
### API Won't Start
```bash
# View API logs
docker compose logs api
# Common fix: rebuild the container
docker compose build api
docker compose up -d api
```
[See full troubleshooting guide →](../troubleshooting/index.md)
## Stopping Services
```bash
# Stop all services
docker compose down
# Stop and remove volumes (WARNING: deletes all data)
docker compose down -v
```
## Next Steps for Production
This quick start is for evaluation only. Before production deployment:
1. **[Full Installation Guide](installation.md)** - Production-ready setup
2. **[Security Checklist](../deployment/security.md)** - Harden your installation
3. **[Backup Strategy](../deployment/backup-restore.md)** - Protect your data
4. **[Tunneling Setup](../deployment/tunneling.md)** - Public access via Pangolin
5. **[Monitoring Configuration](../deployment/monitoring-stack.md)** - Production observability
---
**Congratulations!** You now have Changemaker Lite V2 running locally. Explore the admin interface and check out the [User Guides](../user-guides/index.md) to learn what you can do.