Blog Software: Writefreely Web oficial: https://writefreely.org/ Documentación oficial: https://writefreely.org/docs Foro/Matrix de soporte: https://discuss.write.as/c/writefreely Ubicaciones importantes:/var/www/blog.anartist.org/ Logs relevantes:/var/log/syslog Comandos de gestión Crear un usuario nuevo cd /var/www/blog.anartist.org/ sudo ./writefreely --create-user user:password Crear una cuenta de administrador cd /var/www/blog.anartist.org/ sudo ./writefreely --create-admin user:password Actualizar ¡¡Siempre hay que leer la instrucciones en la documentación oficial y leer el changelog de la nueva versión!! ¡¡Es muy recomendable hacer una copia de seguridad antes de actualizar!! # Detener writefreely # Descargar ficheros de release y sustituirlos por los existentes. Luego ejecutar: # Arrancar servicio writefreely de nuevo # Ejecutar: ./writefreely db migrate Diario de Instalación He seguido las instrucciones de aquí sudo apt update sudo apt upgrade sudo apt install nginx certbot python3-certbot-nginx mysql-server sudo mysql Primero creamos la base de datos: CREATE DATABASE writefreely CHARACTER SET latin1 COLLATE latin1_swedish_ci; CREATE USER 'writefreely'@'localhost' IDENTIFIED BY 'XXXXXXXXX'; GRANT ALL PRIVILEGES ON writefreely.* to writefreely@'localhost'; FLUSH PRIVILEGES; exit Descargamos writefreely y configuramos. Es un proceso que te va guiando. En nuestro caso, he puesto un máximo de 5 blogs por usuario. wget https://github.com/writeas/writefreely/releases/download/v0.12.0/writefreely_0.12.0_linux_amd64.tar.gz tar -xf writefreely_0.12.0_linux_amd64.tar.gz cd writefreely ./writefreely config start ./writefreely keys generate Durante la configuración, le he indicado la opción Producción detrás de un servidor proxy, así que configuro nginx: cd /etc/nginx/sites-available/ sudo vi writefreely Contenido del fichero de configuración nginx: server { server_name blog.anartist.org; gzip on; gzip_types application/javascript application/x-javascript application/json application/rss+xml application/xml image/svg+xml image/x-icon application/vnd.ms-fontobject application/font-sfnt text/css text/plain; gzip_min_length 256; gzip_comp_level 5; gzip_http_version 1.1; gzip_vary on; location ~ ^/.well-known/(webfinger|nodeinfo|host-meta) { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } location ~ ^/(css|img|js|fonts)/ { root /var/www/blog.anartist.org/static; # Optionally cache these files in the browser: # expires 12M; } location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/blog.anartist.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/blog.anartist.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = blog.anartist.org) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name blog.anartist.org; return 404; # managed by Certbot } sudo ln -s /etc/nginx/sites-available/writefreely /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service sudo certbot --nginx sudo mv /home/marcel/writefreely /var/www/ cd /var/www/ sudo mv writefreely/ blog.anartist.org/ sudo chown -R root:root blog.anartist.org/ Finalmente, creamos el servicio systemd: sudo vi /etc/systemd/system/writefreely.service Contenido del fichero de configuració *.service: [Unit] Description=WriteFreely Instance #After=syslog.target network.target # If MySQL is running on the same machine, uncomment the following # line to use it, instead. After=syslog.target network.target mysql.service [Service] Type=simple StandardOutput=syslog StandardError=syslog WorkingDirectory=/var/www/blog.anartist.org/ ExecStart=/var/www/blog.anartist.org/writefreely Restart=always [Install] WantedBy=multi-user.target Y arrancamos el servicio. ¡Ya está disponible! sudo systemctl restart writefreely.service Finalmente, creo un usuario administrador y el primer usuario: cd blog.anartist.org/ sudo ./writefreely --create-admin anartist:XXXXXXXXX sudo ./writefreely --create-user marcel:XXXXXXXX