This repository contains all of the code that runs on worldcubeassociation.org.
- Install Vagrant, which requires VirtualBox.
git clone https://github.com/cubing/worldcubeassociation.org
- Clone this repo! (And navigate into it,cd worldcubeassociation.org
)git submodule update --init --recursive
- Initialize submodules.(cd WcaOnRails; bundle install) && pre-commit install
- Set up git pre-commit hook. Optional, but very useful.
vagrant up noregs
- Once the VM finishes initializing (which can take some time), the website will be accessible at http://localhost:2331.- Note: Starting up the
noregs
vm is much faster than theall
vm, because the dependencies required to build the WCA regulations take ages to install. - Note: There are some minor issues with development on Windows.
- Note: Starting up the
- All emails will be accessible at
http://localhost:2332
.
- We don't support development with sqlite3, you'll need to set up MySQL.
- Mailcatcher is a good tool for catching emails in development.
- Provisioning relies upon SSH agent forwarding, so make sure you've set up an SSH key for [email protected] in order to rsync secrets.
time ssh -A [email protected] 'sudo wget https://raw.githubusercontent.com/cubing/worldcubeassociation.org/master/scripts/wca-bootstrap.sh -O /tmp/wca-bootstrap.sh && sudo -E bash /tmp/wca-bootstrap.sh staging/production'
ssh -A [email protected] worldcubeassociation.org/scripts/deploy.sh pull_latest rebuild_regs rebuild_rails
- Production secrets are stored in an encrypted chef data bag at
chef/data_bags/secrets/production.json
.- Show secrets:
knife data bag show secrets production -c /etc/chef/solo.rb --secret-file secrets/my_secret_key
- Edit secrets:
knife data bag edit secrets production -c /etc/chef/solo.rb --secret-file secrets/my_secret_key
- Show secrets: