Blog platform
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.3 KiB


Pressr is a multi-user, multi-blog website written in Ruby on Rails. Although it uses Javascript by default, it is still fully functional even when it is turned off.

Sample instance


  • Comments and comment replies

  • Multi-user support

  • Multi-blog support

  • Image upload

  • Markdown support

  • Very lightweight

  • StatsD integration


Database settings are configured in config/database.yml. It defaults to Postgres running on localhost.

Custom settings are configured in config/pressr.yml.

Deployment (Docker)

A sample docker-compose.yml is provided. Make sure to change the SECRET_KEY_BASE ! This is very important!

  1. Run docker-compose once

docker-compose up

  1. Terminate the process and create an admin account

docker-compose run web bash -c 'util/'

  1. Start docker compose again

docker-compose up

You will be able to access Pressr at http://localhost:3000

Deployment (Debian 10)

  1. Ensure system is up to date

sudo apt update && sudo apt upgrade

  1. Install dependencies

sudo apt install build-essential dirmngr gnupg ruby ruby-dev zlib1g-dev libruby libssl-dev libpcre3-dev libcurl4-openssl-dev rake ruby-rack dirmngr postgresql-11 nginx apt-transport-https ca-certificates curl git libpq-dev

curl -sS | sudo apt-key add -

echo "deb stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update && sudo apt install yarn

  1. Create a new user

sudo useradd deploy

sudo usermod -aG sudo deploy

sudo su deploy

cd ~

  1. Install Ruby via RVM

gpg --keyserver hkp:// --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL | bash -s stable --ruby

source ~/.rvm/scripts/rvm

rvm install ruby-2.6.4

rvm --default use ruby-2.6.4

gem install bundler -v 2

  1. Configure Postgres

sudo su postgres

createuser deploy





  1. Install Pressr

git clone

cd Pressr

export RAILS_ENV=production

export EDITOR=nano

bundle install

rm config/credentials.yml.enc

rails credentials:edit

Edit config/database.yml and comment out username and password under the header production

rake db:create

rake db:migrate

rake assets:precompile

  1. Install Phusion

sudo apt-key adv --keyserver hkp:// --recv-keys 561F9B9CAC40B2F7

sudo sh -c 'echo deb buster main > /etc/apt/sources.list.d/passenger.list'

sudo apt-get update

sudo apt-get install libnginx-mod-http-passenger

  1. Configure nginx

Open /etc/nginx/conf.d/mod-http-passenger.conf. Verify these lines are present:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

passenger_ruby /usr/bin/passenger_free_ruby;

Open /etc/nginx/sites-available/default in a text editor. Remove everything except for:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        passenger_enabled on;
        root /home/deploy/Pressr/public;


Restart Nginx

sudo service nginx start

Browse to http://<your server ip> and you should see the web interface!