Start with a deck of wiki cards. Develop it into a rich web app.
Clone or download
Latest commit 27fd791 Oct 11, 2018
Failed to load latest commit information.
card resolved conflicts in all/error.rb Oct 11, 2018
cardname Add ancestors method to cardname Jul 10, 2018
decko-rails don't use git in gemspec Nov 22, 2017
decko raise all rendering errors in test env Sep 28, 2018
docker Remove db container, comments to use standard image Jun 30, 2015
.cloc_exclude cloc_exclude Nov 10, 2017
.codeclimate-rubocop.yml (as discussed) rubocop, fetch_name, and codename tweaks Oct 27, 2017
.codeclimate.yml fix scss_spec.rb Jun 13, 2018
.gitattributes Update .gitattributes: exclude jasmine javascript Nov 10, 2017
.gitignore add follow_link_sepc Sep 12, 2018
.gitmodules try using decko-commons/bootswatch for submodule May 24, 2018
.hound.yml add hound config files Sep 27, 2015
.rubocop.yml turned off mixinusage style cop, worked on other style violations May 14, 2018
.rubocop_todo.yml fixed email template field display in html Nov 6, 2017
.ruby-style.yml .ruby-style.yml: don't enforce documentation for migrations May 2, 2018
.simplecov fixed schema stamp problem Jul 26, 2014
.tm_properties exclude tmp directories Jan 25, 2016 add changelog for 1.17.0 Jan 7, 2016
CONTRIBUTING.rdoc Merge branch 'master' into update_readme May 21, 2018
Dockerfile Inherit the CMD setting instead of setting it again Jul 11, 2015 remove mod prefixes in code Aug 12, 2016
README.rdoc fixed broken cardname spec, README link, etc. Aug 4, 2017
Rakefile add cardname gem pushing to Rakefile Sep 27, 2017


Decko: you hold the cards

Gem Version


Decko (formerly known as “Wagn”) makes serious web development fun.

“Deckers” have used Decko to create open community sites, private knowledge management sites, public proposal submission sites with private back-ends for review, project management systems, wikis, blogs, journals, forums, and more.

Install Decko, open a webpage, and get started. With Decko's wiki-inspired building blocks, you can collaborate from day one on content, design, and structure create elegant web systems on the fly. And ruby developers can take these creations even further with Decko's development framework. Decko's innovative Mods API supports boundless creativity while integrating seamlessly with structures created on the site.

Try it out!

System Requirements


1. install dependencies


version 2.3.1 or higher


version 1.0 or higher


A database engine

Either MySQL or PostgreSQL

A JavaScript runtime

Node.js or other

2. install the gem

gem install decko

Watch carefully for errors!

3. create a new deck

decko new MY_DECK


-f, [--force]                            # Overwrite files that already exist
-p, [--pretend], [--no-pretend]          # Run but do not make any changes
-q, [--quiet], [--no-quiet]              # Suppress status output
-s, [--skip], [--no-skip]                # Skip files that already exist
-m, [--mod-dev], [--no-mod-dev]          # Prepare deck for mod development
-c, [--core-dev], [--no-core-dev]        # Prepare deck for core development
-g, [--gem-path=GEM-PATH]                # Path to local decko repository (Default, use env DECKO_GEM_PATH)
-i, [--interactive], [--no-interactive]  # Prompt with dynamic installation options

4. create / seed database

Edit the config/database.yml file as necessary. More about database configuration at

Then run

decko seed create and seed the database


-p, --production                 decko:seed production database (default)
-t, --test                       decko:seed test database
-d, --development                decko:seed development database
-a, --all                        decko:seed production, test, and development database

4. start your server

To fire up the default, built-in WEBrick server, just run:

decko server

…and point your browser to localhost:3000 (unless otherwise configured).


-p, [--port=port]                        # Runs Decko on the specified port - defaults to 3000.
-b, [--binding=IP]                       # Binds Decko to the specified IP - defaults to 'localhost' in development and '' in other environments'.
-c, [--config=file]                      # Uses a custom rackup configuration. (default:
-d, [--daemon], [--no-daemon]            # Runs server as a Daemon.
-e, [--environment=name]                 # Specifies the environment to run this server under (development/test/production).
-P, [--pid=PID]                          # Specifies the PID file. (efault: tmp/pids/
    [--early-hints], [--no-early-hints]  # Enables HTTP/2 early hints.

For more information, see


Standard Upgrade

1. Backups

Always back up your database and uploaded files.

2. Update Libraries

From your decko root directory run:

bundle update

3. Update Database

Run the following:

decko update

4. Restart your server.

Upgrade to Decko from Wagn

1. update references to “wagn” in file content

In your decko's root directory, edit Gemfile, config/application.rb, and config/routes.rb, and script/wagn, replacing “wagn” with “decko”. (Keep the same capitalization pattern.)

2. update references to “wagn” in file names.

From your decko root directory run:

mv script/wagn script/decko

3. continue as with Standard Upgrade

See above.

Upgrade pre-gem Wagn site

First check the Wagn/Decko version of your existing site.

Version 1.10 or newer

  1. Create a new deck using steps 1 and 2 from the installation section above.

  2. Copy config/database.yml from the old site to the new one.

  3. Copy the old local/files contents to the new “files” directory.

  4. If you have edited wagn.yml in your old site, make the corresponding changes to the new config/application.rb file.

  5. Follow the standard upgrade procedure above.

Older than Version 1.10

First update your Wagn to version 1.10 via the old update mechanisms, and then follow the directions above.

More Resources

If you're new to Decko, you'll find lots more info at

Installation problems? Installation:

If you're looking to go deep into the code, start with

Thinking about contributing to Decko? here