Skip to main content
[ PIER ]

Matrix Synapse (SQLite)

Un homeserver Matrix de un solo contenedor — para uso personal y pruebas.

Service #chat#messaging#matrix#federation#communication

Matrix Synapse con el backend SQLite por defecto en un contenedor. Setup ligero y sin dependencias para homeservers personales, comunidades pequeñas de amigos/familia y pruebas de protocolo. Para federación en producción o salas concurridas, usa la plantilla matrix-synapse-postgresql en su lugar.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Matrix Synapse (SQLite) en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Matrix Synapse (SQLite)?

El mismo Synapse — el homeserver Matrix de referencia — pero configurado con el backend SQLite por defecto en lugar de PostgreSQL. El resultado es un solo contenedor, fácil de desplegar, fácil de respaldar, perfecto para homeservers personales, comunidades pequeñas o trabajo de desarrollo.

Aún obtienes el protocolo Matrix completo — federación con cada otro homeserver en la red, cifrado de extremo a extremo, voz y video, puentes a Telegram/Discord/WhatsApp/Signal — solo a escala más pequeña.

Cómo lo despliega Pier

Esta plantilla corre la imagen oficial matrixdotorg/synapse con el store SQLite por defecto. Puerto por defecto — 8008 (HTTP, detrás de Traefik con TLS cuando adjuntas un dominio custom).

El volumen de datos monta en /data y contiene homeserver.db, homeserver.yaml y el media store. Los backups son triviales — una copia del volumen mientras el contenedor está en pausa.

Después del primer lanzamiento, corre register_new_matrix_user vía docker exec para crear el usuario admin, luego apunta los clientes Element a la URL del homeserver.

Cuándo NO usar esta plantilla

En el momento en que tengas más que un puñado de usuarios activos, o empieces a unirte a salas públicas concurridas con muchos participantes federados, SQLite se convierte en el cuello de botella. Migra a la plantilla matrix-synapse-postgresql — Synapse envía un script synapse_port_db que hace la conversión en una pasada.

Para homeservers ligeros experimentales, Dendrite (Go) y Conduit (Rust) ofrecen alternativas. Self-host SQLite Synapse alcanza el sweet spot para homeservers de un solo usuario y grupos pequeños.

Características clave

Contenedor único

Synapse + SQLite en una imagen. Sin base de datos separada para aprovisionar, respaldar o coordinar reinicios. El self-host más fácil posible.

Protocolo Matrix completo

Federación, E2EE, puentes, llamadas voz/video, versiones de sala — todas las features spec que Synapse soporta funcionan igual que en builds Postgres.

Los clientes Element funcionan en todas partes

Apunta Element Web / iOS / Android / escritorio a tu URL de homeserver — chat E2EE completo, voz, video, compartir archivos.

Puentes a otras plataformas

Puentes Telegram, Discord, WhatsApp, Signal, IRC, Slack, XMPP corren como servicios separados que hablan con Synapse vía el appservice API.

Huella de recursos diminuta

~200 MB RAM idle, sub-1 GB bajo uso personal típico. Corre cómodamente en un VPS de $5 para un homeserver compartido con unos amigos.

Casos de uso

Homeserver personal

Un homeserver para un usuario (tú) más unos amigos. Ligero, bajo mantenimiento, federado con el resto de Matrix.

Chat familiar / hogar

Corre un homeserver para tu familia para que niños y abuelos compartan una app Element en lugar de WhatsApp + iMessage + SMS.

Pruebas de protocolo y desarrollo

Levanta un homeserver desechable para probar bots Matrix, puentes, clientes o appservices sin pagar Matrix alojado.

Comunidad pequeña

Homeserver autohospedado para un servidor discord del que te mueves, un subreddit pequeño moviéndose a Matrix, o un grupo de interés privado.

Ejemplos de código

Registro del primer usuario (admin) bash
docker exec -it pier-synapse-sqlite \
  register_new_matrix_user \
    -u alice -p strongpassword -a \
    -c /data/homeserver.yaml \
    http://localhost:8008
Archivos de descubrimiento .well-known bash
# /.well-known/matrix/server (servido en el dominio apex)
{"m.server": "matrix.example.com:443"}
# /.well-known/matrix/client
{"m.homeserver": {"base_url": "https://matrix.example.com"}}
Chequeo de salud de federación bash
curl https://federationtester.matrix.org/api/report?server_name=matrix.example.com | jq '.FederationOK'
Puentear a Telegram yaml
services:
  mautrix-telegram:
    image: dock.mau.dev/mautrix/telegram:latest
    environment:
      HOMESERVER_URL: http://synapse:8008
    volumes:
      - ./tg:/data

Comparativa

vs matrix-synapse-postgresql (este catálogo) Usa la plantilla PostgreSQL para cualquier despliegue de producción con federación o salas grandes. SQLite está bien para uso personal/test pero no puede mantener el ritmo del tráfico de federación en salas concurridas.
vs Dendrite, Conduit Homeservers Matrix alternativos en Go y Rust. Huella de recursos más ligera que Synapse, pero menos completos en features y menos probados en batalla.
vs matrix.org hosted homeservers (EMS) Matrix alojado es rápido de empezar pero cedes soberanía de datos y pagas por usuario. Self-host es gratis excepto por la factura del VPS.

Preguntas frecuentes

¿Por qué elegiría SQLite sobre PostgreSQL?
Despliegue más simple (un contenedor), menor uso de recursos idle, sin base de datos separada para respaldar. El trade-off es rendimiento bajo carga de federación — bien para un servidor personal, no para un homeserver público concurrido.
¿Puedo migrar de SQLite a PostgreSQL más tarde?
Sí — Synapse envía un script synapse_port_db que migra la base de datos. Re-desplegarás como la plantilla postgresql y correrás la migración una vez.
¿Cuántos usuarios puede manejar un homeserver SQLite realísticamente?
Usuarios de un solo dígito usándolo activamente es cómodo. Una docena de usuarios de baja actividad aún funciona. Más allá, las uniones de federación en salas grandes empiezan a ahogar SQLite y deberías migrar.
¿Funcionan los puentes?
Sí — los puentes son appservices separados que hablan con Synapse vía HTTP, independientes del backend de base de datos.
¿Y la voz y el video?
Llamadas WebRTC 1 a 1 funcionan out of the box. Llamadas grupales necesitan Element Call o Jitsi como servicio separado.
¿Backups?
Respalda el volumen de datos (homeserver.db + media store). SQLite lo hace fácil — una copia del archivo .db con el servidor detenido es un backup consistente.

Servicios relacionados

Desplegar en tu VPS

Matrix Synapse con el backend SQLite por defecto en un contenedor. Setup ligero y sin dependencias para homeservers personales, comunidades pequeñas de amigos/familia y pruebas de protocolo. Para federación en producción o salas concurridas, usa la plantilla matrix-synapse-postgresql en su lugar.

Desplegar este servicio →