Add guide for integrating new Matrix bridges
This commit is contained in:
parent
4bab6088f2
commit
0166791df4
133
ADDING_BRIDGES.md
Normal file
133
ADDING_BRIDGES.md
Normal file
@ -0,0 +1,133 @@
|
||||
# Adding New Bridges Guide
|
||||
|
||||
This guide explains how to integrate additional Matrix bridges into your Dendrite setup. It covers the general process and provides a template for maintaining consistency with the existing bridge configurations.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before adding a new bridge, ensure you have:
|
||||
- A working Dendrite setup using this repository's structure.
|
||||
- Basic understanding of Docker and Docker Compose.
|
||||
- Familiarity with Matrix bridges and their configuration.
|
||||
|
||||
## General Steps
|
||||
|
||||
1. **Choose a Bridge**
|
||||
- Verify the bridge is compatible with Dendrite.
|
||||
- Check if it has a Docker image available.
|
||||
- Review its documentation for specific requirements.
|
||||
|
||||
2. **Add Database Support**
|
||||
- Access the PostgreSQL container:
|
||||
```bash
|
||||
docker compose exec postgres psql -U dendrite
|
||||
```
|
||||
- Create a new database and grant permissions:
|
||||
```sql
|
||||
CREATE DATABASE your_bridge_name;
|
||||
GRANT ALL PRIVILEGES ON DATABASE your_bridge_name TO dendrite;
|
||||
```
|
||||
- Verify the database was created:
|
||||
```sql
|
||||
\l
|
||||
```
|
||||
- Exit the PostgreSQL prompt:
|
||||
```sql
|
||||
\q
|
||||
```
|
||||
|
||||
3. **Update Docker Compose**
|
||||
- Add a new service in `docker-compose.yml`:
|
||||
```yaml
|
||||
your-bridge-name:
|
||||
hostname: your-bridge-name
|
||||
image: repository/bridge-image:tag
|
||||
restart: no
|
||||
volumes:
|
||||
- ./config/mautrix-your-bridge:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "test -f /data/config.yaml -a -f /data/registration.yaml"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 1
|
||||
start_period: 5s
|
||||
```
|
||||
|
||||
4. **Create Bridge Configuration Directory**
|
||||
```bash
|
||||
mkdir -p config/mautrix-your-bridge
|
||||
```
|
||||
|
||||
5. **Configure the Bridge**
|
||||
- Follow the bridge's official documentation for setup and configuration.
|
||||
- Common configuration points:
|
||||
- Database connection string.
|
||||
- Homeserver settings (using internal Docker network).
|
||||
- Bridge-specific authentication or API settings.
|
||||
- Permissions and access controls.
|
||||
- Make sure to generate any required registration files.
|
||||
- Update Dendrite's configuration to include the new bridge's registration file.
|
||||
|
||||
## Integration Checklist
|
||||
|
||||
Use this checklist to ensure proper integration:
|
||||
|
||||
- [ ] Database created manually in PostgreSQL.
|
||||
- [ ] Service added to `docker-compose.yml`.
|
||||
- [ ] Configuration directory created.
|
||||
- [ ] Tested with existing setup.
|
||||
- [ ] Verified all dependencies.
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Configuration Consistency**
|
||||
- Follow the existing pattern for database names.
|
||||
- Use similar Docker Compose service definitions.
|
||||
- Maintain consistent volume mount paths.
|
||||
|
||||
2. **Testing**
|
||||
- Test the bridge in isolation first.
|
||||
- Verify interaction with existing bridges.
|
||||
- Check for potential port conflicts.
|
||||
- Validate database connectivity.
|
||||
|
||||
3. **Security Considerations**
|
||||
- Review bridge-specific security requirements.
|
||||
- Follow least-privilege principle for configurations.
|
||||
- Document any security-related settings.
|
||||
|
||||
## Common Issues
|
||||
|
||||
1. **Database Connection**
|
||||
- Verify database name matches in all configurations.
|
||||
- Check database user permissions.
|
||||
- Ensure proper connection string format.
|
||||
|
||||
2. **Docker Networking**
|
||||
- Confirm service name resolution works.
|
||||
- Check for port conflicts.
|
||||
- Verify network dependencies.
|
||||
|
||||
3. **Configuration Files**
|
||||
- Ensure proper file permissions.
|
||||
- Validate YAML syntax.
|
||||
- Check for required configuration options.
|
||||
|
||||
## Contributing
|
||||
|
||||
If you successfully integrate a new bridge, consider:
|
||||
1. Documenting any special considerations.
|
||||
2. Sharing your configuration templates.
|
||||
3. Updating this guide with new insights.
|
||||
4. Creating a pull request with your additions.
|
||||
|
||||
## Next Steps
|
||||
|
||||
After adding a new bridge:
|
||||
1. Test thoroughly with existing bridges.
|
||||
2. Update your backup procedures.
|
||||
3. Document any maintenance requirements.
|
||||
4. Share your experience with the community.
|
@ -91,6 +91,9 @@ The script will:
|
||||
|
||||
You can run this script multiple times to create additional users as needed.
|
||||
|
||||
For information about adding additional bridges to your setup:
|
||||
- [Adding New Bridges](./ADDING_BRIDGES.md)
|
||||
|
||||
## Bridge Setup
|
||||
|
||||
Each bridge starts in a stopped state and will only run once properly configured. You can configure the bridges in any order:
|
||||
|
Loading…
x
Reference in New Issue
Block a user