This project is meant to be a quick-and-dirty blog based on org-mode formatted documents.
You can put your .org
files in content/
and it will be rendered into renderedContent
within fifteen minutes, or immediately after starting the server.
<<Setup>>
This project requires Python 3.
The server is powered by tornado
. I use orgparse
to parse org document properties. pandoc
is used for converting org files into html files.
pip3 install tornado orgparse
For Ubuntu:
sudo apt install pandoc
This will be used to convert .org
files into .html
.
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout certificates/server_jupyter_based.crt.key -out certificates/server_jupyter_based.crt.pem
If you have a domain name, you should use Certbot to generate your certificates. These won’t pop the security warning like the self-signing ones will.
python3 SimpleBlogServer.py
If you want to redirect all HTTP visits to the blog server (which is HTTPS only), also run the redirect server:
python3 RedirectToHttpsServer.py
Open your browser and visit https://localhost:8888
.
Your web browser should complain that the website’s owner cannot be verified. This is a security measure for SSL related to the certificate. Because we made the certificate ourselves, the browser doesn’t know whether to trust the certificate, because there is no signing authority.
You can safely click Advanced
and add the certificate as trustworthy, because you’ve signed the certificate and trust yourself :).
If you want to get rid of this, you’ll need to get a signing authority like LetsEncrypt
to generate your certificate.
I used Amazon AWS Lightsail to host this server for my personal blog:
- Create an Ubuntu machine. I used the lowest spec ($3.50/month option) because I don’t expect much traffic
- Open up port
80
and443
in the Lightsail Network configuration page - Use the Amazon SSH stuff to start setting up the machine
sudo apt update && sudo apt upgrade
is necessary to install Python and such- Use Certbot to generate certificates
- Modify SimpleBlogServer port to be port 443 (HTTPS default)
- Follow the Setup section normally
- Use SCP to copy content from local machine into Amazon
content/