A modern Next.js application for managing community members across Signal, Matrix, and other platforms - built for scale and ease of use.
See forum post about this project for more information.
This repository contains the modern-stack version of the community dashboard, built with:
- Next.js 15 with App Router and Turbopack
- TypeScript for type safety
- Prisma ORM for database management
- tRPC for type-safe APIs
- NextAuth for authentication
- Tailwind CSS and shadcn/ui for modern UI
Looking for the legacy Streamlit version? Check out the
legacy-streamlit
branch.
Are you a community organizer struggling with:
- Managing member accounts across different platforms?
- Onboarding new members efficiently?
- Keeping track of who has access to what?
- Bridging conversations between Signal, Matrix, and other chat platforms?
This dashboard solves these problems by giving you a simple web interface to:
- β Create and manage user accounts in one place
- β Send automated welcome messages and invitations
- β Bridge chats between Signal, Matrix, and other platforms
- β Track member activity and permissions
- β Handle password resets and account issues quickly
- Start with Signal (since most people already have it) and expand to other platforms
- Self-host their community tools instead of relying on big tech
- Give members choice in how they participate (Signal, Matrix, email, etc.)
- Scale efficiently without drowning in administrative tasks
- Web dashboard - No command line needed, just point and click
- Member management - Create accounts, reset passwords, manage permissions
- Cross-platform bridging - Connect Signal groups with Matrix rooms
- Automated onboarding - Send welcome messages and invites automatically
- Moderation tools - Manage moderators and handle conflicts efficiently
- Python/Streamlit - Easy to understand and modify
- Docker setup - Get running in minutes
- Clear codebase - Well-organized with tests
- API integrations - Authentik, Matrix, Signal bots
- Database management - PostgreSQL with migrations
- Node.js 18+
- PostgreSQL (or use Docker)
- Git
# Clone the repository
git clone https://github.com/irregularchat/chat-based-community-dashboard.git
cd chat-based-community-dashboard/modern-stack
# Install dependencies
npm install
# Set up PostgreSQL with Docker
docker-compose up -d
# Copy environment variables
cp .env.example .env
# Run database migrations
npx prisma migrate dev
# Seed the database with test data
npx prisma db seed
# Start the development server
npm run dev
Open http://localhost:3000 in your browser!
Default credentials:
- Username:
admin
- Password:
shareme314
# Clone the repository
git clone https://github.com/irregularchat/chat-based-community-dashboard.git
cd chat-based-community-dashboard
# Setup environment
cp .env-template .env
nano .env # Add your API tokens (see setup guide below)
# Run with Docker
docker-compose up -d --build
Open http://localhost:8501 in your browser!
Authentik API Token (Required for user management):
- Go to your Authentik admin panel:
https://your-sso-domain.com/if/admin/
- Navigate to System β Tokens
- Create a new token with appropriate permissions
- Copy the token to your
.env
file
Matrix Integration (Optional, for bridging):
- Add your Matrix homeserver URL and access token to
.env
- See our Matrix Setup Guide for details
Edit your .env
file:
# Required: Authentik integration
AUTHENTIK_API_TOKEN=your_api_token_here
AUTHENTIK_BASE_URL=https://your-sso-domain.com
# Optional: Matrix integration
MATRIX_HOMESERVER=https://matrix.your-domain.com
MATRIX_ACCESS_TOKEN=your_matrix_token
# Database (auto-configured for Docker)
DATABASE_URL=postgresql://user:pass@db:5432/dashboard
- Access the dashboard at http://localhost:8501
- Create user accounts - Fill in member details, system generates secure passwords
- Send invitations - Automated emails with login instructions
- Manage permissions - Add/remove moderators, manage group access
- Bridge platforms - Connect your Signal groups with Matrix rooms
- Main app:
app/main.py
- Streamlit interface - Database models:
app/db/
- SQLAlchemy models - API integrations:
app/utils/
- Authentik, Matrix APIs - Tests:
tests/
- Pytest test suite - UI components:
app/ui/
- Reusable Streamlit components
See our detailed roadmap for the full picture. Key highlights:
π₯ Coming Soon (Next 2-4 weeks)
- Enhanced user list with bulk actions
- Direct email messaging to users
- Admin audit logging
π This Quarter
- Signal bot integration for automated announcements
- Conflict resolution room creation
- Advanced Matrix room management
π Future Vision
- Support for more identity providers (Keycloak, etc.)
- Mobile-friendly interface
- Advanced analytics and reporting
New to open source? Perfect! This project is designed to be beginner-friendly.
- Report bugs or suggest features in Issues
- Improve documentation (fix typos, clarify instructions)
- Test the setup process and report any problems
- Pick up a "good first issue" from our issue tracker
- Add tests for existing features
- Improve error messages and user experience
- Implement features from our roadmap
- Add new integrations (Discord, Slack, etc.)
- Improve the UI/UX design
See our Contributing Guide for detailed instructions.
Built with:
- Frontend: Streamlit (Python web framework)
- Backend: SQLAlchemy + PostgreSQL/SQLite
- Integrations: Authentik API, Matrix API, Email (SMTP)
- Deployment: Docker + Docker Compose
System Requirements:
- Python 3.8+
- Docker (recommended) or PostgreSQL
- 512MB RAM minimum, 1GB recommended
- Community Forum: forum.irregularchat.com
- GitHub Issues: For bugs and feature requests
- Documentation: Check the
docs/
folder for detailed guides
This project is open source. See LICENSE for details.
Ready to transform your community management? Get started in 5 minutes or join our community to learn more!