Auto alojando Writefreely

Writefreely

"An open source platform for building a writing space on the web."

Básicamente, Writefreely es una aplicación muy ligera (y superminimalista) para escribir un blog en Internet.

Cuando digo super minimalista no exagero. No subes fotos, no creas tablas, ni layouts, ni nada parecido, sólo escribes texto y publicas

Al ser open source cualquiera puede descargarla e instalarla para tener su propio blog aunque también existe la posibilidad de crear una cuenta en cualquiera de las instancias existentes y no complicarse la vida.

La diferencia es obvia: si la alojas tú mismo puedes usar tu propio dominio (random.jagedn.dev, yo.es, …​) , mientras que si usas la oficial tu blog será algo como nombredelainstancia.com/usuario

Requisitos

En este post vamos a ver cómo alojar Writefreely en nuestra propia instancia. Para ello necesitamos:

  • una máquina donde alojarla. Lo más fácil es contratar una por 4€ al mes en cualquier proveedor (Yo uso Hostinger y va como un tiro). Seguramente te sobrará máquina pero suele ser lo mínimo que se despacha

  • el nombre de un dominio, el mío por ejemplo es "jagedn.dev". Dependiendo del dominio y donde lo registres el precio varía pero puedes conseguir un .com por unos 10€ al año

  • acceso a la máquina. Yo uso la consola con SSH pero muchos proveedores te permiten acceder vía navegador

  • docker. NO es necesario pero para mí es un imprescindible porque me permite instalar, desinstalar, actualizar…​ todo tipo de aplicaciones de una forma sencilla

    INFO

    Esta guía instala Writefreely en el stack de aplicaciones que tengo (ver otros posts como "Self-hosting multiples blogs" o "Self-hosting Snikket and GoToSocial behind Caddy") de tal forma que en un mismo VPS ejecuto diferentes aplicaciones

Preparación

Definimos (y creamos) un directorio donde va a residir nuestra aplicación, por ejemplo /blog

En este directorio crearemos los siguientes ficheros:

docker-compose.yml
services:

  caddy:
    image: caddy:2.11.1-alpine
    container_name: caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy_data:/data
      - ./caddy_config:/config
      - ./acme_challenges:/var/www/challenges

  db:
    image: mariadb:latest
    container_name: db
    init: true
    volumes:
      - ./db_data:/var/lib/mysql
    env_file:
      - .env_write
    restart: unless-stopped

  writefreely:
    build:
      context: ./writefreely
      dockerfile: Dockerfile.prod
    image: writefreely-local-prod:latest
    container_name: writefreely-app
    depends_on:
      - db
    volumes:
      - ./app_data:/data
    restart: unless-stopped
Caddy
... Otros dominios

random.jagedn.dev { (1)
   reverse_proxy writefreely:8080
}
<1> el nombre de tu dominio
.env_write
MARIADB_ROOT_PASSWORD=unapasswordalgocomplicada
MARIADB_DATABASE=writefreely
MARIADB_USER=writefreely
MARIADB_PASSWORD=otrapasswordcomplicada

Git Writefreely

En lugar de la imagen docker publicada que no es para producción, vamos a usar el código fuente para construir la imagen. De esta forma será fácil actualizar de versión

git clone https://github.com/writefreely/writefreely.git

DB

En primer lugar debemos levantar la base de datos antes que Writefreely por lo que ejecutamos

docker compose up -d db

Si queremos ver cómo (y cúando) se levanta la base de datos:

docker compose logs -f db

Cuando veamos que la bbdd está levantada pasaremos a crear la imagen de Writefreely

Writefreely

En primer lugar vamos a "construir" la imagen

docker compose build writefreely

Después le diremos que cree la configuración inicial:

docker compose run --rm writefreely writefreely config start

INFO

El primer writefreely se refiere al nombre del container (ver docker-compose.yml) mientras que el segundo se refiere al comando a ejecutar "dentro de él"

Writefreely nos hará unas cuantas preguntas muy simples de responder, siendo la más "rara" si estamos usando un reverse proxy. Como es el caso (Caddy) contestaremos que sí

Usaremos "db" como nombre donde está corriendo la base de datos (pues es el nombre que le hemos dado en el docker-compose)

Por último, una vez completada la configuración y creado el usuario, crearemos las claves:

docker compose run writefreely writefreely keys generate

Si todo ha ido bien sólo resta levantar el servicio:

docker compose up -d

Escribir

En unos pocos segundos podremos acceder a nuestra instancia con el usuario y password que indicamos en el setup.

Vía interface web puedes configurar si quieres federar la instancia de tal forma que usuarios del fediverso (Mastodon, Pleroma, Loops) puedan seguirte y enterarse cuando publicas un artículo nuevo

Conclusión

Writefreely es realmente minimalista y muy centrado en la escritura sencilla. Yo recién he añadido una instalación en mi stack y creado un par de posts pero espero seguir usándolo cada vez más

Este texto ha sido escrito por un humano

This post has been written by a human

2019 - 2026 | Mixed with Bootstrap | Baked with JBake v2.6.7 | Terminos Terminos y Privacidad