silo.pub

From IndieWeb
Jump to: navigation, search

silo.pub is a Micropub endpoint for hosted blogs like Tumblr, WordPress.com, Blogger, and Twitter. It aims to implement the ideas laid out in the post Micropub for Hosted Blogs.

History

silo.pub was temporary named "Feverdream" while it was being developed. And hosted at https://feverdream.herokuapp.com during that period.

Installation

Some notes on how to install silo.pub on an Ubuntu 16.04 server running nginx.

This guide was helpful: https://chriswarrick.com/blog/2016/02/10/deploying-python-web-apps-with-nginx-and-uwsgi-emperor/

  • Create a new venv in a folder like /web/sites/silopub
cd /web/sites/
virtualenv -p /usr/bin/python3 silopub
  • Clone the git repo to /web/sites/silopub/silo.pub, e.g.:
cd /web/sites/silopub
git clone https://github.com/kylewm/silo.pub.git
  • Install the project dependencies
./bin/pip install -r silo.pub/requirements.txt
  • Change ownership of the folder to the web server user
chown -R www-data: silo.pub
  • Create a folder for the socket and logs
mkdir srv
chown www-data: srv
  • Create the uwsgi config file at /web/sites/silopub/silopub.ini
[uwsgi]
socket = /web/sites/silopub/srv/uwsgi.sock
chmod-socket = 775
chdir = /web/sites/silopub/silo.pub
master = true
binary-path = /web/sites/silopub/bin/uwsgi
virtualenv = /web/sites/silopub
module = silopub.wsgi:application
uid = www-data
gid = www-data
process = 1
threads = 2
logger = file:/web/sites/silopub/srv/uwsgi.log
die-on-term = true
  • Configure nginx to point to the socket
server {
  listen 443 ssl;

  # ... your normal nginx ssl/log stuff here

  location / {
    uwsgi_pass      unix:///web/sites/silopub/srv/uwsgi.sock;
    include         uwsgi_params;
    uwsgi_param     UWSGI_SCHEME $scheme;
    uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
  }

  location /static {
    root /web/sites/silopub/silo.pub/silopub/;
    index index.html;
  }
}
  • Configure the startup script at /etc/systemd/silopub.service
[Unit]
Description=SiloPub

[Service]
WorkingDirectory=/web/sites/silopub/
ExecStart=/web/sites/silopub/bin/uwsgi --ini silopub.ini
Restart=always
User=www-data

[Install]
WantedBy=multi-user.target
  • Enable the systemd service
    • sudo systemctl enable /etc/systemd/silopub.service
  • Start the service
    • sudo service silopub start

See Also