StaticDeploy

StaticDeploy

  • Docs
  • GitHub
  • Privacy

›Guides

Getting started

  • Quickstart
  • Overview
  • Apps configuration
  • CI/CD Workflow

Guides

  • Deploying StaticDeploy with docker
  • Deploying static apps
  • Using a client-side router
  • Serving assets with custom headers
  • Using a fallback asset
  • Configuring JWT identity providers
  • Configuring OpenID Connect identity providers

Use with

  • Create React App
  • Vue CLI

Reference

  • Entities
  • Authentication and authorization
  • Using StaticDeploy's CLI
  • How StaticDeploy routes requests
  • Architecture

Deploying static apps

Having set up the StaticDeploy platform, you can now deploy your static apps on it.

Note: this guide assumes you have the staticdeploy service listening at https://staticdeploy.$MY_DOMAIN/

Setting up the CLI

Apps are deployed using the StaticDeploy CLI, which you can install from npm:

npm install --global @staticdeploy/cli
# Or, if you prefer yarn
yarn global add @staticdeploy/cli

You need to provide the CLI the address of your StaticDeploy Management API, as well as a valid authentication token for making requests to it. You can do so by setting two environment variables:

export STATICDEPLOY_API_URL=https://staticdeploy.$MY_DOMAIN/api/
export STATICDEPLOY_API_TOKEN=my-jwt-auth-token

Deploying a static app

Deploying a static app is a two step process.

First, you need to create a bundle from the folder containing your static app. You can do so with the bundle command of the CLI, to which you also provide - aside from the folder where your app is located - a name for the bundle, a tag, a description, and the path of the fallback asset (which must exist in the bundle):

staticdeploy bundle
  --from my-static-app-folder
  --name my-static-app
  --tag master
  --description "First bundle"
  # If your fallback asset actually is /index.html, you can omit this option
  # since it defaults to /index.html
  --fallbackAssetPath /index.html

The command will package the static app into a tar.gz archive and upload it to the StaticDeploy platform, where it can now be deployed.

You can do so using the deploy command of the CLI. The command takes three arguments:

  • a name for the app you want to deploy
  • an entrypoint (i.e. a URL) where you want to deploy your app
  • the name of the bundle that you wish to deploy to that entrypoint
staticdeploy deploy
  --app my-static-app
  --entrypoint my-static-app.com/
  --bundle my-static-app:master

The command will deploy the latest bundle with name my-static-app and tag master to the entrypoint my-static-app.com/.

Pointing the DNS to StaticDeploy's static-server

Now that you've deployed your static app, when the staticdeploy service receives requests for my-static-app.com/, it will respond with the appropriate file in the bundle you've deployed.

First though you need to make requests for my-static-app.com/ get to the service, by pointing the DNS of my-static-app.com to it.

Improving performances with a CDN

Maybe surprisingly given its name, StaticDeploy is not very efficient at serving static files: its main jobs are correctly routing requests and injecting configurations. It also doesn't serve content via HTTPS. This is by design, since StaticDeploy is supposed to be used - at least for production deployments - in combination with a CDN, a tool whose purpose is to optimize and secure serving static files.

Using a CDN with StaticDeploy is fairly simple: you just need to set your staticdeploy service installation as the origin from which the CDN gets the content, point the DNS of your app to the CDN, and configure the CDN to pass-through the Host header of requests (headers other than Host are also supported).

← Deploying StaticDeploy with dockerUsing a client-side router →
  • Setting up the CLI
  • Deploying a static app
  • Pointing the DNS to StaticDeploy's static-server
  • Improving performances with a CDN