silo.pub

From IndieWeb
(Redirected from silopub)

silo.pub is an open source self-hostable Micropub endpoint for hosted blogs like Tumblr, WordPress.com, and Blogger, and used to be a hosted service at an eponymous domain until it expired in 2018 and subsequently squatted.

The silo.pub project implemented the ideas laid out in the post Micropub for Hosted Blogs.

History

  • silo.pub was temporarily named "Feverdream" while it was being developed. And hosted at https://feverdream.herokuapp.com during that period.
  • In 2018, the domain expired and the hosted service is no longer available

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