Bringing up a Frontastic Machine

BETA

To work on the backend for frontend of your project, you'll need a Frontastic Machine and you'll also need to set up code synchronization. To do this, follow the steps below.

1
Bring up a Frontastic Machine in Backstage by using the + icon under Developer > Machines
2
On the first boot of the Frontastic Machine you will need to wait quite a bit since we are setting up everything fresh and clean for you

Once finished you can copy essential details about your Frontastic Machine using the copy icon or use the eye icon to reveal the password:

Reveal and Copy Password GIF

3
Now try logging in using SSH from the shell (or your favorite SSH client), for example:
ssh vagrant@my-dev-host-demo.frontastic.dev
4
If that works properly, replace the ssh command with ssh-copy-id so that the public part of your SSH key ends up on the machine, for example:
ssh-copy-id vagrant@my-dev-host-demo.frontastic.dev

Once this runs successfully you should be able to login to the machine over SSH without entering a password. You can then either user Frontastic CLI (see this article) or you can follow the steps below to install Mutagen.

5
Install mutagen.io to a directory which is in your PATH (it could even be the code checkout directory itself) 
We use mutagen.io for code synchronization, it's a resource-efficient, cross-platform tool. Mutagen comes with the binary mutagen and a package mutagen-agents.tar.gz. You need both files in the same directory and mustn't extract the mutagen-agents.tar.gz file but leave it there as is.
6
Download the backend (or backend + frontend) code synchronization config from your Frontastic Machine in Backstage and store the file in your code checkout as mutagen.yml
Download the Backend Code GIF

Note: This config will change when you shut down and bring up a Frontastic Machine again and also when you create a new Machine. That means you need to download a new config.

7

You should also download the /etc/hosts snippet for your Machine from Backstage and add/update your computer's /etc/hosts file accordingly.

8
Run Mutagen in the root directory of your checkout code using:
mutagen project start

Mutagen will now do it's magic, which might take a while on first start. Once the command has finished, you'll have the Mutagen daemon running in the background. This watches your code files and files on the Frontastic Machine, and synchronizes between them when necessary.

We only perform two-way synchronization where absolutely necessary. Everything else is synchronized strictly in one direction. That means especially: src/ is only synchronized upstream and vendor/ is only synchronized downstream. This is important to know for dependency management. 

Working with Mutagen

Once you're done with your work you can shutdown Mutagen using:

mutagen project terminate

If you experience any kind of issues you can use the following command to inspect the state of Mutagen:

mutagen project list

Dependency Management (Composer) and Filesync

Synchronizing code between your local host and the remote Frontastic Machine is a non-trivial task. To make it as simple and therefore resilient as possible we decided to synchronize as much one-way as possible. Therefore, dependencies must be managed on the remote host!

To install or remove a package do the following:

  1. SSH into the Frontastic Machine (see above)
  2. cd into your project directory (for example, cd demo_english)
  3. Run the corresponding composer command there (see getcomposer.org)

The composer.json and composer.lock files will then be synchronized downstream to your code checkout so that you can commit any changes.

Running the Frontend

To run the frontend, please use Frontastic CLI as explained in the next article.


‹ Back to Article List

Next Article ›

Frontastic CLI

Still need help? Contact us Contact us