{"id":"6705ae127dee39015c232e7d","title":"2024 09 26","path":"how-to/committee/release-notes/2024-09-26","contentMarkdown":"# 14-Aug-2024 - 26-Sep-2024 - New Deployment & App Changes \n## Dockerizing, Move to [Fly.io](https://fly.io), Meetup API Changes & Walk View Changes\n## [build 17](https://github.com/nbarrett/ngx-ramblers/actions/runs/11060832257)\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/dcecea1e-edd7-4760-9df9-082d47295613.jpg)\n\n* 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. \n* [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).\n* 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)\n* 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)\n\n## [NGX-Ramblers]() Dockerized\n- Added Dockerfile\n- Moved all docker build steps to single GitHub workflow\n- tag and push latest first to allow pull earlier if testing locally\n- added secrets\n- Align node version 20.11.0 with package.json\n- docker push image and run\n- added env debugging and removed some unused variables\n- added SITE_ prefix for some env variables\n- Added GitHub Workflow: build-push-and-deploy-ngx-ramblers-docker-image.yml\n- Added Readme badge for docker build\n- Updated Readme with build icons\n- fly port number changed to 5001\n- Removed webdriver-manager as this is not required\n- log CHROME_VERSION and CHROMEDRIVER_VERSION\n- Switch to using npx @puppeteer/browsers install\n- App port changed from 5000 to 5001 to avoid conflicts on new Mac\n- NPM run serenity-bdd-update done within Dockerfile not in step before serenity is run\n- Removed derivation of CHROMEDRIVER_PATH env - is injected now\n- standardised CHROME and CHROMEDRIVER variable names\n- reflected required changes in protractor.conf.js\n- Removed heroku build and config files\n- App config and bug fixes\n- Changes to config components to avoid runtime error if mail config not yet populated\n- Turned off logging on many endpoints\n- combine workflows into one\n- allow group name to be passed in via APP_NAME secret\n- added fly.io deploy and workflow script\n- Updated Readme to show the NGX-Ramblers project links and documentation\n- Removed app and image from fly.toml as these are both passed in fly deploy command\n- Removed sed commands from build steps as all variables are now passed in fly deploy command\n- Removed http_service.allow_origin as this does not seem to be a valid option\n- Added deploy-to-environments.ts to roll out changes to all configured environments\n## Meetup API Changes\n- Added error handling and view OAuth Clients button into System Meetup Settings\n- Reconfigure Meetup authentication code to reflect latest OAuth Spec\n- Meetup settings now stored in database and configurable within /admin/system-settings?tab=external-systems\n- New Authentication flow created to reflect https://www.meetup.com/api/authentication/\n- Server Flow -> Requesting Authorization -> Requesting Access Token\n- Refresh Token Flow -> Requesting Access Token\n- All meetup server code migrated to typescript.\n## Walk Changes\n- Fixed some non-rendering svg symbol ids\n- Added accessibility features to walk details\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/85d85dfa-60be-4e46-b99d-e708fe07d14a.jpg)\n\n- 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):\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/6290b061-9ece-4602-b949-92d6637bdbe6.jpg)","contentHtml":"<h1>14-Aug-2024 - 26-Sep-2024 - New Deployment &amp; App Changes</h1>\n<h2>Dockerizing, Move to <a href=\"https://fly.io\">Fly.io</a>, Meetup API Changes &amp; Walk View Changes</h2>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/11060832257\">build 17</a></h2>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/dcecea1e-edd7-4760-9df9-082d47295613.jpg\" alt=\"\"></p>\n<ul>\n<li>Note that over the above period, Heroku deployments were decommissioned and a new <a href=\"https://fly.io\">Fly.io</a> deployment mechanism using Docker was developed. <a href=\"https://fly.io\">Fly.io</a> is now the recommended deployment mechanism for <a href=\"\">NGX-Ramblers</a>, given that a site can be run on the <a href=\"https://fly.io/docs/about/pricing/\">pay as you go price plan</a> 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. </li>\n<li><a href=\"https://fly.io/docs/machines/guides-examples/functions-with-machines/\">Fly Machines are Firecracker VMs</a> with a fast REST API that can boot instances in about 300ms, in any region supported by <a href=\"https://fly.io\">Fly.io</a>.</li>\n<li>Due to the change in deployment mechanism from Heroku to <a href=\"https://fly.io\">Fly.io</a>, Docker Images are built pushed and deployed to the <a href=\"\">staging environment</a> using <a href=\"https://github.com/nbarrett/ngx-ramblers/actions/workflows/build-push-and-deploy-ngx-ramblers-docker-image.yml\">Github Actions</a></li>\n<li>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 <a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/11060832257\">build 17</a></li>\n</ul>\n<h2><a href=\"\">NGX-Ramblers</a> Dockerized</h2>\n<ul>\n<li>Added Dockerfile</li>\n<li>Moved all docker build steps to single GitHub workflow</li>\n<li>tag and push latest first to allow pull earlier if testing locally</li>\n<li>added secrets</li>\n<li>Align node version 20.11.0 with package.json</li>\n<li>docker push image and run</li>\n<li>added env debugging and removed some unused variables</li>\n<li>added SITE_ prefix for some env variables</li>\n<li>Added GitHub Workflow: build-push-and-deploy-ngx-ramblers-docker-image.yml</li>\n<li>Added Readme badge for docker build</li>\n<li>Updated Readme with build icons</li>\n<li>fly port number changed to 5001</li>\n<li>Removed webdriver-manager as this is not required</li>\n<li>log CHROME_VERSION and CHROMEDRIVER_VERSION</li>\n<li>Switch to using npx @puppeteer/browsers install</li>\n<li>App port changed from 5000 to 5001 to avoid conflicts on new Mac</li>\n<li>NPM run serenity-bdd-update done within Dockerfile not in step before serenity is run</li>\n<li>Removed derivation of CHROMEDRIVER_PATH env - is injected now</li>\n<li>standardised CHROME and CHROMEDRIVER variable names</li>\n<li>reflected required changes in protractor.conf.js</li>\n<li>Removed heroku build and config files</li>\n<li>App config and bug fixes</li>\n<li>Changes to config components to avoid runtime error if mail config not yet populated</li>\n<li>Turned off logging on many endpoints</li>\n<li>combine workflows into one</li>\n<li>allow group name to be passed in via APP_NAME secret</li>\n<li>added fly.io deploy and workflow script</li>\n<li>Updated Readme to show the NGX-Ramblers project links and documentation</li>\n<li>Removed app and image from fly.toml as these are both passed in fly deploy command</li>\n<li>Removed sed commands from build steps as all variables are now passed in fly deploy command</li>\n<li>Removed http_service.allow_origin as this does not seem to be a valid option</li>\n<li>Added deploy-to-environments.ts to roll out changes to all configured environments</li>\n</ul>\n<h2>Meetup API Changes</h2>\n<ul>\n<li>Added error handling and view OAuth Clients button into System Meetup Settings</li>\n<li>Reconfigure Meetup authentication code to reflect latest OAuth Spec</li>\n<li>Meetup settings now stored in database and configurable within /admin/system-settings?tab=external-systems</li>\n<li>New Authentication flow created to reflect <a href=\"https://www.meetup.com/api/authentication/\">https://www.meetup.com/api/authentication/</a></li>\n<li>Server Flow -&gt; Requesting Authorization -&gt; Requesting Access Token</li>\n<li>Refresh Token Flow -&gt; Requesting Access Token</li>\n<li>All meetup server code migrated to typescript.</li>\n</ul>\n<h2>Walk Changes</h2>\n<ul>\n<li>Fixed some non-rendering svg symbol ids</li>\n<li>Added accessibility features to walk details</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/85d85dfa-60be-4e46-b99d-e708fe07d14a.jpg\" alt=\"\"></p>\n<ul>\n<li>Added additional details field to walk details which appear below walk details - <a href=\"https://stag-walkers.ngx-ramblers.org.uk/walks/100278622\">example of group that uses this field</a>:</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/6290b061-9ece-4602-b949-92d6637bdbe6.jpg\" alt=\"\"></p>\n"}