Set up the Baton Server for Collaboration

The Baton Server allows members of a team to collaborate on After Effects files for a given project. Designers access the server through the Baton Panel in After Effects. The server allows users to lock the files when they’re working on them, and unlock them to hand off to other designers. In the event that a user has left their files locked, other users can force unlock the files. Note that the Baton Server doesn’t manage versioning or act as source control for a project.

A file’s lock or unlock status can be posted to a Slack channel via means of an integrated Slack webhook. While this is an optional step, having a Slack channel is recommended to ensure good collaboration when working in teams and with multiple files involved. The procedure below will describe the steps to set this up, whether you decide to do this from the start or after you’ve already created your server instance and set up your project.

Before You Start

Most of the Baton Server setup is done from the command line, but you’ll also need a web browser or other REST client during the process. APIs for the Baton Server are contained in Swagger, which is built into the server.

Having After Effects project files with the Baton Panel plugin installed is a necessary requirement to ultimately verify that the server and Slack are working properly, but if you just want to try out the server setup steps, any .aep files can be used to stand in for actual project files.

The steps below assume that you already have After Effects project files to use with the Baton Server, and have already installed the Baton Panel plugin.

Hosting the Baton Server

All of the Baton Server files you’ll need are located in the You.i Platform package files, within the Tools/BatonServer folder. Deciding where to host the Baton Server comes first: if you’ll be hosting it via AWS or on an intranet, you’ll need to know the IP address of the hosting location.

For hosting on an internal server or cloud server, you’ll need to copy the BatonServer files from the package to the hosting location, and then use the IP address to connect to the Baton Server.

You can also host the server locally, on your computer. If you choose to host the server locally, copy the BatonServer files from the package to another location on your machine.

A drawback to hosting locally is that the server isn’t accessible to others if the machine hosting the server is turned off. To ensure that the server is always on and accessible to everyone on your team, we recommend hosting it on an intranet or a cloud server.

For simplicity, the instructions for set up below assume that you’re hosting locally, and using Swagger where required.

Set up Your Project to Use the Baton Server

Start the Baton Server

In a terminal or Windows command prompt, navigate to the Baton Server platform directory (for example, youiengine/6.15.0/tools/BatonServer/OSX).

Start the Baton Server.


When the server starts up, you’ll see the URL of your server’s location (whether it’s hosted locally or elsewhere), the message “Application started. Press Ctrl+C to shut down,” and the path to the Baton Server files.

Add the New Project on the Server

As mentioned, the Baton Server includes REST APIs that are accessible via Swagger (built into the server) using a web browser or other REST client. These steps assume you’ll be accessing the APIs using Swagger.

Access Swagger via a web browser, entering the appropriate URL according to where the server files are hosted. For a local install of the server, the URL is http://localhost:15090/swagger.

Under the Baton Server API header, directly under a subheader called Project, is a list of APIs. Click POST to add a new project. Click Try it out when the programming interface opens. This will allow you to edit the values in the interface.

An interface with the following code appears:

 "name": "string",
 "slackWebHookUrl": "string"

Replace the first "string" field with the name of your project. If you’ve got one, add in the URL of your Slack webhook in the second "string" field. Otherwise, leave it blank for now. Leave all of the other fields untouched. Then click Execute.

A successful request results in an entry under the Server response section below the Request URL field, with a code of 201 and an output field under Response body. Record the value for id. You’ll need this project ID for the next step.

A screen capture of the REST api used to configure the Baton server

Add a .batonproj File to Your Project

Using a text editor, add a file named .batonproj to the folder where your project’s After Effects files are located.

In the file, add the following information:

project=<project ID you recorded in the previous step>

If you’re using an intranet or external server to host your Baton server, insert the IP host and port information in the server field instead of myhostname:15090, which is the default server location for a local install.

If you’re using a repository to manage your project files, be sure to commit the .batonproj file to the repo.

Add a Slack Webhook

Follow the usual steps for creating a dedicated Slack channel and webhook for it, which you can find in Slack’s API docs. You’ll be provided with a URL for your webhook.

Access the REST APIs in Swagger via a web browser, and enter the appropriate URL according to where the server files are hosted: http://<baton server hostname>:<baton port>/swagger. For a local install of the server, the URL is http://localhost:15090/swagger.

In Swagger, click the orange Put button. Click Try it out. In the "string" field beside "slackWebHookURL", add the webhook URL you got from Slack. Then click Execute. A Success message appears.

A screen capture of a successful Baton Server to Slack webhook configuration

Verify that your Slack integration works by locking and unlocking the Baton Panel within an AE file in your project. You’ll see the Slack channel immediately update the file’s status. You can also use Swagger to verify lock/unlock status updates in Slack, but testing your AE project files further ensures that the server and the project are configured correctly.