Plataforma de foros y chat con Discourse y Matrix: despliega una comunidad moderna en tu VPS

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

  1. Crea un directorio, copia ahí el docker-compose.yml y cd dentro.
  2. Modifica los valores de variables como usuarios, contraseñas y dominios.
  3. Arranca todo con: docker compose up -d
  4. 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 o docker compose logs synapse.

¡Anímate a montar tu propia comunidad con foros y chat! Si tienes dudas, déjalas en los comentarios.

Avatar

Por Mid