Node.js Developer Guide
Other documentationsDemoCommunityGitHub
  • Forest Admin
  • Getting started
    • How it works
    • Quick start
    • Install
      • Create your agent
      • Expose an HTTP endpoint
        • For standalone agents
        • On Express
        • On Koa
        • On Fastify
        • On NestJS
      • Autocompletion & Typings
      • Troubleshooting
    • Migrating legacy agents
      • What's new
      • Pre-requisites
      • Recommendations
      • Migration steps
        • Run new agent in parallel
        • Configure database connection
        • Code transformations
          • API Charts
          • Live Queries
          • Smart Charts
          • Route overrides
          • Smart Actions
          • Smart Fields
          • Smart Relationships
          • Smart Segments
        • Compare schemas
        • Swap agents
      • Post-migration
        • Dropping Sequelize
        • Optimize your agent
  • Data Sources
    • Getting Started
      • Collection selection
      • Naming conflicts
      • Cross-data source relationships
      • Query interface and Native Queries
        • Fields and projections
        • Filters
        • Aggregations
    • Provided data sources
      • SQL (without ORM)
      • Sequelize
      • Mongoose
      • MongoDB
    • Write your own
      • Replication strategy
        • Persistent cache
        • Updating the replica
          • Scheduled rebuilds
          • Change polling
          • Push & Webhooks
        • Schema & References
        • Write handlers
      • Translation strategy
        • Structure declaration
        • Capabilities declaration
        • Read implementation
        • Write implementation
        • Intra-data source Relationships
      • Contribute
  • Agent customization
    • Getting Started
    • Actions
      • Scope and context
      • Result builder
      • Static Forms
      • Widgets in Forms
      • Dynamic Forms
      • Form layout customization
      • Related data invalidation
    • Charts
      • Value
      • Objective
      • Percentage
      • Distribution
      • Leaderboard
      • Time-based
    • Fields
      • Add fields
      • Move, rename and remove fields
      • Override binary field mode
      • Override writing behavior
      • Override filtering behavior
      • Override sorting behavior
      • Validation
    • Hooks
      • Collection hook
      • Collection override
    • Pagination
    • Plugins
      • Provided plugins
        • AWS S3
        • Advanced Export
        • Flattener
      • Write your own
    • Relationships
      • To a single record
      • To multiple records
      • Computed foreign keys
      • Under the hood
    • Search
    • Segments
  • Frontend customization
    • Smart Charts
      • Create a table chart
      • Create a bar chart
      • Create a cohort chart
      • Create a density map
    • Smart Views
      • Create a Map view
      • Create a Calendar view
      • Create a Shipping view
      • Create a Gallery view
      • Create a custom tinder-like validation view
      • Create a custom moderation view
  • Deploying to production
    • Environments
      • Deploy on AWS
      • Deploy on Heroku
      • Deploy on GCP
      • Deploy on Ubuntu
      • Deploy on Azure
    • Development workflow
    • Using branches
    • Deploying your changes
    • Forest Admin CLI commands
      • init
      • login
      • branch
      • switch
      • set-origin
      • push
      • environments:create
      • environments:reset
      • deploy
  • Under the hood
    • .forestadmin-schema.json
    • Data Model
      • Typing
      • Relationships
    • Security & Privacy
Powered by GitBook
On this page
  • Prerequisites
  • Code preparation
  • Application port
  • ForestAdmin schema
  • Create a new AppService app on Azure
  • Create the application
  • Configure the application
  • Configure your production environment

Was this helpful?

  1. Deploying to production
  2. Environments

Deploy on Azure

This is the official documentation of the @forestadmin/agent Node.js agent.

This tutorial is designed to assist you with a step-by-step guide to deploy the admin backend to Azure AppService

Prerequisites

  • You have an azure account validated with a credit card

  • A valid subscription on Azure to run AppService applications

  • You already have a ForestAdmin project with a development environment

  • The source code of your ForestAdmin project has its own GitHub repository

Code preparation

Application port

Azure will provide the port on which you need to mount the server with the environment variable named PORT. By default, ForestAdmin generate the source code with the variable APPLICATION_PORT.

Simply change how the port is being provided by using the following:

agent.mountOnStandaloneServer(
  Number(process.env.PORT || process.env.APPLICATION_PORT || 8080),
);

ForestAdmin schema

This step-by-step guide implies a build and release phase in a further step. To initiate a proper release, we need to change the ForestAdmin schema file from .forestadmin-schema.json to forestadmin-schema.json (simply remove the dot). Otherwise, this mandatory file will not be taken into account during release.

To properly propagate the change, add the following configuration option in the createAgent function call:

const agent = createAgent<Schema>({
  ...
  schemaPath: './forestadmin-schema.json',
});

Create a new AppService app on Azure

Create the application

Configure the application

On the basics section, select:

  • Your subscription and your resource group

  • Give a name to your application

  • Select Code for the Publish configuration and your NodeJS version

  • Select your preferred operating system (ForestAdmin works on both Linux and Windows)

  • Select your Region and your Plan. Please do note that ForestAdmin is small and minimalistic application that requires very few resources to run

Then, reach the Deployment tab of the configuration. Activate the Continuous deployment settings, and configure the integration so the GitHub repository of your project is connected to your app. The idea is to link your AppService application to a branch of your GitHub repository so anytime something new gets added on that branch, is released is done automatically. Azure will automatically create GitHub actions that you can customize in the future.

Next click on the Networking tab, and ensure that public access is available, otherwise your application won't be accessible from the public internet.

Reach the next section, being Monitor + secure. You can activate monitoring feature at your convenience. After that, reach the next section of the configuration and click on create at the very bottom left.

Your new GitHub action will automatically run after that step, and a first deployment will occur.

Configure your production environment

Now that the app is running, we need to configure it with the proper environment variables from ForestAdmin.

From the ForestAdmin web application, start a deploy to production process. You will enter a wizard that will assist you in the creation of your production environment.

First, enter the URL of your application when prompted. You can retrieve it from the Overview section of your Azure application, under the label default domain.

Secondly, enter the configuration of your production database

Then finally, At the end of the Deploy to production process, you will be prompted with some environment variables. Reach the settings > environment variables section of your Azure project, and add every of the variables prompted by ForestAdmin.

After restarting your server, your production environment should be up and running !

PreviousDeploy on UbuntuNextDevelopment workflow

Last updated 3 months ago

Was this helpful?

Reach the AppService section of Azure and click and create a new application

Having problems deploying? Check out in our community.

troubleshooting common problems ↗