14-Aug-2024 - 26-Sep-2024 - New Deployment & App Changes
Dockerizing, Move to Fly.io, Meetup API Changes & Walk View Changes

- Note that over the above period, Heroku deployments were decommissioned and a new Fly.io deployment mechanism using Docker was developed. Fly.io is now the recommended deployment mechanism for NGX-Ramblers, given that a site can be run on the pay as you go price plan which means that the usage is discounted to $0.00 as long as usage is under $5.00 which it will be given that keepalive probes such as pingdom are not used to prevent machine sleeping.
- Fly Machines are Firecracker VMs with a fast REST API that can boot instances in about 300ms, in any region supported by Fly.io.
- Due to the change in deployment mechanism from Heroku to Fly.io, Docker Images are built pushed and deployed to the staging environment using Github Actions
- As a result of the above, the existing release numbers have been replaced by github build numbers and as of 26-Sep-24, this is build 17
- Added Dockerfile
- Moved all docker build steps to single GitHub workflow
- tag and push latest first to allow pull earlier if testing locally
- added secrets
- Align node version 20.11.0 with package.json
- docker push image and run
- added env debugging and removed some unused variables
- added SITE_ prefix for some env variables
- Added GitHub Workflow: build-push-and-deploy-ngx-ramblers-docker-image.yml
- Added Readme badge for docker build
- Updated Readme with build icons
- fly port number changed to 5001
- Removed webdriver-manager as this is not required
- log CHROME_VERSION and CHROMEDRIVER_VERSION
- Switch to using npx @puppeteer/browsers install
- App port changed from 5000 to 5001 to avoid conflicts on new Mac
- NPM run serenity-bdd-update done within Dockerfile not in step before serenity is run
- Removed derivation of CHROMEDRIVER_PATH env - is injected now
- standardised CHROME and CHROMEDRIVER variable names
- reflected required changes in protractor.conf.js
- Removed heroku build and config files
- App config and bug fixes
- Changes to config components to avoid runtime error if mail config not yet populated
- Turned off logging on many endpoints
- combine workflows into one
- allow group name to be passed in via APP_NAME secret
- added fly.io deploy and workflow script
- Updated Readme to show the NGX-Ramblers project links and documentation
- Removed app and image from fly.toml as these are both passed in fly deploy command
- Removed sed commands from build steps as all variables are now passed in fly deploy command
- Removed http_service.allow_origin as this does not seem to be a valid option
- Added deploy-to-environments.ts to roll out changes to all configured environments
Meetup API Changes
- Added error handling and view OAuth Clients button into System Meetup Settings
- Reconfigure Meetup authentication code to reflect latest OAuth Spec
- Meetup settings now stored in database and configurable within /admin/system-settings?tab=external-systems
- New Authentication flow created to reflect https://www.meetup.com/api/authentication/
- Server Flow -> Requesting Authorization -> Requesting Access Token
- Refresh Token Flow -> Requesting Access Token
- All meetup server code migrated to typescript.
Walk Changes
- Fixed some non-rendering svg symbol ids
- Added accessibility features to walk details

