A self-hosted, privacy-focused Matrix homeserver stack.
This project provides a Matrix communication stack comprising:
- Conduit: A lightweight, high-performance Matrix homeserver written in Rust.
- Element: A feature-rich Matrix web client.
- Infrastructure: Orchestrated via
docker-composewith Nginx as a reverse proxy, providing basic security and onion service support.
To run the entire stack:
# Clone the repository
git clone <your-repository-url>
cd scapp
# Start the services
docker-compose up -dThe stack uses Docker volumes to ensure data persists across container restarts:
./conduit_db: Database storage for Conduit../config: Configuration files for Conduit.
Ensure these directories exist and are writable by the container user.
- The server automatically generates a
.onionaddress upon first startup if configured intorrc. - Logs can be viewed via
docker-compose logs -f. - To update, pull the latest image and restart:
docker-compose pull && docker-compose up -d --build. - SSL Certificates: To initialize Let's Encrypt SSL certificates (once you have a domain), run:
Then, add the corresponding SSL configuration to your
docker-compose run --rm certbot certonly --webroot --webroot-path=/var/www/certbot -d yourdomain.com
nginx.confand restart Nginx. - Supabase Media Storage: To enable media (images/avatars) storage via Supabase, set the following Environment Variables on Render:
S3_BUCKET: Your Supabase bucket name.S3_ENDPOINT: Your Supabase S3 endpoint URL.S3_ACCESS_KEY: Your Supabase access key.S3_SECRET_KEY: Your Supabase secret key.
For manual development or specific configurations, refer to the individual service directories.