Self-Hosting DELEGATOR
This documentation page was initially generated by AI to bootstrap the documentation structure. Content may be incomplete or contain inaccuracies. We welcome contributions to improve it.
DELEGATOR is designed to be self-hosted, giving you full control over participant data and your registration infrastructure. This guide walks you through deploying DELEGATOR for your organization.
Prerequisites
Before you begin, ensure you have:
- Server/VPS with at least 2GB RAM and 2 CPU cores
- Docker and Docker Compose installed
- Domain name pointed to your server
- SMTP Server for sending emails (registration confirmations, etc.)
- Basic familiarity with command line and Docker
Quick Start with Docker
1. Clone the Repository
git clone https://github.com/DeutscheModelUnitedNations/munify-delegator.git
cd munify-delegator
2. Configure Environment
Copy the example environment file and configure it:
cp .env.example .env
Edit .env with your settings:
# Database
DATABASE_URL=postgresql://delegator:your-secure-password@db:5432/delegator
# Email Configuration
SMTP_HOST=smtp.your-provider.com
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-password
SMTP_FROM=registration@your-conference.com
# Application
PUBLIC_BASE_URL=https://registration.your-domain.com
3. Start the Services
docker compose up -d
4. Initialize the Database
docker compose exec app bun run db:push
Architecture Overview
DELEGATOR consists of:
| Component | Description |
|---|---|
| Frontend | Web application for participants and administrators |
| Backend | API handling registration logic and workflows |
| Database | PostgreSQL for persistent storage |
| SMTP integration for notifications |
Email Configuration
DELEGATOR sends emails for:
- Registration confirmations
- Application status updates
- Payment reminders
- General communications
Recommended Email Providers
- Your organization's SMTP - If available
- Mailgun - Transactional email service
- SendGrid - Email delivery service
- Amazon SES - Cost-effective for high volume
Integration with CHASE
If you're also running CHASE for session management, both applications can share:
- The same OIDC authentication provider
- Participant data (with proper configuration)
This creates a unified experience for your conference staff and participants.
Production Considerations
Reverse Proxy
We recommend running DELEGATOR behind a reverse proxy like nginx or Traefik for:
- SSL/TLS termination (required for handling personal data)
- Load balancing
- Request buffering
Data Protection
Since DELEGATOR handles personal participant data:
- Ensure your deployment complies with GDPR or relevant data protection laws
- Set up proper access controls
- Implement regular backups
- Consider data retention policies
Backups
Set up regular PostgreSQL backups:
# Example daily backup script
docker compose exec db pg_dump -U delegator delegator > backup-$(date +%Y%m%d).sql
Monitoring
Consider setting up monitoring for:
- Application health endpoints
- Email delivery success rates
- Database performance
- Server resources
Conference Setup
After deployment, you'll need to:
- Create an admin account through the initial setup
- Configure your conference settings (dates, committees, etc.)
- Set up registration phases (early bird, regular, late)
- Configure email templates for your branding
- Set up the review workflow for your team
Getting Help
- Check the GitHub Issues for known issues
- Review the Admin Guide for configuration help
- Contact the maintainers for production deployment questions
DELEGATOR is actively used for MUN-SH and MUNBW conferences, handling hundreds of registrations. The team can share insights from real-world deployments.
Next Steps
- Developer Setup - For contributing to DELEGATOR
- Admin Guide - Configure your conference
- User Manual - Learn how DELEGATOR works