PHP Developer Guide
Other documentationsDemoCommunityGitHub
  • Forest Admin
  • Getting started
    • How it works
    • Quick start
      • Symfony
      • Laravel
    • Create your agent
    • Troubleshooting
    • Migrating legacy agents
      • Pre-requisites
      • Recommendations
      • Migration steps
      • Code transformations
        • API Charts
        • Live Queries
        • Smart Charts
        • Route overrides
        • Smart Actions
        • Smart Fields
        • Smart Relationships
        • Smart Segments
  • Data Sources
    • Getting Started
      • Collection selection
      • Naming conflicts
      • Query interface and Native Queries
        • Fields and projections
        • Filters
        • Aggregations
    • Provided data sources
      • Doctrine
      • Eloquent
        • Polymorphic relationships
    • Write your own
      • 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
      • Dynamic Forms
      • 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
      • 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
    • Development workflow
    • Using branches
    • Deploying your changes
    • Forest Admin CLI commands
      • init
      • login
      • branch
      • switch
      • set-origin
      • push
      • environments:create
      • environments:reset
      • deploy
  • Upgrade
    • Laravel agent upgrade to v3
  • Under the hood
    • .forestadmin-schema.json
    • Data Model
      • Typing
      • Relationships
    • Security & Privacy
Powered by GitBook
On this page

Was this helpful?

  1. Deploying to production
  2. Environments

Deploy on AWS

PreviousEnvironmentsNextDeploy on Heroku

Last updated 1 year ago

Was this helpful?

This is the official documentation of the forestadmin/laravel-forestadmin v2+ and forestadmin/symfony-forestadmin PHP agents.

This tutorial is designed to assist you with a step-by-step guide to deploy the admin backend to Amazon Web Services, using EC2, ELB, ACM and Route53.

First, please ensure you have an AWS account. You can sign up .

1. Launch an EC2 Instance:

  • Navigate to the EC2 dashboard and click on Launch Instance.

  • Choose an Amazon Machine Image (AMI) such as Amazon Linux 2023 AMI.

  • Select t2.micro (part of the AWS Free Tier).

  • Select Proceed without a key pair

  • On the Configure Security Group step, create a new security group:

    • allow ssh traffic.

    • allow HTTPS traffic.

    • allow HTTP traffic.

  • Review and launch the instance.

2. Connect to the EC2 instance:

  • Navigate to your EC2 instance and click on Connect.

  • Leave the default parameters and click on Connect again.

  • Your are now connected to your instance.

3. Set up your instance:

The command lines in this step demonstrate how to install a Node.js agent. If you are running Forest Admin on another agent, please adapt the following to your specific stack.

  • Update the instance:

sudo yum update -y
  • Install Git:

sudo yum install git -y
  • Clone your repo:

git clone your-repo-link
  • Install Node.js and npm:

sudo yum install npm -y
  • Navigate to your project directory and install the necessary packages:

cd your-repo-directory
npm install
  • Set up all the necessary environment variables provided by the Forest Admin environment creation wizard.

  • Add the APPLICATION_PORT environment variable to be able to contact the server from outside. In this example, we will choose APPLICATION_PORT=3310. If you choose another port, please adapt the next steps accordingly.

  • Start the agent

npm run start:watch

4. Adjust security group rules:

  • Navigate to your EC2 instance's security group.

  • Click on Edit inbound rules.

  • Add a Custom TCP inbound rule to allow on port 3310.

5. Create a target group:

  • In the AWS Management Console, navigate to the EC2 service.

  • Under "Target Groups", click Create Target Groups.

  • Ensure target type is instance.

  • Choose HTTP to 3310.

  • Ensure VPC is set to the same VPC as your EC2 instance.

  • Setup the health checks as set to /forest.

  • On the next step, select instance and click on Include as pending below.

  • Finally create the target group.

6. Request a certificate using AWS Certificate Manager (ACM):

  • Navigate to ACM and click on Request a certificate.

  • Enter your domain name and validate the domain ownership using DNS validation.

  • After viewing the new created certificate, click on Create records in Route 53.

  • Wait for the certificate to be validated (this can take some time < 1mn).

7. Set up an Application Load Balancer (ALB):

  • In the AWS Management Console, navigate to the EC2 service.

  • Under "Load Balancers", click Create Load Balancer.

  • Choose Application Load Balancer and follow the setup.

  • Ensure the ALB is set to the same VPC as your EC2 instance.

  • Select all regions.

  • Remove default security group and select the group associated to the newly created instance.

  • Add an HTTPS listener and choose previously created target group and certificate.

  • After creating the ALB copy the DNS name.

8. Add CNAME to Route53:

  • Navigate to Route53 and choose your hosted zone (domain).

  • Create a CNAME record with the domain name filled in the certificate and the DNS name of the ALB.

9. Finalize:

Check your domain. You should be able to access your Forest Admin panel environment hosted on AWS. 🎉

This is a basic setup, and there are many optimizations and security enhancements (like using RDS, tightening security groups, etc.) that can be done for a production-ready deployment. Please refer to the to go deeper.

AWS documentation ↗
here ↗