Skip to content

Quick Start

This guide takes you from a fresh SKE account to a running Laravel application. You need the CLI installed and a cloud account (AWS or GCP) ready.

Terminal window
ske login
We sent a sign-in link to [email protected].
Open it, check it shows this code, and press Approve:
WDJB-MJHT
Signed in as [email protected] — using acme-corp

Connect your AWS account or GCP project. SKE provisions all infrastructure inside your cloud account — it never hosts your application.

In the dashboard, go to Connections, Cloud providers and select Connect provider:

  • For AWS, create an IAM role with the trust policy the wizard shows and the required permissions (see AWS setup), then enter its role ARN and a default region.
  • For GCP, create a service account (see GCP setup) and drop its JSON key file into the wizard.

Select Validate connection, give the connection a name and save it.

Go to Projects, select New project, enter a name, pick Laravel as the runtime and select Create and continue.

Create and continue opens the project’s setup page, Connect my-laravel-app. Its Environment field starts at production. Select Create this environment: the environment form opens with that name filled in. Pick the cloud provider and region, and select Create environment.

To add more environments later, open the project and select Add environment.

From your Laravel project directory, run ske link to link it to the SKE project and environment:

Terminal window
cd ~/projects/my-laravel-app
ske link
Select a project:
1. My Laravel App (my-laravel-app)
Enter number: 1
Select a default environment:
1. production (production)
Enter number: 1
Linked to acme-corp/default/my-laravel-app (default environment: production)
Added .ske/ to .gitignore.

The link is saved in .ske/project.json, which stays out of git. Commands run in this directory then use the linked project and environment.

APP_KEY is created for you when the environment is created, and the attached database’s DB_* variables are set on each deploy. Set the other secrets your app needs, such as API keys:

Terminal window
ske secret set STRIPE_SECRET
Value:
Secret STRIPE_SECRET set.

A secret overrides an injected variable of the same name, so don’t set DB_* secrets unless you mean to replace the database’s values, or AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY unless you mean to replace the function role’s credentials. See Environment variables.

Terminal window
ske deploy
Deployment 7246183051948032011 initialized.
Building image (linux/arm64)...
#1 [internal] load build definition from Dockerfile
...
Image pushed.
Uploaded 128 assets.
Deployment 7246183051948032011 started.
[stack] Stack ready
[function] Functions updated
[alias] Traffic switched
Deployment succeeded (sequence #1) in 3m 12s
Application URL: https://abc123.execute-api.us-east-1.amazonaws.com

The application URL is the environment’s URL at your cloud provider: an API Gateway URL on AWS, or a Cloud Run URL on GCP. To serve it from your own domain, see Domains.

  1. Build — SKE generated a Dockerfile for your Laravel app, built a container image locally using Docker, and pushed it to your cloud provider’s container registry (ECR on AWS, Artifact Registry on GCP).
  2. Assets — Static files from your public/ directory were uploaded to cloud storage for CDN delivery.
  3. Provision — Infrastructure was provisioned in your cloud account: compute (Lambda or Cloud Run), API gateway, and any configured resources.
  4. Activate — Traffic was routed to the new deployment. The previous version (if any) remains available for instant rollback.