Fulcrum project planning tool fork
Fork and Evolution of the Fulcrum project - An agile project planning tool and Pivotal Tracker drop-in replacement
CM42 Central is an application to provide a user story based backlog management
system for agile development teams.
CM42-Central is a fork of the discontinued Fulcrum project.
The old project has not received anything new in the last couple of years, but our fork has evolved considerably
and we consider it the new upstream for all intents and purposes.
Some of the improvements we added since the end of 2015:
We already have more features in development and you can follow what needs to be built or fixed in the Issues page.
CM42-Central starts as a clone of Pivotal Tracker.
We want to make it a drop-in replacement first, by having all of the main functionalities and to later surpass it,
by making it not only smarter but also more user-friendly and easier to use than what we consider "incomplete"
commercial offerings such as Trello.
The principles that we believe in are:
First up, your system will need the
prerequisites for running Ruby on Rails installed
Once you have these:
# Checkout the project $ git clone git://github.com/Codeminer42/cm42-central.git $ cd cm42-central # copy and edit the configuration $ cp .env.sample .env $ cp config/database.yml.example config/database.yml # Install the project dependencies $ gem install bundler $ bundle install $ yarn install # If you want working with import option, have to activated the option memcached $ CentOS 6.4 - sudo yum install memcached $ Debian/Ubuntu - sudo apt-get install memcached $ MacOS - brew install memcached $ Option memcached - sudo /etc/init.d/memcached start - sudo /etc/init.d/memcached stop - sudo /etc/init.d/memcached restart # Set up the development database $ bundle exec rake fulcrum:setup db:setup # Start the local web server $ bundle exec foreman start -f Procfile.development
Or using docker:
# Checkout the project $ git clone git://github.com/Codeminer42/cm42-central.git $ cd cm42-central # copy and edit the configuration $ cp .env.sample .env $ cp config/database.yml.example config/database.yml # Prepare container $ docker compose build $ docker compose run --rm web yarn install $ docker compose run --rm web bundle exec rake db:create $ docker compose run --rm web bundle exec rake db:migrate $ docker compose run --rm web bundle exec rake db:seed # Up container $ docker compose up
To manage the postgres database, you can access http://adminer.cm42-central.localhost, using the following credentials:
If you need to cleanup your docker install, run:
$ docker compose down -v
You can use the Deploy button above or manually install like this:
You will need a Heroku Postgresql plan, and you will also need:
You will also need to add the buildpacks for Node and webpack-rails:
$ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-nodejs#v83 $ heroku buildpacks:add --index 3 https://github.com/febeling/webpack-rails-buildpack.git
You may want to skip recaptcha in development, for that you can manually add this to the environment:
Recaptcha.configuration.skip_verify_env << 'development'
To deploy it to Heroku, make sure you have a local copy of the project; refer
to the previous section for instructions. Then:
$ gem install heroku # Define secret tokens $ heroku config:set SECRET_TOKEN=`rake secret` SECRET_KEY_BASE=`rake secret` DEVISE_SECRET_KEY=`rake secret` # Create your app. Replace APPNAME with whatever you want to name it. $ heroku create APPNAME --stack cedar-14 # Set APP_HOST heroku config so outbound emails have a proper host # Replace APPNAME below with the value from `heroku create` $ heroku config:set APP_HOST=APPNAME.herokuapp.com # Define where the user emails will be coming from # (This email address does not need to exist) $ heroku config:set [email protected] # Tell Heroku to exclude parts of the Gemfile $ heroku config:set BUNDLE_WITHOUT='development:test:travis:mysql:sqlite' # How many stories a project will load at once (so very old, done stories, stay out of the first load), (optional, default is 300) $ heroku config:set STORIES_CEILING=300 # CDN URL - Go to AWS and create a CloudFront configuration (optional) $ heroku config:set CDN_URL=http://xpto.cloudfront.net # Google Recaptcha keys $ heroku config:set RECAPTCHA_SITE_KEY=xyz RECAPTCHA_SECRET_KEY=xyz # Add postgresql $ heroku addons:create heroku-postgresql:hobby-dev # Add Redis for Sidekiq $ heroku addons:create heroku-redis:hobby-dev # Add memcache to speed things up (optional) $ heroku addons:add memcachier:dev # Allow emails to be sent $ heroku addons:add mailgun:starter # Add Cloudinary $ heroku addons:create cloudinary:starter # Deploy the first version $ git push heroku master # Set up the database $ heroku run rake db:setup
Once that's done, you will be able to view your site at
The recommendation is to create a proper domain and add the herokuapp URL as the CNAME.
Below is an example of how you might go about translating to German.
Thats it! Ideally you should send your translation as a pull request so you
get credit for it, but if you do not wish to do this please send the file to
one of the mailing lists.
If we have already translated for your language, please take the time
to check the translation database is complete for your language. You can do
this by running the
rake i18n:missing_keys task. If you find any missing
keys for your language please add them.
To disable public registration you can set the enviroment variable
to true. If set to true, users will need to be invited to a project rather than being
able to self sign-up.
If you'd like to help:
unstartedlabels. If a feature you'd like to work on isn't there, add an issue.
Here are some general guidelines for contributing:
bundle exec rspec spec/to check the Rails test suite is green. You will need Chrome installed to run the integration tests.
Copyright 2011-2015, Malcolm Locke.
Copyright 2015-2022, Codeminer42.
CM42-Central is made available under the Affero GPL license version 3, see