WriteFreely Installation Notes

Prior to this blog, I played with WriteFreely. WriteFreely’s installation isn’t as easy as the instructions make it seem. Thus, I used about three different tutorials, as well as other Ubuntu tutorials, to cobble this page together. Here was my setup:

  1. My server is an Unraid system using quite a few dockers. Two of which are essential to making this blog run. One is a Cloudflare DDNS and the other is an NGINX Proxy Manager.
  2. Using an Ubuntu Server virtual machine via ssh.
  3. Downloaded the WriteFreely installation using the following command using wget (which you might have to install): sudo wget https://github.com/writefreely/writefreely/releases/download/v0.13.2/writefreely_0.13.2_linux_amd64.tar.gz
  4. Unzip WriteFreely: sudo tar xvzf writefreely_0.13.2_linux_amd64.tar.gz
  5. Change directory: cd writefreely

Unlike the official directions over on https://writefreely.org/start, you need to put a “./” before the code. I’m not sure why, but I found that on a separate tutorial. Start the WriteFreely configuration using the command: ./writefreely config start

I set mine up as a production environment, used sqlite, and disabled Federation.

You need to edit the config.ini file to fit your needs – I used the nano editor. The first thing that was needed was to change the “bind” address to the IP of my virtual machine. Then the following parameters that you see below were altered. I don’t think the default visibility field actually does anything in single user mode, but I’m trying to get clarification over on the forums – link.

bind =

local_timeline = true

default_visibility = public

  1. Type the following command in: ./writefreely keys generate
  2. To run it, type: sudo ./writefreely
  3. Now to set it up as a service that will run on startup. The instructions on the official install guide were lacking. They get you half way there, but not all the way. We have to create and edit the service file: sudo nano /etc/systemd/system/writefreely.service

Here’s what my file ended up looking like: [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










The developer tells you to start the service using the command: sudo systemctl start writefreely

While that does indeed start the service, it doesn’t start it for the next reboot. For that…

  1. Enable the WriteFreely service on reboot: sudo systemctl enable writefreely
  2. Reboot and test it out!

Bonus – Install an FTP Server

  1. sudo apt install vsftpd
  2. sudo systemctl start vsftpd
  3. sudo systemctl enable vsftpd
  4. Find the entry labeled write_enable=NO, and change the value to “YES” by deleting the “#”. sudo nano /etc/vsftpd.conf
  5. Save the file, exit, then restart the FTP service with the following: sudo systemctl restart vsftpd.service

Leave a Reply

Your email address will not be published. Required fields are marked *

The best blog theme developer!

If you’re a blogger / photographer like me, you’d rather focus on your writing and photos than coding. I’ve tried a few themes — both free...

Switching to a self hosted WordPress blog on DigitalOcean

Up until yesterday, my blog was hosted over at WordPress.com. WordPress.com offers a premiere WordPress experience. For $300/year, they have unlimited space for your...

Utterances – Commenting Powered by GitHub Issues

Utterances is a free and lightweight commenting system that requires minimal configuration on your part and is powered by GitHub. I'm using it on this very blog.