Skip to main content

Prerequisites

To get started with Expo Open OTA, you need to review the following prerequisites:

note

Some of the environment variables required for the server are listed below. You can set them in a .env file in the root of the project or keep them in a safe place to prepare for deployment.

Expo Token & Project ID

To interact with the Expo API, you need an Expo token and project ID. These credentials authenticate update publishing and allow the server to fetch the release channel-to-branch mappings.

How to Get Your Expo Token

  1. Go to the Access tokens page on your expo dashboard.
  2. Click on the + Create token button.
  3. Enter a name for your token and click Create.
  4. Copy the generated token and store it in a safe place.
info

This token will be used as the EXPO_ACCESS_TOKEN environment variable.

How to Get Your Project ID

From EAS CLI

  1. Ensure you have the EAS CLI installed.

  2. Ensure you are logged in to your Expo account by running

    cd ./my-expo-project
    eas account:view
  3. On your terminal go to the root directory of your Expo project.

  4. Run

    cd ./my-expo-project
    eas project:info

    to get the project ID.

From Expo Dashboard

  1. Login to your Expo dashboard.
  2. Go to the Projects page
  3. Click on the project you want to get the ID for.
  4. The project ID is displayed on the top of the page.
info

This ID will be used as the EXPO_APP_ID environment variable.

JWT Secret

A JWT Secret can be used to sign and verify some of the requests made to the server. This secret is used to sign the JWT token that is sent to the client when they request an update manifest. To generate a JWT secret, you can use the following command:

Generate JWT Secret
openssl rand -base64 32
info

This secret will be used as the JWT_SECRET environment variable.

Base URL

The base URL is the URL where your server will be hosted. This URL is used to generate the URLs for the assets that are sent to the client. Example: https://my-ota-server.com

info

This URL will be used as the BASE_URL environment variable.