💥 Catapult is a pre-defined website and workflow management platform built from leading and affordable technology.
🌎 Our mission is to create a lean platform that orchestrates every DevOps task of a common website's life-cycle.
🚀 Our vision is to afford developers an accelerated path to reducing risk and increasing performance at minimal cost.
Do you need a website and workflow management platform? Here are a few triggers.
- Production is down.
- We need a test site.
- Why is this costing so much?
- Are my environments safe?
- Is my website backed up?
- Can I easily scale my website for more traffic?
- What is my uptime?
Go ahead, give Catapult a shot.
Security is very important to us. If you have any issue regarding security, please disclose the information responsibly by sending an email to security@devopsgroup.io and not by creating a GitHub issue.
Catapult leverages the following technologies and technology services to implement key components of DevOps.
- Configuration Management
- Catapult
- Encryption - GnuPG
- Source Code Management
- Catapult - Git (via GitHub)
- Websites - Git (via GitHub or Bitbucket)
- Environment Management
- Vagrant
- Development Virtualization
- VirtualBox
- Cloud Hosting
- DigitalOcean
- DNS Management
- CloudFlare
- Continuous Integration
- Automated Deployments - Bamboo
- Build Server - Amazon Web Services (AWS)
- Monitoring
- Server Resources and Uptime - New Relic Servers
- Application - New Relic APM
- Browser - New Relic Browsers
- Website Uptime - *New Relic Synthetics
* This technology is currently not integrated into Catapult due to limitations of the service - manual configuration is required.
Catapult supports the following software:
- Any PHP project compatible with PHP 5.4
- as limited by CentOS 7.2
- CodeIgniter 2.x
- CodeIgniter 3.x
- Drupal 6.x, Drupal 7.x
- as required by Drush 7.0.0
- SilverStripe 2.x
- WordPress 3.5.2+, WordPress 4.x
- as required by WP-CLI
- XenForo 1.x
The free market and competition is great - it pushes the envelope of innovation. Here, we compare similar platforms to shed light on where we are and we're headed.
| Feature | Catapult | Pantheon |
|---|---|---|
| Source | Open | Closed |
| Base Monthly Cost | $40 | $400 |
| Approach | Virtual Machine | Container |
| Methodology | SCRUM | ❌ |
| Workflow | Git Flow | Git Flow |
| Environments | LocalDev, Test, QC, Production | Multidev, Dev, Test, Live |
| Scaling | *Resize | Smooth |
| Development Environment | Unlimited Local | 5 Cloud |
| Dashboard | CLI & **Web-based | Web-based |
| Git | GitHub & Bitbucket | Proprietary |
| DNS | CloudFlare | ❌ |
| HTTPS | Free | $30/mo |
| Monitoring | New Relic | Proprietary |
| Supported Software | Numerous | 2 |
* Catapult rolls out new features on a regular basis - this feature is highlighted for improvement or a future release. See an error or have a suggestion? Email competition@devopsgroup.io
Catapult requires a Developer Setup, Instance Setup, and Services Setup as described in the following sections.
Please Note: It is advised to turn off any antivirus software that you may have installed during Developer Setup and Usage of Catapult, because necessary tasks such as forwarding ports and writing hosts files may be blocked.
Catapult is controlled via Vagrant and the command line of a Developer's computer - below is a list of required software.
- Vagrant
- Please download and install from https://www.vagrantup.com/downloads.html
- VirtualBox
- Please download and install from https://www.virtualbox.org/wiki/Downloads
- SourceTree
- Please download and install from https://www.sourcetreeapp.com/
- Sublime Text 3
- Please download and install from http://www.sublimetext.com/3
- GPG2
- Using OSX ? Please download and install GPG Suite https://gpgtools.org
- Using Windows? Please download and install Gpg4win from http://gpg4win.org/download.html
Catapult is quick to setup. Fork the Github repository and start adding your configuration.
- Fork Catapult
- Fork https://github.com/devopsgroup-io/catapult and clone via SourceTree or the git utility of your choice.
- Vagrant Plugins
- SSH Key Pair
- You will need to create a passwordless SSH key pair that will drive authentication for Catapult.
- For instructions please see https://help.github.com/articles/generating-ssh-keys/
- Place the newly created passwordless SSH key pair id_rsa and id_rsa.pub in the ~/secrets/ folder.
- You will need to create a passwordless SSH key pair that will drive authentication for Catapult.
- GPG Key
- You will need to create your team's gpg_key that will be the single key that encrypts all of your configuration and secrets for your instance.
- NEVER SHARE THE KEY WITH ANYONE OTHER THAN YOUR TEAM.
- Spaces are not permitted and must be at least 20 characters.
- To create a strong key, please visit https://xkpasswd.net/
- It is recommended to print a QR code of the key to distribute to your team, please visit http://educastellano.github.io/qr-code/demo/
- Remember; security is 99% process and 1% technology.
- You will need to create your team's gpg_key that will be the single key that encrypts all of your configuration and secrets for your instance.
- GPG Edit Mode
- When GPG Edit Mode is enabled (disabled by default) the following files are encrypted using your GPG Key:
- ~/secrets/id_rsa as ~/secrets/id_rsa.gpg
- ~/secrets/id_rsa.pub as ~/secrets/id_rsa.pub.gpg
- ~/secrets/configuration.yml as ~/secrets/configuration.yml.gpg
- To enable GPG Edit Mode, set
~/secrets/configuration-user.yml["settings"]["gpg_edit"]to true. - Once gpg_edit is set to true and while on your fork's develop branch, run
vagrant status, this will encrypt your configuration that you will then be able to commit and push safely to your public Catapult fork.
- When GPG Edit Mode is enabled (disabled by default) the following files are encrypted using your GPG Key:
Catapult uses several third-party services to pull everything off - below is a list of the required services and sign-up and configuration steps.
| Service | Description | Monthly Cost |
|---|---|---|
| Cloud Hosting: | ||
| DigitalOcean | Test Web Server | *$5+ |
| DigitalOcean | Test Database Server | *$5+ |
| DigitalOcean | QC Web Server | *$5+ |
| DigitalOcean | QC Database Server | *$5+ |
| DigitalOcean | Production Web Server | *$5+ |
| DigitalOcean | Production Database Server | *$5+ |
| Repositories: | ||
| Bitbucket | Private Repositories | Free |
| GitHub | Public Repositories | Free |
| Continuous Integration: | ||
| Amazon Web Services | Build Server | *$0+ |
| Bamboo | Continuous Integration | $10 |
| DNS: | ||
| CloudFlare | Cloud DNS | Free |
| Monitoring: | ||
| New Relic | Application, Browser, and Server Monitoring | Free |
| Total | $40+ | |
| * Depending on load, resources may need to be increased. However, a few websites with builds running irregularly will not incur over a couple dollars more per month. |
- Cloud Hosting:
- DigitalOcean sign-up and configuration
- Create an account at http://digitalocean.com
- Get a $10 credit and give us $25 once you spend $25 https://www.digitalocean.com/?refcode=6127912f3462
- Create a Personal Access Token at https://cloud.digitalocean.com/settings/applications named "Vagrant" and place the token value at
~/secrets/configuration.yml["company"]["digitalocean_personal_access_token"] - Add your newly created id_rsa.pub from ~/secrets/id_rsa.pub key in https://cloud.digitalocean.com/settings/security named "Vagrant"
- Create an account at http://digitalocean.com
- DigitalOcean sign-up and configuration
- Repositories:
Bitbucket provides free private repositories and GitHub provides free public repositories, you will need to sign up for both. If you already have Bitbucket and GitHub accounts you may use them, however, it's best to setup a machine user if you're using Catapult with your team.- Bitbucket sign-up and configuration
- Create an account at https://bitbucket.org
- Place the username (not the email address) that you used to sign up for Bitbucket at
~/secrets/configuration.yml["company"]["bitbucket_username"] - Place the password of the account for Bitbucket at
~/secrets/configuration.yml["company"]["bitbucket_password"]
- Place the username (not the email address) that you used to sign up for Bitbucket at
- Add your newly created id_rsa.pub from ~/secrets/id_rsa.pub key in https://bitbucket.org/account/user/`your-user-here`/ssh-keys/ named "Catapult"
- Create an account at https://bitbucket.org
- GitHub sign-up and configuration
- Create an account at https://github.com
- Place the username (not the email address) that you used to sign up for GitHub at
~/secrets/configuration.yml["company"]["github_username"] - Place the password of the account for GitHub at
~/secrets/configuration.yml["company"]["github_password"]
- Place the username (not the email address) that you used to sign up for GitHub at
- Add your newly created id_rsa.pub from ~/secrets/id_rsa.pub key in https://github.com/settings/ssh named "Catapult"
- Create an account at https://github.com
- Bitbucket sign-up and configuration
- Automated Deployments:
- Amazon Web Services (AWS) EC2 sign-up and configuration (Required for Bamboo)
- Create an AWS account https://portal.aws.amazon.com/gp/aws/developer/registration
- Sign in to your new AWS console https://console.aws.amazon.com
- Go to your AWS Identity and Access Management (IAM) Users Dashboard https://console.aws.amazon.com/iam/home#users
- Create a "Bamboo" user.
- Place the Access Key ID at
~/secrets/configuration.yml["company"]["aws_access_key"] - Place the Secret Access Key at
~/secrets/configuration.yml["company"]["aws_secret_key"]
- Go to your AWS Identity and Access Management (IAM) Groups Dashboard https://console.aws.amazon.com/iam/home#groups
- Create a "Bamboo" group.
- Attach the "AmazonEC2FullAccess" policy to the "Bamboo" group.
- Go back to your AWS Identity and Access Management (IAM) Groups Dashboard https://console.aws.amazon.com/iam/home#groups
- Select your newly created "Bamboo" group.
- Select Add Users to Group and add your newly created "Bamboo" user.
- Bamboo sign-up and configuration
- Create a Bamboo Cloud account at https://www.atlassian.com/software/bamboo
- Sign in to your new custom Bamboo instance https://[your-name-here].atlassian.net
- Place your Bamboo base URL at
~/secrets/configuration.yml["company"]["bamboo_base_url"], the format should be https://[your-name-here].atlassian.net/builds/ - Place your Bamboo username (usually admin) at
~/secrets/configuration.yml["company"]["bamboo_username"] - Place your Bamboo password (usually admin) at
~/secrets/configuration.yml["company"]["bamboo_password"] - Click the settings gear from the top right in the header and select Elastic instances:
- Click Configuration from the left
- Click Edit configuration
- Amazon Web Services configuration
- Set your AWS EC2 "Bamboo" Access Key ID and Secret Access Key from
~/secrets/configuration.yml["company"]["aws_access_key"]and~/secrets/configuration.yml["company"]["aws_secret_key"] - Region:
US East (Northern Virginia)
- Set your AWS EC2 "Bamboo" Access Key ID and Secret Access Key from
- Automatic elastic instance management
- Elastic instance management:
Custom - Idle agent shutdown delay:
10 - Allowed non-Bamboo instances:
1 - Maximum number of instances to start at once:
2 - Number of builds in queue threshold:
1 - Number of elastic builds in queue threshold:
1 - Average queue time threshold:
2
- Elastic instance management:
- Click Save
- Amazon Web Services configuration
- Click the settings gear from the top right in the header and select Elastic instances:
- Click Image configurations from the left
- Disable all of the elastic images
- Create elastic image configuration:
- Name:
Catapult - AMI ID:
ami-eb5b8080 - Instance type:
T2 Burstable Performance Micro - Availability Zone:
Chosen by EC2 - Product:
Linux/UNIX - Click Save
- Name:
- Click Image configurations from the left
- Click Create > Create a new plan from the header:
- Create Catapult Project and create TEST Plan
- Project and build plan name
- Project > New Project
- Project name: Catapult
- Project key: CAT
- Plan name: TEST
- Plan key: TEST
- Plan description:
- Link repository to new build plan
- Repository host: Other > None
- Project and build plan name
- Create QC Plan
- Project and build plan name
- Project: Catapult
- Plan name: QC
- Plan key: QC
- Plan description:
- Link repository to new build plan
- Repository host: Other > None
- Project and build plan name
- Create PROD Plan
- Project and build plan name
- Project: Catapult
- Plan name: PRODUCTION
- Plan key: PROD
- Plan description:
- Link repository to new build plan
- Repository host: Other > None
- Project and build plan name
- Create Catapult Project and create TEST Plan
- Amazon Web Services (AWS) EC2 sign-up and configuration (Required for Bamboo)
- DNS:
- CloudFlare sign-up and configuration
- Create a CloudFlare account at https://www.cloudflare.com
- Sign in to your new CloudFlare account
- Visit your My Account section at https://www.cloudflare.com/a/account/my-account and scroll down to your API Key and place the token value at
~/secrets/configuration.yml["company"]["cloudflare_api_key"] - Place the email address of the email address that you used to sign up for CloudFlare at
~/secrets/configuration.yml["company"]["cloudflare_email"]
- CloudFlare sign-up and configuration
- Monitoring:
- New Relic sign-up and configuration
- Create a New Relic account at http://newrelic.com/
- Sign in to your New Relic account
- Go to your Account Settings > Integrations > API keys.
- Generate and place your REST API key at
~/secrets/configuration.yml["company"]["newrelic_api_key"] - Go to your Account Settings > Account > Summary.
- Place your License key at
~/secrets/configuration.yml["company"]["newrelic_license_key"]
- New Relic sign-up and configuration
- Verify Configuration:
- To verify all of the configuration that you just set, open your command line and cd into your fork of Catapult, then run
vagrant status. Catapult will confirm connection to all of the Services and inform you of any problems.
- To verify all of the configuration that you just set, open your command line and cd into your fork of Catapult, then run
To use Catapult you will need to Provision Environments, Configure Automated Deployments, then Provision Websites.
| Environment | LocalDev | Test | QC | Production |
|---|---|---|---|---|
| Server Provider | Locally via VirtualBox | Hosted via DigitalOcean | Hosted via DigitalOcean | Hosted via DigitalOcean |
| Server Provisioning | Manually via Vagrant | Manually via Vagrant | Manually via Vagrant | Manually via Vagrant |
For each Environment you will need to:
- Web Servers
vagrant up ~/secrets/configuration.yml["company"]["name"]-dev-redhatvagrant up ~/secrets/configuration.yml["company"]["name"]-test-redhatvagrant up ~/secrets/configuration.yml["company"]["name"]-qc-redhatvagrant up ~/secrets/configuration.yml["company"]["name"]-production-redhat
- Database Servers
vagrant up ~/secrets/configuration.yml["company"]["name"]-dev-redhat-mysqlvagrant up ~/secrets/configuration.yml["company"]["name"]-test-redhat-mysqlvagrant up ~/secrets/configuration.yml["company"]["name"]-qc-redhat-mysqlvagrant up ~/secrets/configuration.yml["company"]["name"]-production-redhat-mysql
Once the Web and Database Servers are up and running, it's then time to configure your Bamboo Catapult project's TEST, QC, and PROD plans.
- Sign in to your new custom Bamboo instance https://[your-name-here].atlassian.net
- Click Build > All build plans from the header:
- From the Build Dashboard and under the Catapult project:
- Configure Catapult Project TEST Plan
- Click the edit icon for the TEST plan
- From the Stages tab, select Default Job
- Remove all tasks that may have been added by default during initial setup
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["test"]["servers"]["redhat"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "test" "https://github.com/[your-name-here]/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "apache" - Click Save
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["test"]["servers"]["redhat_mysql"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "test" "https://github.com/[your-name-here]/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "mysql" - Click Save
- Configure Catapult Project QC Plan
- Click the edit icon for the QC plan
- From the Stages tab, select Default Job
- Remove all tasks that may have been added by default during initial setup
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["qc"]["servers"]["redhat"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "qc" "https://github.com/[your-name-here]/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "apache" - Click Save
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["qc"]["servers"]["redhat_mysql"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "qc" "https://github.com/[your-name-here]/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "mysql" - Click Save
- Configure Catapult Project PRODUCTION Plan
- Click the edit icon for the PRODUCTION plan
- From the Stages tab, select Default Job
- Remove all tasks that may have been added by default during initial setup
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["production"]["servers"]["redhat"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "production" "https://github.com/[your-name-here]/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "apache" - Click Save
- Click Add task
- Search for SSH Task and select it
- Host:
~/secrets/configuration.yml["environments"]["production"]["servers"]["redhat_mysql"]["ip"] - Username:
root - Authentication Type:
Key without passphrase - SSH Key:
~/secrets/id_rsa - SSH command:
bash /catapult/provisioners/redhat/provision.sh "production" "https://github.com/your-name-here/catapult" "~/secrets/configuration-user.yml["settings"]["gpg_key"]" "mysql" - Click Save
- Configure Catapult Project TEST Plan
Adding websites to Catapult is easy. The only requirement is that the website needs to be contained in its own repo on GitHub or Bitbucket. Websites are then added to configuration.yml, a minimal addition looks like this:
websites:
apache:
- domain: devopsgroup.io
repo: git@github.com:devopsgroup-io/devopsgroup-io.git
The following options are available:
- domain:
example.com- the domain name of what the website is/will be in Production
- a maximum of one subdomain is supported (subdomain.example.com)
- this drives the domains of LocalDev (via hosts file) and Test, QC, Production (via CloudFlare)
- dev.example.com, test.example.com, qc.example.com, example.com
- domain_tld_override:
mycompany.com- a domain name that will override the tld of the domain for when you do not have control of the domain (example.com), but still need a LocalDev and externally accessible Test and QC instance
- this drives the domains of LocalDev (via hosts file) and Test, QC, Production (via CloudFlare)
- PLEASE NOTE: When removing this option from a website with
software, you need to manually replace URLs in the database respective to thesoftware_workflowoption.- ie
vagrant ssh mycompany.com-test-redhat-mysql php /catapult/provisioners/redhat/installers/wp-cli.phar --allow-root --path="/var/www/repositories/apache/example.com/(webroot if applicable)" search-replace ":\/\/(www\.)?(dev\.|test\.)?(example\.com\.mycompany\.com)" "://example.com" --regex
- ie
- PLEASE NOTE: When removing this option from a website with
- dev.example.com, test.example.com, qc.example.com, example.com are replaced by dev.example.com.mycompany.com, test.example.com.mycompany.com, qc.example.com.mycompany.com, example.com.mycompany.com
- force_auth:
example- forces http basic authentication in Test, QC, and Production
exampleis both the username and password
- force_auth_exclude:
["test","qc","production"]- array of exclusions exclusive to the force_auth option
- force_https:
true- rewrite all http traffic to https
- repo:
git@github.com:devopsgroup-io/devopsgroup-io.git- GitHub and Bitbucket over SSH are supported, HTTPS is not supported
- software:
codeigniter2- generates codeigniter2 database config file ~/application/config/database.php, restores database
codeigniter3- generates codeigniter3 database config file ~/application/config/database.php, restores database
drupal6- generates drupal6 database config file ~/sites/default/settings.php, resets Drupal admin password, rsyncs ~/sites/default/files, restores database
drupal7- generates drupal7 database config file ~/sites/default/settings.php, resets Drupal admin password, rsyncs ~/sites/default/files, restores database
silverstripe- generates silverstripe database config file ~/mysite/_config.php, restores database
wordpress- generates WordPress database config file ~/installers/wp-config.php, resets WordPress admin password, rsyncs ~/wp-content/uploads, restores database
xenforo- generates xenforo database config file ~/library/config.php, restores database
- software_dbprefix:
wp_- usually used in Drupal for multisite installations (
wp_is required for base Wordpress installs, Drupal has no prefix by default)
- usually used in Drupal for multisite installations (
- software_workflow:
downstream- Production is the source for the database and upload directories of drupal and wordpress
- this option is used when maintaining a website
- see the below chart for more details
upstream- Test is the source for the database and upload directories of drupal and wordpress
- this option is used when launching a new website
- see the below chart for more details
- webroot:
www/- if the webroot differs from the repo root, specify it here
- must include the trailing slash
Once you add a new website to configuration.yml, it's time to test in LocalDev:
vagrant provision ~/secrets/configuration.yml["company"]["name"]-dev-redhatvagrant provision ~/secrets/configuration.yml["company"]["name"]-dev-redhat-mysql
Once you're satisfied with new website in LocalDev, it's time to commit configuration.yml.gpg to your Catapult fork's develop branch, this will kick off a automated deployment of Test. Once you're satisfied with the website in Test, it's time to create a pull request from your Catapult fork's develop branch into release - once the pull request is merged, this will kick off an automated deployment to QC. Once you're satisfied with the website in QC, it's time to create a pull request from your Catapult fork's release branch into master. Production does not have any automated deployments, to deploy your website to Production it's time to login to Bamboo and press the deployment button for Production.
Once a website exists in the upstream environments (Test, QC, Production), automated deployments will kick off if changes are detected on their respected branches (see chart below). The same workflow of moving a website upstream, exists when you make changes to a specific website's repository.
| Environment | LocalDev | Test | QC | Production |
|---|---|---|---|---|
| Running Branch | develop | develop | release | master |
| New Website Provisioning | Manually via Vagrant | Automatically via Bamboo (new commits to develop) | Automatically via Bamboo (new commits to release) | Manually via Bamboo |
| Downstream Database | Restore from develop ~/_sql folder of website repo | Restore from develop ~/_sql folder of website repo | Restore from release ~/_sql folder of website repo | Backup to develop ~/_sql folder of website repo during deploy |
| Upstream Database | Restore from develop ~/_sql folder of website repo | Backup to develop ~/_sql folder of website repo during deploy | Restore from release ~/_sql folder of website repo | Restore from master ~/_sql folder of website repo |
| Downstream Untracked Files | rsync files from Production | rsync files from Production | rsync files from Production | -- |
| Upstream Untracked Files | rsync files from Test | -- | rsync files from Test | rsync files from Test |
| Deployments | Manually via vagrant provision |
Automatically via Bamboo (new commits to develop) | Automatically via Bamboo (new commits to release) | Manually via Bamboo |
Once you Provision Websites and it's time to work on a website, there are a few things to consider:
- Using the
software_workflowflag forupstreamwebsites is great, you can develop your code in LocalDev then have anyone in your company enter content into Drupal, Wordpress, etc. However, in the cercumstance that you absolutely need to move your LocalDev databaseupstream, it's as easy as saving a .sql dump to your website's repository develop branch under the _sql folder with today's date (following the YYYYMMDD.sql format). You can thenvagrant rebuildthe~/secrets/configuration.yml["company"]["name"]-test-redhat-mysqlserver and it will restore from your new sql dump.
Below is a list of known limitations with Catapult, if you're still having issues with Catapult, submit a GitHub Issue.
- CloudFlare
- [07-27-2015] If your
~/secrets/configuration.yml["websites"]["apache/iis"]["domain"]is a subdomain (drupal7.devopsgroup.io) theforce_httpsoption will only work in LocalDev and Production as CloudFlare only supports a first-level subdomain. https://www.cloudflare.com/ssl
- [07-27-2015] If your
- DigitalOcean
- [09-01-2015] vagrant rebuild was failing with a
The configured shell (config.ssh.shell) is invalid and unable to properly execute commands.it is due to DigitalOcean's API not re-inserting the SSH key that was originally used during the first vagrant up (creation of the droplet). To rebuild, you must use the DigitalOcean console, run through the first root password reset workflow that was emailed to you, then vi /etc/sudoers and remove the Defaults requiretty line and save and exit. You can then run vagrant provision successfully.
- [09-01-2015] vagrant rebuild was failing with a
- Git
- [09-08-2015] Some database dumps exceed 100MB, so it's recommened to use Bitbucket in those instances as Catapult auto-commits database dumps to your website's repository, up to 500MB worth of database dumps or the one, newest database dump. Bitbucket has a 2GB hard repo push limit with no documented file limit and GitHub has a 1GB soft repo limit with a 100MB file size limit.
- Vagrant
- [07-27-2015] If your
~/secrets/configuration.yml["websites"]["apache/iis"]["domain"]includes theforce_httpsoption, duringvagrant statusyou will receive an err for the http response code for.devas this is a self-signed cert and not routing through CloudFlare.
- [07-27-2015] If your
So you want to contribute... Great! Open source projects like Catapult succeed or fail upon the involvement of a thriving community of developers, who often offer various levels of code skills and time commitment. Here are some ways you can begin contributing right away, at whatever level is most comfortable for you.
- Submit a feature
- Report a bug
- Verify and track down a reported bug
- Add documentation to the README
- Answer project specific questions
- Contribute to the Catapult wiki
- Blog about your experiences with Catapult
When you first setup Catapult a develop-catapult branch is created for you under your forked repository, with an upstream set to https://github.com/devopsgroup-io/catapult.git so that you can easily create a pull request. Also keep in mind when closing issues to submit a pull request that includes GitHub's: Closing issues via commit messages.
Releases are driven by the devopsgroup.io team and occur when accepting new pull requests from contributors like you. Releases follow Semantic Versioning 2.0.0, given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
In addition, the release will be prefaced with a v (v1.0.0) to conform standard practice.
During a new release, the version number in VERSION.yml will be incremented and tagged with the same version number along with a GitHub Release.
See http://semver.org/spec/v2.0.0.html for more information.
Catapult is making the conference tour! We plan to attend the following the conferences, with more to come. Get a chance to see Catapult in action, presented by it's core developers.
- Spring 2016 [04-08-2016] Drupaldelphia
- Summer 2016 Wharton Web Conference
- Winter 2016 WordCamp US
Catapult will also be seen throughout local meetups in the Philadelphia and Greater Philadelphia area! Get a chance to meet the team and engage at a personal level.
- Philly Tech Meetup 4k+ technologists
- Princeton Tech 3.5k+ technologists
- Technical.ly Philly 3k+
- Philadelphia WordPress Meetup Group 1.5k+ technologists
- Philly DevOps 700+ technologists
- Greater Philadelphia Drupal Meetup Group 500+ technologists