# Deploy another version If you need to return to the previous Nightscout version, or in rare occasions, like testing a specific fix or a feature that is not released yet (i.e. not in the `master` branch), you might need to deploy another branch like `dev` in the example below. Do not deploy `dev` or a branch other than `master` unless directed to do so (except if you know why you are doing so). AAPS users: mind the [compatibility matrix](../nightscout/close_loop.md#aaps)! ## Step 1: Update your repository in GitHub - Skip this step if you're using Azure. - Click here to log in at GitHub: [https://github.com/login](https://github.com/login). - Enter your username or email and your password. Click `Sign in`
- Select your own `cgm-remote-monitor` project (**not `nightscout/cgm-remote-monitor`**)
- Your repository will open. - In the branch drop down menu (normally showing `master`) select `dev`
- Click`Fetch upstream` to update it, then `Fetch and merge`
- After a moment, your repository should display `This branch is up to date with nightscout:dev` - If you ran into trouble, try to [Redeploy](/update/redeploy.md) (and this is **mandatory** if you don't see `dev` in GitHub.)
## Step 2: Deploy Select your platform below: ````{tab-set} :::{tab-item} Select your platform ->
::: :::{tab-item} Heroku - Log in Heroku [https://id.heroku.com/login](https://id.heroku.com/login)



- Select your app (hidden in yellow)



- Click on `Deploy`



- Verify Heroku is connected to GitHub, if not, click `Connect to GitHub`



- If Heroku is not connected to GitHub, scroll down and click `Connect to GitHub`, if a popup window opens and requires authorization, click `Authorize Heroku`



- Verify your app `cgm-remote-monitor` is connected to GitHub



- If it isn't, In `Connect to GitHub`, type `cgm-remote-monitor` and click `Search ` then click `Connect`



- If you have trouble connecting your app, click `Disconnect` and reconnect it as shown above



- Scroll down to the bottom of the page, select the `dev` branch and click `Deploy Branch`



- Build will start and information will scroll in the log window. Do not leave the page, do not interfere and wait for completion. It might take more than 10 minutes. Interrupting the process will lead to a broken site and you'll need to restart deployment.



- Wait until the deploy process completes and click `View` (if nothing happens click `Manage App` then upper right `Open App`)



::: :::{tab-item} Railway - Open [Railway](https://railway.app) and click `login`. Login with GitHub.





- Select your Nightscout project.



- Select your web app.



- Still in `Settings` look at `Environment`.
- Change the `Deployment Trigger` with `dev` (it was showing `master`).



- If you only see `master` in the list you need to [redeploy](/update/redeploy.md) **taking care to select all branches and not only `master`**.


- Once `dev` selected Railway will deploy automatically.
::: :::{tab-item} Northflank - Log into Northflank: [https://app.northflank.com/login](https://app.northflank.com/login)
- Select your Nightscout project



- Select your Nightscout service



- Click on the pen icon after the current branch (example below: `master`)



- In the branch list, select the version you want to deploy, then click `Update Build Source`



- Your site will redeploy with the selected branch
::: :::{tab-item} Azure - Log into Azure : [https://portal.azure.com/](https://portal.azure.com/)
- Select your App service, your Nightscout site name (you should see it in recent resources)



- If you didn't find it, it will show in App Services



- In the left menu select Deployment Center, in Full Image Name and Tag change the version to:

`nightscout/cgm-remote-monitor:latest_dev` (example for dev)

Or whichever version (change `filter tag` find the version) in the [list](https://hub.docker.com/r/nightscout/cgm-remote-monitor/tags).

`nightscout/cgm-remote-monitor:14.2.6` (example for 14.2.6)



- Click Save (or Discard if you don't want to save).
Your site will redeploy if you changed the configuration. Expect a few minutes before it comes back online.



::: :::{tab-item} Google Cloud [Here](https://navid200.github.io/xDrip/docs/Nightscout/Customize.html)
::: :::{tab-item} Fly.io Follow [these instructions](https://fly.io/docs/hands-on/install-flyctl/) to install `flyctl` on your computer. You also need to [install git](https://git-scm.com/downloads) if you're using a Windows computer.

*Note for Windows: you might experience issues with Git Bash or PowerShell, try an elevated command prompt.*

- Log in Fly.io:

`flyctl auth login`

- Verify your Nightscout app name, use it to replace `example-ns` in the following lines.

`flyctl app list`

- Verify your app current region (three letters code) and make sure it's in the [free tier](https://fly.io/docs/reference/regions/#fly-io-regions).

`flyctl app list`

- Navigate to the `cgm-remote-monitor` folder from which you deployed Nightscout on your computer. Verify it contains the `fly.toml` configuration file you used to deploy your site.

- If you don't see this file, recover it:

`flyctl config save --app example-ns`

- If you migrated from Heroku using the wizard, or if you can't find this folder on your computer, follow the next steps to recover your Fly.io configuration:

- Fork a copy of the Nightscout repository and change directory

`git clone https://github.com/nightscout/cgm-remote-monitor`

`cd cgm-remote-monitor`

- Download a default `fly.toml` configuration file

`flyctl config save --app example-ns`

- Update your Nightscout repository

`git config pull.rebase true`

`git pull origin dev`

- Edit your `fly.toml` configuration and search this section:
``` [[services]] protocol = "tcp" internal_port = 8080 processes = ["app"] ``` - Change the internal port value to 1337, do not change anything else, do not remove the spaces before `internal_port`.

`internal_port = 1337`

- Save the `fly.toml` file.

- Deploy Nightscout:

`flyctl launch`

- Wait until completion, you site should now be running the latest Nightscout version.
``` Updating existing machines in 'example-ns' with rolling strategy ------- ✔ Machine 1781944ae46438 [app] update succeeded ------- Visit your newly deployed app at https://example-ns.fly.dev/ ``` - Don't forget to downscale the app if you haven't yet!

`flyctl scale --app example-ns count 1`


::: ````
Check your [profile time zone](/nightscout/profile_editor.md#profile-view) is correct. You're done!

## How to return to the `master` release If things don't go as expected you can simply redeploy your `master` branch performing the same steps and using `master` instead of `dev`. When the dev branch gets merged into release, just follow the [classic update method](/update/update.md).