BookWyrm es una red social para llevar un registro de tus lecturas, hablar sobre libros, escribir reseñas y descubrir qué leer a continuación.
Gracias a la federación permite a las personas de BookWyrm unirse a comunidades pequeñas y de confianza que pueden conectarse entre sí y con otros servicios de ActivityPub como Mastodon y Pleroma.
Por lo que las personas que ya estén en Mastodon o Pleroma, podrán ver tus reseñas así como responderte o darle a RT o FAV.
Pasos previos
Esta vez vamos a instalar BookWyrm en Ubuntu 22.04 con Docker, ya que el entorno de BookWyrm está preparado para funcionar así.
También deberemos de tener un dominio o subdominio apuntando al servidor.
Adicionalmente, también es recomendable configurar un servidor de correo, desde la propia documentación oficial, recomiendan el uso de MailGun.
Instalación de Docker en Ubuntu 22.04
Lo primero que haremos será instalar Docker, para ello deberéis de seguir este otro tutorial:

Tras la instalación de Docker, seguimos...
Instalación de BookWyrm
Realmente la instalación es bastante sencilla, al final es ejecutar un docker-compose
para levantar todos los contenedores. Así que sigue al detalle todos estos pasos para instalar BookWyrm en tu servidor.
Clonamos el repositorio
Lo primero será clonar el proyecto entero, así que nos metemos dentro de /opt y descargamos:
cd /opt
git clone https://github.com/bookwyrm-social/bookwyrm.git
Una vez descargado, cambiamos la rama a production
:
git checkout production
Configuramos entorno de BookWyrm
Después de clonar el repositorio, toca configurar a fondo BookWyrm, para ello crearemos el fichero .env
y lo editaremos.
cp .env.example .env
Debemos de actualizar el fichero con nuestros datos, para ello tendremos que modificar los siguientes parámetros:
- SECRET_KEY: Debe de ser larga y complicada de descubrir.
- DOMAIN: Tu dominio.
- EMAIL: Cuenta de correo con la que se validará certbot.
- POSTGRES_PASSWORD: Configura una contraeña segura para la base de datos.
- REDIS_ACTIVITY_PASSWORD: Configura una contraseña segura para Redis.
- REDIS_BROKER_PASSWORD: Configura una contraseña segura para Redis Broker.
- FLOWER_USER: Tu usuario para poder acceder a Flower.
- FLOWER_PASSWORD: Configura una contraseña segura para Flower.
- EMAIL_HOST_USER: Una cuenta de correo que usarás para envíar e-mails de BookWyrm.
- EMAIL_HOST_PASSWORD: La contraseña de la cuenta de correo
Configuramos Nginx
Lo siguiente será configurar la configuración de Nginx, para ello copiamos primero el fichero de configuración:
cp nginx/production nginx/default.conf
Y actualizamos nginx/default.conf
para adaptarlo a nuestro dominio:
include /etc/nginx/conf.d/server_config;
upstream web {
server web:8000;
}
server {
listen [::]:80;
listen 80;
server_name tudominio.com;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/certbot;
}
# redirect http to https
# return 301 https://tudominio.com$request_uri;
}
Dentro del fichero de configuración, deberemos de modificar your-domain.com por el nombre de tu dominio. También, ten en cuenta que si por ejemplo estás usando un subdominio, deberás de eliminar el registro para www
.
www
, deberás de modificar el fichero docker-compose.yml
para eliminar el registro www
del comando para certbot.Inicializamos la base de datos
Tras la configuración de Nginx, procedemos a inicializar la base de datos con:
./bw-dev migrate
Creamos certificado y levantamos contenedores
Ahora lanzaremos la aplicación, para que así se configure el certificado SSL y además se descarguen las imágenes para los contenedores.
docker-compose up --build
Cuando Docker haya levantado todo y funcione correctamente, procedemos a parar el proceso con CTRL-C
.
Configuramos redirección para HTTPS
Lo primero será editar docker-compose.yml para comentar el comando para generar certificado, ya que ahora únicamente deberemos de renovarlo.
Comentamos este comando:
# command: certonly --webroot --webroot-path=/var/www/certbot --email ${EMAIL} --agree-tos --no-eff-email -d ${DOMAIN}
Y descomentamos este otro:
command: renew --webroot --webroot-path /var/www/certbot
Luego en el fichero de nginx/default.conf debemos de habilitar el siguiente server configurado, por lo que deberemos de descomentar lo siguiente:
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name tudominio.com;
client_max_body_size 3M;
if ($host != "tudominio.com") {
return 301 $scheme://tudominio.com$request_uri;
}
# SSL code
ssl_certificate /etc/nginx/ssl/live/tudominio.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/tudominio.com/privkey.pem;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/certbot;
}
location ~ ^/(login|password-reset|resend-link) {
limit_req zone=loginlimit;
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location / {
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /images/ {
alias /app/images/;
}
location /static/ {
alias /app/static/;
}
}
Y guardamos!
Configuramos Cron
En Cron lo que vamos a configurar es la renovación de Let's Encrypt para el SSL, para ello ejecutaremos crontab -e
y añadiremos lo siguiente:
5 0 * * * cd /opt/bookwyrm && docker-compose run --rm certbot
Iniciamos la aplicación
¡Casi lo tenemos! Ahora vamos a tener que inicializar la aplicación, para ello ejecutamos este comando:
./bw-dev setup
Al finalizar, veremos que al final nos proporcionan un código para poder generar la cuenta admin de nuestro nodo, es importante que lo guardemos:
*******************************************
Use this code to create your admin account:
c6c35779-af3a-4091-b330-c026610920d6
*******************************************
Finalmente, lanzamos los contenedores para tener nuestra aplicación escuchando por el dominio que hemos configurado:
docker-compose up -d
Cuando acaben de levantarse todos los contenedores, podremos acceder a nuestro dominio en nuestro navegador:

Si vemos que está todo bien, entonces le damos al botón de "Continuar":

En este paso, debemos de poner el código que nos proporcionan anteriormente y luego los datos de nuestro usuario.
Y listo, ya tenemos nuestro nodo BookWyrm funcionando y esperando a que la lectura se apodere del Fediverso!
Comentarios