Welcome to Laravel Cloud Early Access One!
Before diving in, we recommend reading through the getting started guide below to help you prepare everything you will need to deploy your first application as well as allow you to familarize yourself with the capabilities of Laravel Cloud!
<aside> 💡
This is the early access phase of Laravel Cloud. We’re continually making improvements and acting on feedback so you should prepare to see things change frequently.
We’ll do out utmost to ensure things remain stable during this time, but you should refrain from running any mission critical or commercially significant workloads at this time whilst we continue to refine the platform.
</aside>
The Cloud team will send you an email containing your unique invite link and access code. Simply follow the link and populate the registration form to gain access to the Cloud dashboard.
Once logged in, you will have the ability to invite additional team members from your organization settings page.
Upon registering with Laravel Cloud, you will be assigned to an organization. For new registrations, this will be a brand new organization; however, if you are invited by another user, you will join an existing organization.
On Laravel Cloud, the organization is the top-level entity that owns all applications, environments, and resources such as databases and custom domains.
The application entity encompasses everything required to run your application on Laravel Cloud. It is coupled directly to your chosen source control repository.
When creating a new application, a default environment will be created using the default branch of the associated repository. In most cases, this is a sensible starting point, but you are free to change this to suit your requirements.
Environments are children of the application entity. You may create as many environments as you require with each environment attached to a branch of the application’s associated source control repository.
A common use case here is to create a production and staging environment, but also affords the ability to create environments for new feature branches like so:
Environment | Branch |
---|---|
production | main |
staging | develop |
new-feature | feat/new-feature |
Some environments will be long-lived whilst others short-lived. For example, you may only need the new-feature
environment for a few hours during a QA test after which, you may remove it.
Each environment can be configured independently. You may, for instance, wish to test an updated version of our application with a newer version of PHP. Simply create a new environment from a branch containing your updates and set your desired version of PHP without affecting your other environments.
You may deploy a new version of your application by initiating a new deployment. Doing so will result in Cloud pulling the latest commit hash of the branch associated with the given environment before building, deploying your application as per your settings configured in Cloud.
Resources relate to any dependency required by your application in order for it to function. Laravel Cloud affords a number of additional resources, with more to follow soon.
To get your application running on Laravel Cloud, you should prepare the following:
Databases
During early access, Laravel Cloud offers first-party serverless Postgres databases.
In the event this doesn’t suit your requirements, you may bring your own database. The database will need to be publicly accessible and the connection to your application should be manually configured by setting the relevant environment variables within the Cloud UI.
Region Support
For early access, Laravel Cloud is available in the US Ohio region only. Support for more regions will follow in the coming weeks.
Runtime
Laravel Cloud is optimized to run Laravel applications effectively and efficiently and the most commonly used PHP extensions are available out of the box. It’s not currently possible to utilize a custom runtime or Docker image nor is it possible to run custom executables.
<aside> ℹ️
Supported extensions include: ctype, curl, dom, fileinfo, filter, hash, mysqli, mbstring, opcache, openssl, pcntl, pdo_mysql, pdo_pgsql, pcre, redis, session, tokenizer, xml, zip
</aside>
Domains
Before a custom domain can be used and SSL certificate issued by Laravel Cloud, ownership of the domain must first be verified.
The simplest and fastest way to verify ownership is to use real-time validation where the domain A record
is immediately pointed at Cloud’s IP address.
However, doing so will result in a small amount of downtime. Additionally, real-time verification is not possible when attempting to add wildcard subdomain support.
If you cannot afford downtime when migrating your application or if you need to provide wildcard subdomain support, you will need to pre-verify your domain before pointing your DNS at Cloud. This involves adding some additional DNS records which you can find in the Cloud UI.