Skip to content
A self hosted Web publishing platform on Rails.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Autocorrect RuboCop offenses inside ERB files Dec 30, 2018
bin Update most generated files for main app Jul 15, 2018
config Apply RuboCop to config files Feb 11, 2019
db Autocorrect Layout/EmptyLineAfterGuardClause Feb 11, 2019
doc Update license decisions Aug 31, 2018
log Match files as generated by Rails 4.1 Sep 17, 2014
public Remove old cache directory May 26, 2017
publify_amazon_sidebar Apply RuboCop to config files Feb 11, 2019
publify_core Apply RuboCop to config files Feb 11, 2019
publify_textfilter_code Apply RuboCop to config files Feb 11, 2019
spec Fix alignment of heredocs Feb 11, 2019
themes/bootstrap-2 Autocorrect RuboCop offenses inside ERB files Dec 30, 2018
vendor/assets Match files as generated by Rails 4.1 Sep 17, 2014
.erb-lint.yml Use only ErbSafety to check ERB output safety Dec 30, 2018
.gitignore Make byebug available in tests Oct 15, 2018
.hound.yml Unify Hound configuration May 28, 2017
.metrics Turn of syntax highlighting for metrical/metric_fu. Jul 1, 2011
.reek.yml Update Reek configuration for Reek 5 Oct 5, 2018
.rspec fixup! Upgrade to rspec-rails 3.0.2 Oct 18, 2014
.rubocop.yml Apply RuboCop to config files Feb 11, 2019
.rubocop_todo.yml Update RuboCop TODO file Feb 11, 2019
.travis.yml Update build set Dec 27, 2018 Drop support for generating humans.txt Oct 11, 2018 Emphasise that all pull request steps should be followed Jun 8, 2016
Gemfile Auto-update factory_bot to 5.0.0 Feb 10, 2019
MIT-LICENSE Update copyright information and contributor list May 19, 2017 Remove Dependency badge while awaiting new options Oct 21, 2018
Rakefile Correct Style/FrozenStringLiteralComment Oct 8, 2018
TODO.txt Update TODO Aug 10, 2015 Correct Style/FrozenStringLiteralComment Oct 8, 2018


The Ruby on Rails publishing software formerly known as Typo

Build Status Code Climate Reviewed by Hound

What's Publify?

Publify is a simple but full featured web publishing software. It's built around a blogging engine and a small message system connected to Twitter.

Publify follows the principles of the IndieWeb, which are self hosting your Web site, and Publish On your Own Site, Syndicate Everywhere.

Publify has been around since 2004 and is the oldest Ruby on Rails open source project alive.


  • A classic multi user blogging engine
  • Short messages with a Twitter connection
  • Text filters (Markdown, Textile, SmartyPants, @mention to link, #hashtag to link)
  • A widgets system and a plugin API
  • Custom themes
  • Advanced SEO capabilities
  • Multilingual : Publify is (more or less) translated in English, French, German, Danish, Norwegian, Japanese, Hebrew, Simplified Chinese, Mexican Spanish, Italian, Lithuanian, Dutch, Polish, Romanian…

Demo site

You can give Publify a try

The login / password to the admin are:

  • Administrator: admin / admin123
  • Publisher: demo / demo1234

The demo is reset every hour.



You can download the latest Publify stable release.

If you want to run the master branch, you can clone the Publify repository. However, random things may be broken there at any time, so tread carefully!

Running the master branch in production is not recommended!

Install Publify locally

To install Publify you need the following:

  • CRuby (MRI) 2.3, 2.4 or 2.5
  • Ruby on Rails 5.2.x
  • A database engine, MySQL, PgSQL or SQLite3
  • A compatible JavaScript installation for asset compilation. See the execjs readme for details.
  • ImageMagick (used by mini_magick).
  1. Unzip Publify archive
  2. Rename database.yml.yourEngine as database.yml
  3. Edit database.yml to add your database name, login and password.
$ bundle install
$ rake db:setup
$ rake db:migrate
$ rake db:seed
$ rake assets:precompile
$ rails server

You can now launch you browser and access

Install Publify on a server

You can use your preferred installation method (e.g., Capistrano) to install Publify on a server. You will also need to set up the environment so it contains at least SECRET_KEY_BASE. Your web server may allow you to set this, or you can consider using a tool like dotenv.

Install Publify on Heroku

In order to install Publify on Heroku, you’ll need to do some minor tweaks.

First of all, you need to set up Amazon S3 storage to be able to upload files on your blog. Set Heroku config vars.

heroku config:set PROVIDER=AWS
heroku config:set AWS_ACCESS_KEY_ID=<your_aws_access_key_id>
heroku config:set AWS_SECRET_ACCESS_KEY=<your_aws_secret_access_key>
heroku config:set AWS_BUCKET=<your_aws_bucket_name>

Next, you need to update Gemfile. You should remove the mysql2 and sqlite3 gems, set the Ruby version, and add rails_12factor. The top of your Gemfile should look something like this:

source ''

ruby '2.4.3' # Or whichever version you're running
gem 'pg'
gem 'rails_12factor'

gem 'rails', '~> 5.2.0'

Next, to regenerate the Gemfile.lock, run:

bundle install

Commit your updated Gemfile and Gemfile.lock:

git commit -am 'Update bundle for Heroku'

Create a file Procfile containing the following:

web: bundle exec puma -C config/puma.rb

Commit your new Procfile:

git add Procfile
git ci -m 'Tell Heroku how to run Rails'

You also need to set Rails' secret key base. Generate one using rake secret, then set the Heroku config var:

heroku config:set SECRET_KEY_BASE=<your_generated_secret>

Push the repository to Heroku.

When deploying for the first time, Heroku will automatically add a Database plugin to your instance and links it to the application. After the first deployment, don't forget to run the database migration and seed.

heroku run rake db:migrate db:seed

If application error has occurred after migration, you need to restart Heroku server.

heroku restart



Current Maintainers

Frédéric de Villamil blog:

Matijs van Zuijlen blog:

Thomas Lecavelier blog:

Yannick François blog:

Previous Maintainers & Notable Contributors

Cyril Mougel blog:

Davide D'Agostino blog:

Piers Cawley blog:

Scott Laird

Kevin Ballard blog:

Patrick Lenz

Seth Hall

And many more cool people who’ve one way or another contributed to Publify.

Original Author: Tobias Luetke blog:

Enjoy, The Publify team

You can’t perform that action at this time.