Configurations Repository - tooltwist/documentation GitHub Wiki
Starting in 2016, Twist Resources is moving towards using a separate configurations repository.
The main purposes of this repository are:
- to create a single starting point for working on a project.
- to create a logical separation of application code and configuration-related files.
- to keep passwords, API Keys, and other sensitive information out of Github.
Switching to a project
When switching to a project, the steps are:
- Download the scripts and config files from the config server, into ~/Configs/.
- Run CHECKOUT-PROJECTS if required, to download source code into /Development/projects/.
- Run CHECKOUT-ECLIPSE if required, to download source code into /Development/projects//eclipse-workspace.
- Run the numeric scripts to run up the application code and docker containers.
With the move to use Docker throughout the application lifecycle - development, testing, staging, production - we now need multiple configurations for each project. The following sections explain the common configurations.
Development Mode (dev)
This is the standard development mode.
The database, REDIS, SOLR, and any other support software is run in Docker containers on your local machine.
A video showing this install can be found here with a wiki here.
Standalone Designer Mode (cli)
When only the ability to edit the Web Design is required, the ToolTwist CLI can be used to run the Designer in standalone mode.
Extended Development Mode (dev-all)
This is similar to dev, except that other Twist Resources projects may be run from source code rather than in Docker.
Please note: This mode should only ever be used for debugging. In normal circumstances, each project should be developed and tested independently, usually by a different teams.
Dockerizing the Application (dockerize)
In this mode the application code is checked out and used to create a Docker image.
Testing the Application (test)
In test mode, all parts of the application are run inside Docker. Software used to perform the testing such as Selenium may also run in Docker.
Staging and Production Configurations (prod)
In production databases, caching and search is provided by Amazon services, so we don't need to run Docker images for these functions.
The volumes used by the application containers are installed from the config server directly to the servers we use for ECS.