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:
- 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.
- Using an Ubuntu Server virtual machine via ssh.
- 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
- Unzip WriteFreely:
sudo tar xvzf writefreely_0.13.2_linux_amd64.tar.gz
- 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 = 192.168.0.184
local_timeline = true
default_visibility = public
- Type the following command in:
./writefreely keys generate
- To run it, type:
sudo ./writefreely
- 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
[Service]
Type=simple
StandardOutput=syslog
StandardError=syslog
WorkingDirectory=/home/noahbershatsky/writefreely
ExecStart=/home/noahbershatsky/writefreely/writefreely
Restart=always
[Install]
WantedBy=multi-user.target
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…
- Enable the WriteFreely service on reboot:
sudo systemctl enable writefreely
- Reboot and test it out!
Bonus – Install an FTP Server
sudo apt install vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
- Find the entry labeled write_enable=NO, and change the value to “YES” by deleting the “#”.
sudo nano /etc/vsftpd.conf
- Save the file, exit, then restart the FTP service with the following:
sudo systemctl restart vsftpd.service