Deploying with the v8.3 Controller - tooltwist/documentation GitHub Wiki

Background

Deploying applications in ToolTwist v8.3 has many improvements, and uses a fundamentally different process to the pre-v8.3 Controller:

  • The build process for an application is now performed using a command line utility. This utility, named simply tooltwist, can run in several modes:

    - build and run a designer for a web design project (including all the required extension projects). [This tutorial](https://github.com/tooltwist/documentation/wiki/Running-the-Standalone-Designer) explains how to install and run the utility.
    
    - build and deploy to a remote server, using a configuration file.
    
    - build and deploy to a remote server, using traditional Controller UI and config files. (To upgrade an existing Controller, this utility can be called directly from Hudson).
    
    - build and deploy into a Docker container.
    
  • The tooltwist utility, which replaces the previous Controller scripts, uses Gradle rather than Ant. The main benefit is Gradle's dependency management, where it resolves all the various jar files required by the application and downloads them from public repositories. [Gradle can be thought of as a 2nd generation version of Maven].

  • Unlike with the previous Controller applications are no longer built from raw source code. Even extension projects now get downloaded as jar files from repos. Before building an application, the jar files for extension projects must be published to repos.

  • We use Artifactory as our default private repository. http://repo.tooltwist.com is used to resolve the ToolTwist artifacts (ttWbd, ttStd, and tooltwist jars). For private projects you can set up your own Artifactory instance, or we can add a new repo to ours.

  • To publish a jar for your extension project into Artifactory, Gradle is also used (the first step mentioned below). This can be done from the command line, or a continuous integration tool such as CircleCi can be used, triggered automatically whenever you push source code to Github.

Before starting

The following tutorial may not be complete, but provides familiarity with the tooltwist CLI (command line interface): https://github.com/tooltwist/documentation/wiki/Web-Project-workflow---Creation-through-to-Deployment.

Steps to convert existing Projects

Step 1 - Preparing to use Gradle (obsolete, see https://github.com/tooltwist/documentation/wiki/Gradle-for-v8.4)

Step 2 - Preparing an extension project for v8.3

Step 3 - Preparing a web design project for v8.3

Step 4 - Running the Standalone Designer

Step 5 - Command line deployment

Step 6 - Using the full Controller

--

Setting up the remote server

Preparing a Server

Automatically instantiating Server Instances

--