Despliegue de Lemmy en un VPS: su propio servidor de red social federada
TL;DR
En esta guía detallada, configuraremos paso a paso su propio servidor Lemmy en un servidor privado virtual (VPS) o un servidor dedicado. Aprenderá cómo preparar el sistema operativo Ubuntu 24.04 LTS, instalar Docker y Docker Compose, desplegar Lemmy utilizando PostgreSQL y configurar el servidor web Caddy para obtener certificados HTTPS automáticamente. Como resultado, obtendrá una red social federada Lemmy completamente funcional, independiente y escalable, lista para usar y administrar.
- Configuración de un entorno Ubuntu 24.04 LTS seguro y actualizado (año 2026).
- Despliegue de Lemmy con Docker Compose para simplificar la gestión de componentes.
- Configuración de PostgreSQL como base de datos para Lemmy.
- Uso de Caddy para la gestión automática de certificados HTTPS (Let's Encrypt).
- Instrucciones detalladas para la copia de seguridad y el mantenimiento de su instancia de Lemmy.
- Respuestas a preguntas frecuentes y consejos para la resolución de problemas.
Qué configuramos y por qué
En el panorama digital actual, donde las redes sociales centralizadas a menudo son criticadas por la censura, la recopilación de datos y los algoritmos opacos, las plataformas federadas ofrecen una alternativa atractiva. Lemmy es uno de esos proyectos: una plataforma libre y de código abierto para la agregación de enlaces y discusiones, similar a Reddit, pero construida sobre el protocolo ActivityPub. Esto significa que su servidor Lemmy (también llamado "instancia") puede interactuar con otras instancias de Lemmy, así como con servidores de otras redes federadas como Mastodon, Kbin y Pixelfed.
Al configurar su propia instancia de Lemmy en un VPS, obtiene control total sobre su red social. Usted define las reglas de moderación, elige con qué otras instancias de la federación interactuar y garantiza la privacidad de los datos de sus usuarios. Es una solución ideal para crear comunidades de nicho, foros privados para equipos o simplemente para aquellos que buscan un espacio de comunicación independiente, libre del dictado corporativo.
Al final, el lector obtendrá un servidor Lemmy completamente funcional, accesible a través de su propio nombre de dominio, con cifrado HTTPS automático, copias de seguridad configuradas y una comprensión de cómo mantener el sistema actualizado. Se convertirá en el administrador de su propia micro-red social, capaz de integrarse con el universo federado más amplio.
Existen alternativas, como el uso de servicios gestionados en la nube (aunque para Lemmy no hay tantos como para, por ejemplo, WordPress) u otras plataformas autoalojadas (Mastodon para microblogs, Kbin como un agregador de contenido más amplio). Sin embargo, la elección de una solución autoalojada en un VPS para Lemmy se debe a varias ventajas clave:
- Control total: Usted posee todos los datos, gestiona el software y la infraestructura sin intermediarios.
- Flexibilidad y personalización: Posibilidad de ajustar finamente todos los parámetros del servidor, instalar plugins y temas que pueden no estar disponibles en plataformas gestionadas.
- Privacidad: Ausencia de terceros que puedan recopilar o vender los datos de sus usuarios.
- Eficiencia económica: A menudo, con un cierto nivel de uso, un VPS propio resulta más económico que una suscripción a un servicio gestionado, especialmente a largo plazo.
- Aprendizaje y desarrollo de habilidades: El proceso de instalación y configuración proporciona una experiencia invaluable en el trabajo con tecnologías de servidor.
Estas ventajas hacen que el autoalojamiento en un VPS sea una opción atractiva para desplegar Lemmy, permitiéndole crear una comunidad en línea única e independiente.
Qué configuración de VPS se necesita para esta tarea
La elección de un VPS adecuado es crucial para el funcionamiento estable y eficiente de su instancia de Lemmy. Los requisitos de recursos pueden variar según el número esperado de usuarios, la actividad y el volumen de datos almacenados. A continuación se presentan las configuraciones mínimas y recomendadas para el año 2026.
Requisitos mínimos para una instancia pequeña (hasta 50 usuarios activos)
- CPU: 2 núcleos (de procesadores modernos, por ejemplo, Intel Xeon E3/E5 o AMD EPYC).
- RAM: 4 GB DDR4. Lemmy y PostgreSQL son bastante intensivos en recursos, y 4 GB es el mínimo absoluto para un funcionamiento estable.
- Disco: 50 GB SSD. Para el sistema operativo, imágenes de Docker, la base de datos y un pequeño volumen de cargas de usuario. Un SSD es obligatorio para un buen rendimiento de la base de datos.
- Red: Puerto de 1 Gbit/s con tráfico ilimitado o un margen suficiente (mínimo 1 TB/mes).
Plan de VPS recomendado para una instancia mediana (hasta 500 usuarios activos)
Para un funcionamiento más cómodo y la posibilidad de crecimiento, se recomienda la siguiente configuración:
- CPU: 4 núcleos (de procesadores modernos).
- RAM: 8 GB DDR4. Esto proporcionará un búfer suficiente para PostgreSQL y Lemmy, así como para el almacenamiento en caché.
- Disco: 100-200 GB NVMe SSD. NVMe acelerará significativamente las operaciones de disco, lo cual es crítico para el rendimiento de la base de datos y la carga de archivos multimedia.
- Red: Puerto de 1 Gbit/s con tráfico ilimitado.
Al elegir un proveedor, puede considerar un VPS con las características indicadas para asegurar una base sólida para su servidor Lemmy.
Cuándo se necesita un servidor dedicado (Dedicated Server)
Si planea ejecutar una instancia grande de Lemmy con miles de usuarios activos, un gran volumen de archivos multimedia, o si desea alojar varios servicios que consumen muchos recursos en una sola máquina, debería considerar un servidor dedicado. Los servidores dedicados ofrecen recursos garantizados, un mayor rendimiento de E/S de disco y, a menudo, configuraciones de red más flexibles. Esto también es relevante para aquellos que requieren hardware específico (por ejemplo, GPU para ciertas tareas) o el máximo nivel de aislamiento.
Para instancias de Lemmy muy grandes que pueden atender a miles de usuarios, se puede considerar un servidor dedicado adecuado. En un servidor así, podrá asignar más núcleos de CPU, aumentar significativamente la cantidad de RAM (por ejemplo, 32 GB o más), usar arreglos RAID para los discos para mejorar la fiabilidad y la velocidad, y obtener control total sobre la tarjeta de red.
Ubicación: qué factores influye
La elección de la ubicación geográfica de su VPS también es importante:
- Latencia: Ubique el servidor lo más cerca posible de su audiencia principal para minimizar los retrasos al acceder al sitio.
- Legislación: Tenga en cuenta las leyes de privacidad de datos (GDPR, CCPA, etc.) y la libertad de expresión en el país donde se encuentra el servidor. Esto puede ser crítico para la moderación de contenido y el procesamiento de datos de usuario.
- Costo: Los precios de los VPS pueden variar significativamente en diferentes regiones.
- Conectividad de red: Algunas ubicaciones tienen mejor conectividad con ciertas regiones del mundo.
Para la mayoría de los proyectos, la elección óptima será un VPS en un centro de datos ubicado en Europa Occidental o América del Norte, lo que proporciona un buen equilibrio entre legislación, conectividad y costo.
Preparación del servidor
Preparación del servidor
Antes de instalar Lemmy, es necesario realizar una configuración básica del sistema operativo. Utilizaremos Ubuntu Server 24.04 LTS, ya que es una plataforma estable, ampliamente utilizada y con soporte a largo plazo.
1. Conexión SSH y actualización inicial
Conéctese a su VPS como usuario root, utilizando la dirección IP proporcionada por su proveedor. Si usa Windows, puede utilizar PuTTY o el cliente SSH integrado de PowerShell/CMD. Para Linux/macOS:
ssh root@SU_DIRECCIÓN_IP
Después de iniciar sesión correctamente, actualice la lista de paquetes e instale todas las actualizaciones disponibles. Esto garantizará que el sistema esté actualizado y seguro.
sudo apt update # Actualizar la lista de paquetes
sudo apt upgrade -y # Instalar actualizaciones disponibles sin confirmación
sudo apt autoremove -y # Eliminar dependencias innecesarias
2. Creación de un nuevo usuario con permisos sudo
Trabajar como usuario root no es seguro. Crearemos un nuevo usuario y le otorgaremos permisos sudo.
adduser lemmyadmin # Crear un nuevo usuario llamado lemmyadmin
usermod -aG sudo lemmyadmin # Añadir el usuario lemmyadmin al grupo sudo
Establezca una contraseña segura para el nuevo usuario cuando el sistema lo solicite. Luego, salga de la sesión root e inicie sesión como el nuevo usuario:
exit # Salir de la sesión root
ssh lemmyadmin@SU_DIRECCIÓN_IP # Iniciar sesión como el nuevo usuario
3. Configuración de claves SSH (recomendado)
Para mejorar la seguridad, se recomienda utilizar claves SSH en lugar de contraseñas. Si aún no tiene un par de claves, genérelas en su computadora local:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Luego, copie la clave pública al servidor:
ssh-copy-id lemmyadmin@SU_DIRECCIÓN_IP
Después de esto, desactive la autenticación por contraseña en el archivo /etc/ssh/sshd_config en el servidor. Ábralo para editar:
sudo nano /etc/ssh/sshd_config
Busque las líneas:
#PasswordAuthentication yes
Y cámbielas a:
PasswordAuthentication no
PermitRootLogin no
Reinicie el servicio SSH:
sudo systemctl restart sshd
Intente conectarse de nuevo por SSH usando la clave. Si todo funciona, habrá mejorado la seguridad con éxito.
4. Configuración del firewall (UFW)
El firewall UFW (Uncomplicated Firewall) está instalado por defecto en Ubuntu. Lo configuraremos para permitir solo los puertos necesarios:
sudo ufw allow OpenSSH # Permitir SSH (puerto 22)
sudo ufw allow http # Permitir HTTP (puerto 80)
sudo ufw allow https # Permitir HTTPS (puerto 443)
sudo ufw enable # Habilitar UFW
sudo ufw status verbose # Verificar el estado de UFW
Cuando se le solicite confirmación, escriba y. UFW ahora está activo y protege su servidor.
5. Instalación de Fail2ban
Fail2ban protege el servidor contra ataques de fuerza bruta, bloqueando las direcciones IP desde las cuales se producen múltiples intentos fallidos de inicio de sesión. Lo instalaremos:
sudo apt install fail2ban -y # Instalar Fail2ban
sudo systemctl enable fail2ban # Habilitar el inicio automático de Fail2ban
sudo systemctl start fail2ban # Iniciar Fail2ban
Fail2ban está configurado por defecto para proteger SSH. Puede crear un archivo /etc/fail2ban/jail.local para personalizar las reglas, pero para la mayoría de los usuarios, la configuración predeterminada es suficiente.
6. Configuración de la zona horaria y sincronización de la hora
Asegúrese de que la zona horaria del servidor esté configurada correctamente. Esto es importante para el registro y el funcionamiento adecuado de las aplicaciones.
sudo timedatectl set-timezone Europe/Moscow # Reemplace con su zona horaria
timedatectl status # Verificar el estado
Ubuntu 24.04 LTS utiliza systemd-timesyncd para la sincronización de la hora a través de NTP, lo cual suele ser suficiente. Asegúrese de que el servicio esté activo:
timedatectl show-timesync --value # Mostrar el estado de sincronización
Si se requiere una sincronización más avanzada, puede instalar chrony:
sudo apt install chrony -y
sudo systemctl enable chrony
sudo systemctl start chrony
chronyc sources -v
Su servidor ahora está configurado, protegido y listo para la instalación del software principal de Lemmy.
Instalación de software — paso a paso
Para desplegar Lemmy, utilizaremos Docker y Docker Compose. Este enfoque simplifica significativamente la gestión de dependencias, el aislamiento de componentes y la actualización del sistema. Caddy se utilizará como servidor web y proxy inverso con HTTPS automático.
1. Instalación de Docker y Docker Compose
Primero, instalaremos Docker Engine. Utilizaremos el repositorio oficial de Docker para obtener las versiones más recientes (para 2026, probablemente será Docker 26.x+).
# Actualizar paquetes e instalar dependencias necesarias para el repositorio de Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Añadir la clave GPG oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Añadir el repositorio de Docker a las fuentes de APT
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Actualizar la lista de paquetes con el nuevo repositorio
sudo apt update
# Instalar Docker Engine, Docker CLI y containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Añadir su usuario al grupo docker para trabajar sin sudo
sudo usermod -aG docker lemmyadmin
Después de añadir el usuario al grupo docker, deberá cerrar y volver a iniciar la sesión SSH, o ejecutar newgrp docker para que los cambios surtan efecto. Verifiquemos la instalación de Docker:
docker run hello-world # Ejecutar un contenedor de prueba de Docker
Si ve el mensaje "Hello from Docker!", significa que Docker está instalado correctamente. El plugin Docker Compose ya está instalado junto con Docker Engine.
2. Instalación de Caddy (proxy inverso y HTTPS)
Caddy es un servidor web potente y fácil de usar con soporte HTTPS automático a través de Let's Encrypt. Lo instalaremos desde el repositorio oficial de Caddy.
# Instalar los paquetes necesarios para el repositorio de Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
# Añadir la clave GPG de Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# Añadir el repositorio de Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
# Actualizar la lista de paquetes e instalar Caddy
sudo apt update
sudo apt install -y caddy
# Verificar el estado de Caddy
sudo systemctl status caddy
Caddy debería estar instalado y en ejecución. Lo configuraremos más tarde.
3. Clonación del repositorio Lemmy Docker Compose
Lemmy proporciona archivos oficiales de Docker Compose para un despliegue conveniente. Los clonaremos y los configuraremos a nuestra medida.
# Instalar Git, si aún no está instalado
sudo apt install -y git
# Ir al directorio de inicio del usuario
cd ~
# Clonar el repositorio oficial de Lemmy Docker Compose
git clone https://github.com/LemmyNet/lemmy-docker-compose.git
cd lemmy-docker-compose
# Cambiar a una versión estable (por ejemplo, v0.19.x o v0.20.x, actual para 2026)
# Verifique los lanzamientos actuales en GitHub LemmyNet/lemmy-docker-compose
git checkout tags/0.19.3 -b 0.19.3-branch # Ejemplo para la versión 0.19.3. Reemplace con la actual.
Importante: Siempre verifique las versiones estables actuales de Lemmy en el repositorio oficial de GitHub y use la etiqueta correspondiente para git checkout. Para 2026, es probable que estén disponibles las versiones 0.19.x o incluso 0.20.x.
4. Configuración del archivo .env y docker-compose.yml
En el directorio lemmy-docker-compose se encuentran los archivos de configuración. Copie los ejemplos para una configuración posterior:
cp lemmy.env.example .env # Copiar el archivo de variables de entorno
cp docker-compose.yml.example docker-compose.yml # Copiar el archivo principal de Docker Compose
Ahora edite el archivo .env. Este es un archivo clave que contiene secretos y configuraciones principales:
nano .env
En este archivo, deberá cambiar los siguientes parámetros (los ejemplos son válidos para 2026):
LEMMY_HOSTNAME=your.lemmy.domain.com: Especifique su nombre de dominio a través del cual Lemmy será accesible.LEMMY_DATABASE_NAME=lemmy: Nombre de la base de datos (puede dejarlo por defecto).LEMMY_DATABASE_USER=lemmy: Usuario de la base de datos (puede dejarlo por defecto).LEMMY_DATABASE_PASSWORD=SU_CONTRASEÑA_MUY_COMPLEJA: Asegúrese de cambiarla por una contraseña compleja y única.LEMMY_DATABASE_HOST=lemmy_db: Host de la base de datos (por defecto, no lo cambie).LEMMY_DATABASE_PORT=5432: Puerto de la base de datos (por defecto, no lo cambie).LEMMY_APU_KEY=SU_CLAVE_SECRETA_APU: Genere una cadena aleatoria de 32+ caracteres.PICTRS_API_KEY=SU_CLAVE_SECRETA_PICTRS: Genere una cadena aleatoria de 32+ caracteres. Pict-rs es un servicio para el procesamiento de imágenes.
Guarde los cambios (Ctrl+O, Enter, Ctrl+X).
En el archivo docker-compose.yml, es posible que deba realizar cambios mínimos si desea utilizar Caddy en lugar de Nginx (que viene por defecto). En el docker-compose.yml.example estándar, Lemmy a menudo incluye Nginx. Eliminaremos o comentaremos la sección de Nginx y nos aseguraremos de que el servicio Lemmy esté disponible en el puerto 8536 (o en otro especificado en la configuración de Lemmy) para Caddy. Si ha clonado el repositorio actual, es posible que Caddy ya se ofrezca como opción o que se requiera una adaptación mínima para su uso.
Para simplificar, asumiremos que los servicios lemmy-ui y lemmy en docker-compose.yml no exponen sus puertos al exterior (es decir, no hay secciones ports: que mapeen 8536 o 1234 al sistema host), sino que solo están disponibles dentro de la red Docker. Caddy se comunicará con ellos por sus nombres de servicio.
5. Inicio de Lemmy
Ahora que todo está configurado, puede iniciar Lemmy:
docker compose build --no-cache # Construir las imágenes de Lemmy (puede llevar tiempo)
docker compose up -d # Iniciar todos los servicios en segundo plano
Después de iniciar, verifique el estado de los contenedores:
docker compose ps
Debería ver que todos los servicios (lemmy_db, lemmy, lemmy_ui, pict-rs) están en estado "running".
En esta etapa, Lemmy está funcionando dentro de la red Docker, pero aún no es accesible desde el exterior. Para ello, necesitamos la configuración de Caddy, que se describirá en la siguiente sección.
Configuración
Ahora que los componentes principales de Lemmy están en funcionamiento en Docker, es necesario configurar el acceso externo a través del servidor web Caddy, que actuará como proxy inverso y gestionará automáticamente los certificados HTTPS.
1. Configuración de registros DNS
Antes de configurar Caddy, asegúrese de que su dominio (por ejemplo, your.lemmy.domain.com) apunte a la dirección IP de su VPS. Agregue o actualice un registro A en su registrador de nombres de dominio:
- Tipo:
A - Nombre/Host:
your.lemmy.domain.com(o@si es un dominio raíz) - Valor/Dirección IP:
SU_DIRECCIÓN_IP_VPS
Espere unos minutos para que los cambios de DNS se propaguen por la red (esto puede tardar hasta varias horas).
2. Configuración de Caddyfile
Caddy utiliza un archivo de configuración llamado Caddyfile. Ábralo para editar:
sudo nano /etc/caddy/Caddyfile
Elimine todo el contenido predeterminado e inserte la siguiente configuración, reemplazando your.lemmy.domain.com con su dominio real:
your.lemmy.domain.com {
# Habilitar compresión GZIP automática
encode gzip
# Proxy inverso para archivos estáticos de la UI
handle /pictrs/ {
reverse_proxy pict-rs:8080
}
handle /api/ {
reverse_proxy lemmy:8536
}
handle /feeds/ {
reverse_proxy lemmy:8536
}
handle /nodeinfo/ {
reverse_proxy lemmy:8536
}
handle /ap/ {
reverse_proxy lemmy:8536
}
handle /actor/ {
reverse_proxy lemmy:8536
}
handle /inbox/ {
reverse_proxy lemmy:8536
}
handle /outbox/ {
reverse_proxy lemmy:8536
}
handle /well-known/ {
reverse_proxy lemmy:8536
}
handle /person/ {
reverse_proxy lemmy:8536
}
# Proxy inverso para la UI
reverse_proxy lemmy-ui:1234 {
# Encabezados para el correcto funcionamiento de WebSocket y otras funciones
header_up Host {host}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Forwarded-Proto {scheme}
}
# Habilitar registro
log {
output file /var/log/caddy/lemmy_access.log
format console
}
}
Explicaciones del Caddyfile:
your.lemmy.domain.com: Caddy solicitará y renovará automáticamente los certificados HTTPS para este dominio.encode gzip: Habilita la compresión GZIP para acelerar la carga.handle /pictrs/: Redirige las solicitudes al servicio Pict-rs (procesamiento de imágenes).handle /api/y otros: Redirigen las solicitudes a la API de Lemmy.reverse_proxy lemmy-ui:1234: Proxy principal para la interfaz de usuario de Lemmy.lemmy,lemmy-ui,pict-rs: Estos son los nombres de los servicios en sudocker-compose.yml. Caddy, ejecutándose en la máquina host, no puede ver directamente los contenedores por sus nombres si no están en la misma red Docker o si Caddy no se ejecuta como un contenedor en la misma red. Para que Caddy funcione correctamente con los contenedores Docker, Caddy debe ejecutarse como un contenedor Docker en la misma red, o debe especificar explícitamente las direcciones IP de los contenedores o usar un proxy Docker.
Corrección para Caddy en el host: Si Caddy se ejecuta en el host y Lemmy en Docker, Caddy no podrá resolver los nombres lemmy, lemmy-ui, pict-rs. Hay dos soluciones principales:
- Ejecutar Caddy como un contenedor Docker en la misma red que Lemmy. Esto es más complejo, pero preferible.
- Modificar
docker-compose.ymlpara que Lemmy y Lemmy-UI publiquen sus puertos en el host (por ejemplo,lemmy:8536en127.0.0.1:8536), y entonces Caddy hará proxy alocalhost:8536. Esto es más sencillo para este tutorial.
Vamos a modificar docker-compose.yml para que Lemmy y Pict-rs estén disponibles en localhost. Abra docker-compose.yml:
nano docker-compose.yml
Encuentre las secciones lemmy, lemmy-ui y pict-rs. Agregue o modifique la sección ports para que se vean así:
# ...
services:
lemmy:
image: dessalines/lemmy:0.19.3 # Reemplace con la versión actual
# ...
ports:
- "127.0.0.1:8536:8536" # API/Backend de Lemmy
lemmy-ui:
image: dessalines/lemmy-ui:0.19.3 # Reemplace con la versión actual
# ...
ports:
- "127.0.0.1:1234:1234" # UI de Lemmy
pict-rs:
image: kaniini/pict-rs:0.4.0 # Reemplace con la versión actual
# ...
ports:
- "127.0.0.1:8080:8080" # Pict-rs (proxy de imágenes)
# ...
Guarde docker-compose.yml, luego reinicie Lemmy para aplicar los cambios de puertos:
docker compose down
docker compose up -d
Ahora el Caddyfile debe ser ajustado para usar localhost:
your.lemmy.domain.com {
encode gzip
handle /pictrs/ {
reverse_proxy 127.0.0.1:8080 # Proxy inverso para Pict-rs
}
handle /api/ {
reverse_proxy 127.0.0.1:8536 # Proxy inverso para la API de Lemmy
}
handle /feeds/ {
reverse_proxy 127.0.0.1:8536
}
handle /nodeinfo/ {
reverse_proxy 127.0.0.1:8536
}
handle /ap/ {
reverse_proxy 127.0.0.1:8536
}
handle /actor/ {
reverse_proxy 127.0.0.1:8536
}
handle /inbox/ {
reverse_proxy 127.0.0.1:8536
}
handle /outbox/ {
reverse_proxy 127.0.0.1:8536
}
handle /well-known/ {
reverse_proxy 127.0.0.1:8536
}
handle /person/ {
reverse_proxy 127.0.0.1:8536
}
reverse_proxy 127.0.0.1:1234 { # Proxy inverso para la UI de Lemmy
header_up Host {host}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Forwarded-Proto {scheme}
}
log {
output file /var/log/caddy/lemmy_access.log
format console
}
}
Guarde Caddyfile.
3. Verificación y reinicio de Caddy
Verifique la sintaxis del Caddyfile y reinicie Caddy para aplicar la nueva configuración:
sudo caddy validate --config /etc/caddy/Caddyfile # Verificación de sintaxis
sudo systemctl reload caddy # Reiniciar Caddy
sudo systemctl status caddy # Verificar estado
Si todo está en orden, Caddy debería iniciarse correctamente y comenzar a escuchar en los puertos 80 y 443. Verifique los registros de Caddy en busca de errores, especialmente los relacionados con la obtención de certificados HTTPS:
sudo journalctl -u caddy --no-pager
Debería ver mensajes indicando que Caddy ha obtenido correctamente los certificados de Let's Encrypt.
4. Verificación de funcionalidad
Abra su dominio (https://your.lemmy.domain.com) en un navegador web. Debería ver la interfaz de Lemmy. Si no, verifique lo siguiente:
- DNS: Asegúrese de que su dominio apunte correctamente a la IP de su VPS.
- Firewall (UFW): Asegúrese de que los puertos 80 y 443 estén abiertos.
- Registros de Caddy: Verifique
sudo journalctl -u caddy --no-pageren busca de errores. - Registros de Docker: Verifique los registros de los contenedores de Lemmy:
docker compose logs lemmy,docker compose logs lemmy-ui,docker compose logs pict-rs.
Después de que la página de Lemmy se cargue correctamente, registre el primer usuario. Este usuario se convertirá automáticamente en el administrador de la instancia.
5. Configuración adicional de Lemmy (lemmy.hjson)
El archivo lemmy.hjson (o lemmy.toml dependiendo de la versión) contiene la configuración de Lemmy. Se encuentra en el volumen del contenedor Docker de Lemmy. Para editarlo, deberá conectarse al contenedor o montarlo como un volumen. La forma más sencilla es agregar volumes en docker-compose.yml para el archivo de configuración.
En su docker-compose.yml, en la sección lemmy, agregue (o modifique) el volumen:
# ...
services:
lemmy:
image: dessalines/lemmy:0.19.3
# ...
volumes:
- ./lemmy.hjson:/app/lemmy.hjson # Ruta al archivo de configuración
# ...
Luego, cree el archivo lemmy.hjson en el mismo directorio que docker-compose.yml:
touch lemmy.hjson
nano lemmy.hjson
Ejemplo del contenido de lemmy.hjson (la versión actual puede tener otros parámetros, consulte la documentación oficial):
{
"hostname": "your.lemmy.domain.com",
"database": {
"url": "postgres://lemmy:ВАШ_ОЧЕНЬ_СЛОЖНЫЙ_ПАРОЛЬ@lemmy_db:5432/lemmy"
},
"federation": {
"enabled": true,
"allowed_instances": [],
"blocked_instances": []
},
"captcha": {
"enabled": false
},
"log_level": "info",
"port": 8536
}
Importante: Asegúrese de que hostname coincida con su dominio. La contraseña en database.url debe coincidir con LEMMY_DATABASE_PASSWORD de .env. Después de modificar lemmy.hjson, reinicie Lemmy:
docker compose restart lemmy
Ahora su instancia de Lemmy está completamente configurada y lista para usar.