• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 14 years ago
  • Updated about 14 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Simple Ruby CMS

Fikus - The Simple Ruby CMS

This is Fikus, a simple content management system written in the Ruby programming language.

"Fikus dreamed a dream for me / It cost me nothing it was free / He dreamed of walking in the sand / Of blossoms forming in his hand" / -- from Fikus, by Phish

About

Features

  • Simple admin interface
  • Markdown format for page contents
  • Easily extensible using the features of Padrino, Sinatra, and Rack
  • Data stored in MongoDB
  • Built-in page caching for performance
  • Ability to specify different layouts per page

Why Fikus?

I was in need of a very simple content management system. I wanted to quickly author somewhat static pages together for the web, but I didn't want to deal with deploying the site, uploading files, or dealing with fitting my content in templates. That ruled out a lot of existing content management systems that did too much for what I wanted.

I also wanted a chance to play with the Padrino framework, which is a MVC architecture framework built on top of Sinatra.

Initially I looked at a CMS like Nesta but decided I wanted my pages (or documents) stored in a document database and a simple admin interface for editing them. I liked the idea of using Markdown, so I decided to create something that fit my needs.

Fikus was born.

What does Fikus mean?

Think of it as a tree, but I was listening to Phish when starting the project. That's all it is.

Installation

The easiest way to get started is to fork the main repository on Github:

http://github.com/bratta/fikus

Now you can clone it and make your own edits easily, and even send pull requests for any neato features you've added or bugs you've squashed.

Pre-requisites

You're going to need ruby 1.8.7 (ish--may work on 1.8.6, but not tested), RubyGems >= 1.3.6, and a few gems installed first:

gem install bundler
gem install padrino --version 0.9.14

You're also going to need access to a MongoDB database, and rack-compatible webserver when you're ready to deploy this puppy.

Go Go Go!

Now that' you've got the pre-reqs and the code, let's bootstrap it:

  • Edit the config/database.rb to match your MongoDB setup
  • Edit the config/fikus.yml to match your site specifics

Let's get our gems installed and create a default user:

cd fikus
bundle install
padrino rake seed

That will create a default admin user for you. Take the given info, login via the admin URL at /admin and make sure you change your account info!

Do it do it do it!

Next, boot it up:

padrino start

And in your web browser, hit the URL: http://localhost:3000/admin

Now you can add some pages and be good to go!

Customization

You can edit your site layouts in app/views/layouts. Add new templates there and you will be able to choose it when creating/editing your pages. The layout markup is HAML so have fun!

All static assets need to go in public/.

PLEASE NOTE:

Your default home page will be whatever you specify WITHOUT a path. Anything else will show up at http://localhost:3000/page_path

Deployment notes

Engine Yard AppCloud

This application works on the Engine Yard AppCloud. The recommended method of deployment is as follows:

Create your environment with Ruby 1.8.7 and use Unicorn (recommended) or Passenger. Add the bundler gem and padrino to your application's required gems. The "bundle install" will do the rest.

Fork Engine Yard's chef recipe repository here:

http://github.com/engineyard/ey-cloud-recipes

Then copy the "chef/fikus" folder in this repository over to the ey-cloud-recipes/cookbooks/fikus folder. You will want to edit the fikus.yml file there to your liking. Then you will need to add the mongodb and fikus recipes to cookbooks/main/recipes/default.rb:

require_recipe "mongodb"
require_recipe "fikus"

Commit the changes and apply using the "ey" command. For more information, please see the Chef documentation on the Engine Yard website:

http://docs.engineyard.com/appcloud/howtos/customizations/custom-chef-recipes

The MongoDB recipe by default installs to a utility instance named mongodb_master. So if you want it on a single instance some hacking is required. I heartily recommend against having MongoDB on the same instance as your application and MySQL.

Boot your cluster, skip running migrations, and run "padrino rake seed" from the application's directory.

Heroku

This application will work with Heroku, provided your environment is set to use a cache_strategy of 'varnish' in your config/fikus.yml file.

Then it is a simple matter of doing this:

heroku create --stack bamboo-ree-1.8.7
heroku addons:add mongohq:free
git push heroku master
heroku rake seed

After that, you can login by going to http://myappname.heroku.com/admin and entering the credentials set up for you.

Get involved

Getting involved is a simple matter of forking the code and submitting a pull request. I'll accept any patches that make sense. If you want to become an active developer, get in touch with me on github and I'll get you access to commit directly.

Issues

We're on Lighthouse. I'd prefer tickets going there:

http://fikus.lighthouseapp.com/projects/59205-fikus/overview

More Repositories

1

googlevoiceapi

A Ruby gem for interacting with Google Voice
Ruby
37
star
2

mongodb-mac-startup

Basic startup script for MongoDB on Mac OS X
Shell
22
star
3

mactts

Ruby wrapper around the Mac OS X say command
Ruby
11
star
4

life_music

The Music of Life: Generative Music with Ruby
Ruby
7
star
5

mongobench

Scripts for making MongoDB more fun to administer
Ruby
6
star
6

shiny_tracker

PokΓ©mon shiny tracker
JavaScript
6
star
7

ruby-httperf-tools

Ruby-based tools for making working with httperf easier
Ruby
4
star
8

leetspeak

Add fun leetspeak conversion capabilities to the Ruby String class
Ruby
3
star
9

feedspeaker

Use Mac TTS to speak your RSS feeds to you
Ruby
3
star
10

rubyspell

Pure-ruby spell checker and suggestion engine
Ruby
2
star
11

tsg

Simple Merb CMS for driving TimGourley.com
Ruby
2
star
12

spotfinder

Gowalla Spotfinder sample app for OK.rb
JavaScript
2
star
13

stitches

Where my stitches at? This is a row counter for crochet and knit
JavaScript
2
star
14

rails-templates

Bratta's templates for Rails 2.3
Ruby
2
star
15

dotfiles

My dotfiles. Work in progress. Use wisely.
Shell
2
star
16

propane_dark

Dark and Simple, a theme for Propane
2
star
17

jekyll-presentation

OK.rb presentation over Jekyll
Ruby
2
star
18

standup

Basic Notion tool to generate a Slack-ready daily standup message
Ruby
2
star
19

mod_EmeraldMurderBlock

Simple Minecraft mod for ModLoader
Java
1
star
20

presentations

My various presentations
1
star
21

schlurp

Share your social profile
Ruby
1
star
22

bole

Simple Ruby File Logger - Wrapper around the stdlib Logger with some extra goodies added on
Ruby
1
star
23

konfigyu

Easily manage YAML config files for your application
Ruby
1
star
24

okrb-scrabble

puzzlenode completed during ok.rb
Ruby
1
star
25

SimpleSynth

DIY Audio with Swift and AudioKit - Example iOS app
Swift
1
star
26

inform-games

Interactive Fiction games I create
1
star
27

file-upload-demo

Rails 5.2 ActiveStorage sample code
Ruby
1
star
28

rmmz-plugins

Plugins for RPG Maker MZ
JavaScript
1
star
29

interactive-story

Interactive Story - MongoDB Edition - sample project
Ruby
1
star
30

geekwriters

Geek Writers Jekyll Blog
JavaScript
1
star
31

Navigatron

Example iOS App illustrating Tab Bar and Navigation Controller interaction (Complete)
Swift
1
star
32

okrb_blog

okrb test blog
Ruby
1
star