Home Posts Tags Post Search Tag Search

Post 13

Game Site Journal - 04

Published on: 2025-04-12 Tags: Blog, Side Project, LiveView, Game Site, Fly, Deployment
This is a quick post to show you how to deploy with Fly.io

Follow the Phoenix Deploying on Fly.io guide to deploy the project.
https://hexdocs.pm/phoenix/fly.html
Install Fly.io Command line
https://fly.io/docs/flyctl/install/

fly auth signup
to signup for your account and make your shell know who you are

fly launch
to start the first deployment you should see something like:
? Choose an app name (leave blank to generate one): replace-this-with-your-app-name
? Choose a region for deployment: pick-the-default-or-select-your-region
? Would you like to set up a Postgresql database now? Yes
? Select configuration: Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
? Scale single node pg to zero after one hour? Yes
? Would you like to set up an Upstash Redis database now? No
? Would you like to deploy now? Yes

Once this is done the current version of your code is deployed. If you want to use a specific branch only and update it when ever that branch gets a pull request follow the next steps.

fly auth token
to get a token for deployment, be sure to head to the setting section of the github page for your repository. Then head to secrets and variables. Then actions. Then add a Repository Secret with the name FLY_API_TOKEN

Then you can create .github/workflows/continuous-deployment.yml file with the following content. Notice this uses the secret token you just configured.

name: Fly Deploy
on:
  push:
    branches:
      - main
env:
  FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
jobs:
  deploy:
      name: Deploy app
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v3
        - uses: superfly/flyctl-actions/setup-flyctl@master
        - run: flyctl deploy --remote-only

Where - main  is the name of the branch you want to update off of.

It's really that simple. Keep in mind at the time of writing this you can only have 2 sites active for free and you will need some money in your account to move out of the trial phase and keep your sites up.