Skip to content

Deploy a Frontend Interface

To work with PlaceOS frontend repositories must have build artifacts committed to a standalone repository or branch.

The user-interfaces repository already has CI/CD pipelines setup using GitHub Actions.

The user-interfaces repository follows these steps for the build pipeline:

  1. Commit made with changes to libs or an application(apps/<project>)
  2. Pipeline in GitHub Actions starts
  3. Install dependencies and build application(s)
  4. Commit build artifacts to associated branch. For example, a development build of workplace will be committed to build/workplace/dev

Once a build has been created it can be added to Backoffice so that frontends service can pull down the interface.

  1. Navigate to the repositories page

Navigate to the repositories page

2. Add a new repository

Add a new repository

  • Name should describe the UI
  • Folder name will be the path of the UI on the domain e.g. workplace would map to https://my.domain/workplace/
  • Repository is the URL of your git repository with the UI builds
  • Repository type must be Interface for the deployment of a UI
  • Branch is the build branch of the User Interface

Set repository to interface

  1. You will need to register the new application on your domain.

    • Navigate to Domains
    Navigate to Domains
    • Select your application domain + Navigate to the applications tab + Press new Application
    Press new Application
    • The login URL should be set to the location of your oauth-resp.html file from ts-client

After that you should be able to access your application at the URL https://my.domain/<folder>/.

Once the application is setup in Backoffice it should automatically pull any changes to the set branch every hour.
If you to make a manual update there is a pull button in the about section of the repositories page.

Updating Interface

{% hint style=“info” %} Note that if you’ve set the commit on the repository not to be HEAD the automated pull feature will be turned off and the pull button will do nothing. {% endhint %}