Skip to content
GovWifi Admin Platform
Ruby HTML Shell CSS TSQL Dockerfile Other
Branch: master
Clone or download
freesteph Merge pull request #947 from alphagov/feature/2fa-for-all
Make it optional for org admins to be able to setup 2FA
Latest commit e0fe133 Jan 24, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dependabot BAU: Run auto rebase for dependabots at night Jan 13, 2020
bin bau: replace govuk-lint Jan 15, 2020
ci BAU - allow manual trigger of PR jobs Jan 15, 2020
config Make it optional for org admins to be able to setup 2FA. Jan 21, 2020
db bau: replace govuk-lint Jan 15, 2020
log Initial commit Jul 26, 2018
mysql_user Amend mysql version for the user db Jun 10, 2019
public Remove robots.txt (#334) Nov 29, 2018
spec Update tests to work for 2FA being on for all users. Jan 21, 2020
tmp Initial commit Jul 26, 2018
.erb-lint.yml bau: replace govuk-lint Jan 15, 2020
.gitignore Run PRs in Concourse (#610) Apr 9, 2019
.rspec Signup and Login as a User (#17) Aug 9, 2018
.rubocop.yml bau: replace govuk-lint Jan 15, 2020
.scss-lint.yml bau: replace govuk-lint Jan 15, 2020
Dockerfile gem: restore rack-mini-profiler to its latest published version Aug 28, 2019
Gemfile.lock PR comments: use new RSpec matcher to test PDF download instead of pd… Jan 20, 2020
Guardfile bau: replace govuk-lint Jan 15, 2020
Makefile bau: replace govuk-lint Jan 15, 2020 Dev docs link (#773) Jun 6, 2019
Rakefile bau: replace govuk-lint Jan 15, 2020
docker-compose.concourse.yml convert admin to use same test/lint standard as the main pipelines (#682 Apr 30, 2019
docker-compose.development.yml Enable app debugging via docker attach Jul 23, 2019
docker-compose.yml Add Docker config for users db Jun 10, 2019
package.json build(deps): bump govuk-frontend from 3.3.0 to 3.4.0 Jan 13, 2020

Govwifi Admin Application

This is the admin platform, a website where organisations can create and manage their GovWifi installation within their organisation.

The GovWifi developer documentation contains technical documentation for the Govwifi team in the Government Digital Service.

N.B. The GovWifi terraform repository contains information on how to build GovWifi end-to-end - the sites, services and infrastructure.

Table of Contents


The application allows users to perform the following tasks:

  • Create an admin account.
  • Invite team members to their account.
  • View instructions on how to setup and configure GovWifi on their local network.
  • Add IP addresses of their access points to the GovWifi system.
  • View logs of authentication requests to GovWifi by IP and username.
  • Make support ticket requests.

The application also includes a "Super Admin" login feature that allows a GDS administrator to:

  • View all organisations signed up to GovWifi
  • View all locations that use of GovWifi
  • See specific information on each of these organisations
  • Add custom organisation names to the allowed register
  • Invite users to organisations

The application uses a few third party services, including:

  • GOV.UK Registers as a resource for Government organisations to select their names from a predetermined list of registered organisations as they create their accounts.

  • GOV.UK Notify to handle sending out situational emails to users.

  • GOV.UK Zendesk to handle forms submitted by the user within the app.

The application also provides the following data for the RADIUS configuration via an S3 bucket:

  • IP addresses.
  • RADIUS secret keys


Setup and serve the app locally

make serve

The admin portal can be accessed at http://localhost:8080. Users and credentials are configured under seeds.rb

Running the tests

make test

Using the Linter

make lint

Run a shell in the docker composed application

make serve
make shell

Stop the application

make stop

Remove the application volumes

make clean


All deployments are run by the GDS Concourse.

The process amounts to:

  1. Test + Lint
  2. Build a deployment image
  3. Push deployment image to the GovWifi ECR
  4. Run migrations using the deployment image
  5. restart the ECS services using the new deployment image


Deployments to Staging are run automatically whenever a change to the master branch is made.


Deployments to Production must be manually triggered. You can do this by going to the production deployment pipeline, and starting the "Confirm Deploy to Production" task.

You can start the task by clicking on it, and pressing the + icon in the top right of the screen.

This will do a few things:

  • It ensures the tests have been run on the latest commit for master.
  • It ensures Staging has already been deployed for the latest commit for master.
  • It then allows production to deploy using the latest commit for master.

You do not need to wait the Tests and Staging deploy to finish before starting a Production deploy. The Production deploy will wait for the Tests and Staging deploy to finish before actually running.

How to contribute

  1. Fork the project
  2. Create a feature or fix branch
  3. Make your changes (with tests if possible)
  4. Run and linter make lint
  5. Run and pass tests make test
  6. Raise a pull request


This codebase is released under the MIT License.

You can’t perform that action at this time.