Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dfe-digital/govuk-rails-boilerplate
A simple boilerplate built on Ruby on Rails to kick start new services
https://github.com/dfe-digital/govuk-rails-boilerplate
boilerplate department-for-education govuk rubyonrails
Last synced: about 2 months ago
JSON representation
A simple boilerplate built on Ruby on Rails to kick start new services
- Host: GitHub
- URL: https://github.com/dfe-digital/govuk-rails-boilerplate
- Owner: DFE-Digital
- License: mit
- Archived: true
- Created: 2018-11-08T11:30:34.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-27T14:25:33.000Z (over 2 years ago)
- Last Synced: 2024-09-26T16:20:35.055Z (about 2 months ago)
- Topics: boilerplate, department-for-education, govuk, rubyonrails
- Language: Ruby
- Homepage: https://govuk-rails-boilerplate.herokuapp.com/pages/home
- Size: 2.12 MB
- Stars: 26
- Watchers: 23
- Forks: 9
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
⚠️ This repository is archived in favour of [Rails template](https://github.com/DFE-Digital/rails-template)
# GOV.UK Rails Boilerplate
## Prerequisites
- Ruby 2.7.1
- PostgreSQL
- NodeJS 12.13.x
- Yarn 1.12.x## Setting up the app in development
1. Run `bundle install` to install the gem dependencies
2. Run `yarn` to install node dependencies
3. Run `bin/rails db:setup` to set up the database development and test schemas, and seed with test data
4. Run `bundle exec rails server` to launch the app on http://localhost:3000
5. Run `./bin/webpack-dev-server` in a separate shell for faster compilation of assets## Whats included in this boilerplate?
- Rails 6.0 with Webpacker
- [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend)
- [GOV.UK Design System Formbuilder](https://github.com/dfe-digital/govuk_design_system_formbuilder/)
- [GOV.UK Components](https://github.com/dfe-digital/govuk-components)
- RSpec
- Dotenv (managing environment variables)
- Travis with Heroku deployment
- Docker and docker compose## Running specs, linter(without auto correct) and annotate models and serializers
```
bundle exec rake
```## Running specs
```
bundle exec rspec
```## Linting
It's best to lint just your app directories and not those belonging to the framework, e.g.
```bash
bundle exec rubocop app config db lib spec Gemfile --format clang -aor
bundle exec scss-lint app/webpacker/styles
```## Docker
### Why use Docker?
- Run the application locally without installing dependencies (postgres, system libraries...)
- Run in a Linux environment similar to production
- Simulate running in production with dependencies using docker-compose
- Package the application so it can be versioned and deployed to multiple environments### Prerequisites
- Docker >= 19.03.12### Build
```
make build-local-image
```It relies heavily on caching. The first build may be slow and subsequent ones faster.
### Single docker image
The docker image doesn't contain a default command. Any command can be appended:
```
% docker run -p 3001:3000 dfedigital/govuk-rails-boilerplate:latest rails -vT
rails about # List versions of all Rails frameworks and the environment
rails action_mailbox:ingress:exim # Relay an inbound email from Exim to Action Mailbox (URL and INGRESS_PASSWORD required)
...
```### Run in production mode
Docker compose provides a default empty database to run rails in production mode.```
docker-compose up
```Open: http://localhost:3000
## Deploying on GOV.UK PaaS
### Prerequisites
- Your department, agency or team has a GOV.UK PaaS account
- You have a personal account granted by your organisation manager
- You have downloaded and installed the [Cloud Foundry CLI](https://github.com/cloudfoundry/cli#downloads) for your platform### Deploy
1. Run `cf login -a api.london.cloud.service.gov.uk -u USERNAME`, `USERNAME` is your personal GOV.UK PaaS account email address
2. Run `bundle package --all` to vendor ruby dependencies
3. Run `yarn` to vendor node dependencies
4. Run `bundle exec rails webpacker:compile` to compile assets
5. Run `cf push` to push the app to Cloud Foundry Application RuntimeCheck the file `manifest.yml` for customisation of name (you may need to change it as there could be a conflict on that name), buildpacks and eventual services (PostgreSQL needs to be [set up](https://docs.cloud.service.gov.uk/deploying_services/postgresql/)).
The app should be available at https://govuk-rails-boilerplate.london.cloudapps.digital