Skip to content

feat: Add FixMyStreet scenario#155

Merged
chrisns merged 2 commits into
mainfrom
fixmystreet-scenario
Mar 27, 2026
Merged

feat: Add FixMyStreet scenario#155
chrisns merged 2 commits into
mainfrom
fixmystreet-scenario

Conversation

@chrisns
Copy link
Copy Markdown
Member

@chrisns chrisns commented Mar 27, 2026

Summary

  • Adds FixMyStreet (mySociety's citizen problem reporting platform) as a new ISB StackSet scenario
  • Full CDK infrastructure: Aurora PostgreSQL with PostGIS, Fargate (3 containers), CloudFront, EFS
  • Custom Docker image extending fixmystreet/fixmystreet:stable with automated init and demo seeding
  • 260 demo reports, 150 comments, 15 citizen users across Camden streets
  • 6-step walkthrough with screenshots from live deployment
  • Hub stack entry, CI/CD synth job, Docker build workflow

Architecture

CloudFront (HTTPS) → ALB → nginx:80 → FixMyStreet:9000
                                     → memcached:11211
                     Aurora PostgreSQL (PostGIS) ← EFS (uploads)

Credentials

  • URL: CloudFormation output FixMyStreetUrl
  • Admin: council-admin@example.org / CloudFormation output AdminPassword
  • Admin panel: /admin (superuser with 2FA skipped via staging flag)

Test plan

  • CDK synth produces valid template (<400KB, no bootstrap refs)
  • Stack deploys to sandbox account
  • Homepage loads with postcode search and report stats
  • Login works via CloudFront HTTPS
  • Map view shows report pins across Camden
  • Admin panel accessible at /admin
  • Photo uploads writable (EFS mount)
  • /reports dashboard shows seeded data
  • Stack deletes cleanly

chrisns added 2 commits March 27, 2026 19:09
…ncils

Deploy mySociety's FixMyStreet platform as an ISB StackSet scenario with:

Infrastructure (CDK):
- Aurora PostgreSQL 16.6 Serverless v2 with PostGIS
- Fargate task with 3 containers (FMS app, nginx sidecar, memcached)
- CloudFront HTTPS termination, ALB, EFS for photo uploads
- IsbRoleNamingAspect for ISB SCP compliance

Docker image (ghcr.io/co-cddo/ndx_try_aws_scenarios-fixmystreet):
- Extends official fixmystreet/fixmystreet:stable
- Custom entrypoint: config generation, schema init, user creation, demo seeding
- 260 reports, 150 comments, 15 citizens across Camden

Walkthrough (6 steps, 20 minutes):
- Find credentials, explore citizen view, report a problem
- Council dashboard, admin panel, AWS architecture
- Screenshots from live deployment included

Also adds hub stack entry, CI/CD synth job, and Docker build workflow.
The council admin Perl script requires the "NDX Demo Council" body
to exist, but it was running before the seed script that creates it.
On fresh deployments (new sandbox), this caused "No body found" and
the admin user was never created — making the CloudFormation output
password useless.

Also fixes env var passing: injects credentials directly into the
Perl script via shell interpolation instead of relying on su -c to
preserve environment variables.
@chrisns chrisns added this pull request to the merge queue Mar 27, 2026
Merged via the queue into main with commit be035a6 Mar 27, 2026
9 checks passed
@chrisns chrisns deleted the fixmystreet-scenario branch March 27, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant