# 14-Aug-2024 - 26-Sep-2024 - New Deployment & App Changes 
## Dockerizing, Move to [Fly.io](https://fly.io), Meetup API Changes & Walk View Changes
## [build 17](https://github.com/nbarrett/ngx-ramblers/actions/runs/11060832257)

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/dcecea1e-edd7-4760-9df9-082d47295613.jpg)

* Note that over the above period, Heroku deployments were decommissioned and a new [Fly.io](https://fly.io) deployment mechanism using Docker was developed. [Fly.io](https://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](https://fly.io/docs/about/pricing/) 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](https://fly.io/docs/machines/guides-examples/functions-with-machines/) with a fast REST API that can boot instances in about 300ms, in any region supported by [Fly.io](https://fly.io).
* Due to the change in deployment mechanism from Heroku to [Fly.io](https://fly.io), Docker Images are built pushed and deployed to the [staging environment]() using [Github Actions](https://github.com/nbarrett/ngx-ramblers/actions/workflows/build-push-and-deploy-ngx-ramblers-docker-image.yml)
* 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](https://github.com/nbarrett/ngx-ramblers/actions/runs/11060832257)

## [NGX-Ramblers]() Dockerized
- 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

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/85d85dfa-60be-4e46-b99d-e708fe07d14a.jpg)

- Added additional details field to walk details which appear below walk details - [example of group that uses this field](https://stag-walkers.ngx-ramblers.org.uk/walks/100278622):

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/6290b061-9ece-4602-b949-92d6637bdbe6.jpg)