Plataforma de foros y chat con Discourse y Matrix: despliega una comunidad moderna en tu VPS
¿Te gustaría crear tu propia red social combinando foros avanzados y chat instantáneo en tu servidor privado? Hoy vamos a desplegar Discourse (un sistema de foros moderno y robusto) junto a Matrix Synapse y Element (un ecosistema de chat seguro y federado). Todo ello orquestado cómodamente con Docker Compose.
Así conseguirás que los miembros de tu comunidad debatan de forma ordenada en los foros, mientras tienen la libertad de conversar en tiempo real a través de Matrix, integrando además sistemas de autenticación y una infraestructura escalable.
¿Por qué elegir Discourse y Matrix?
- Discourse: foro avanzado, notificaciones, soporte multimedia, categorización, gamificación, APIs. Ampliamente usado por proyectos de código abierto y empresas.
- Matrix Synapse: protocolo de mensajería federada, mensajería instantánea y grupos, cifrado, integración con bots y otros servicios. Permite chat privado, grupal y hasta llamadas.
- Element: cliente web para Matrix, muy moderno y personalizable.
Juntos, te proporcionan una plataforma social integral que puedes controlar y personalizar a tu gusto.
El docker-compose.yml definitivo
Este fichero define los contenedores de Discourse, Matrix Synapse y Element, además de una base de datos PostgreSQL. Incluye redes internas para mayor seguridad, volúmenes persistentes y algunos consejos para poder ampliarlo en producción.
¡Asegúrate de personalizar los valores de usuario, email y contraseñas!
version: "3.8"
services:
postgres:
image: postgres:15
restart: unless-stopped
environment:
POSTGRES_DB: discourse
POSTGRES_USER: discourse
POSTGRES_PASSWORD: cambia_esto
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- discourse_net
redis:
image: redis:7
restart: unless-stopped
networks:
- discourse_net
discourse:
image: discourse/discourse:latest
restart: unless-stopped
environment:
DISCOURSE_DB_HOST: postgres
DISCOURSE_DB_USERNAME: discourse
DISCOURSE_DB_PASSWORD: cambia_esto
DISCOURSE_REDIS_HOST: redis
DISCOURSE_HOSTNAME: foro.tudominio.com
DISCOURSE_SMTP_ADDRESS: smtp.tuemail.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: [email protected]
DISCOURSE_SMTP_PASSWORD: password_email
LANG: es_ES.UTF-8
depends_on:
- postgres
- redis
ports:
- "8080:80"
volumes:
- discourse_data:/bitnami/discourse
networks:
- discourse_net
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
environment:
SYNAPSE_SERVER_NAME: chat.tudominio.com
SYNAPSE_REPORT_STATS: "yes"
SYNAPSE_CONFIG_PATH: /data/homeserver.yaml
POSTGRES_DB: synapse
POSTGRES_USER: synapse
POSTGRES_PASSWORD: supersegura
SYNAPSE_DB_PASSWORD: supersegura
volumes:
- synapse_data:/data
ports:
- "8008:8008"
networks:
- matrix_net
element:
image: vectorim/element-web:latest
restart: unless-stopped
environment:
- PUBLIC_URL=https://chat.tudominio.com
ports:
- "8081:80"
depends_on:
- synapse
networks:
- matrix_net
networks:
discourse_net:
matrix_net:
volumes:
postgres_data:
discourse_data:
synapse_data:
Cómo desplegar la plataforma
- Crea un directorio, copia ahí el
docker-compose.yml
ycd
dentro. - Modifica los valores de variables como usuarios, contraseñas y dominios.
- Arranca todo con:
docker compose up -d
- Accede por el puerto 8080 (Discourse) y 8081 (Element), y configura los servicios desde el asistente Web.
Tendrás un foro moderno y un sistema de mensajería federado, ideales para crear comunidades tech, educativas, gaming ¡o lo que se te ocurra!
Consejos extra y troubleshooting
- HTTPS: Usa Traefik o Nginx Proxy Manager para añadir certificados SSL y redirections seguras; nunca expongas servicios críticos sin HTTPS.
- Persistencia: Si cambias la configuración y los volúmenes, haz copias de seguridad periódicamente de las carpetas
_data
. - Recursos: Tanto Discourse como Matrix requieren mínimo 2 GB de RAM cada uno para funcionar fluidos en pequeños grupos.
- Email SMTP: Sin emails correctos, Discourse no permitirá registros ni notificaciones.
- Federación: Abre el puerto 8448 si quieres recibir mensajes federados de otros servidores Matrix/Jabber.
- Logs: Si surge algún error, revisa los logs del contenedor con
docker compose logs discourse
odocker compose logs synapse
.
¡Anímate a montar tu propia comunidad con foros y chat! Si tienes dudas, déjalas en los comentarios.