Skip to content
This repository has been archived by the owner on Mar 28, 2020. It is now read-only.
sebastian-raubach edited this page Oct 12, 2017 · 1 revision

Prerequisites

Please make sure the following items are available on the system you are trying to build the Germinate Builder on.

Setup

Database

The Germinate Builder uses a very simple database to keep track of the instances that can be built using the web interface. To set this database up, run the database/germinate_builder.sql file against an empty MySQL database.

For the Germinate Builder to be able to talk to this database, set up a database user that has read permissions on all tables. The database and user information will be required in the config.properties file that is explained in the section below.

Configuration

Database

Here is a description of the columns of each table within the database:

instance_types

This table should not be touched.

id
The primary key of the table.
description
The description of the instance type.

instances

The instances table contains the Germinate and Gatekeeper instances that can be deployed using the web interface.

id
The primary key of the table.
deploy_name
The name of the webapp that is deployed to Tomcat. If you want your Germinate/Gatekeeper to appear as http://domain/this-is-a-test, then this column should contain this-is-a-test
instance_name
For Germinate instances, this represents the name of the subfolder within the instance-stuff folder in the source code.
display_name
The name that is displayed on the Germinate Builder web interface when selecting the instances to build.
url
The URL of the deployed product.
url_description
The name to display to represent this URL.
browser_opt
Set to false for production environments, set to one of safari, gecko1_8, ie8, ie9, ie10 for browser-specific optimization. This significantly reduces compile time, but should never be used for production
compile_opt
Set to 0 for production environments, set to 1 for faster compile time for testing.
google_analytics
Should Google Analytics be enabled? This is useful to be able to disable Google Analytics on a test build, so that the statistics aren't biased.
tomcat_url
The deployment URL of Tomcat. This usually ends with /manager/text
tomcat_username
The username of a Tomcat user that has at least the `manager-script` role.
tomcat_password
The password for the Tomcat user.
enabled
Should this instance be enabled in Germinate Builder. Set to 0 to hide instances from the user interface.
type_id
Foreign key referring to the instance_types table. This differentiates between instances of Germinate and Gatekeeper.

user_permissions

Germinate Builder can either be used with or without user authentication. Using it without user authentication means that anyone who is able to see the web interface can initiate a build process. This may be useful if you are running the Germinate Builder on an internal server or behind Apache password protection.

If you want to use the integrated user authentication, you will need a working copy of Germinate Gatekeeper running on your server. You can then grant access permissions to Gatekeeper users and they can log in with their Gatekeeper credentials. This is particularly useful if you are already using Gatekeeper and just want to grand access permissions to existing users.

The user_permissions table is used to say which user has access to which instance within the Germinate Builder.

id
The primary key of the table.
user_id
The id of the user within the Gatekeeper users table.
id
Foreign key referring to the item in the instances table.

config.properties

path.germinate=<Path to the Germinate source code>
path.gatekeeper=<Path to the Gatekeeper source code>
path.ant=<Path to the Ant executable>

api.key=<API key of Crowdin, required if you want to download translations>

build.enabled=<Should the option to deploy to Tomcat be enabled?>
s3.upload.enabled=<Should the option to upload to Amazon AWS be enabled?>

email.address=<The email address used to send notification emails>
email.username=<The username for this email address>
email.password=<The password for this email address>
email.server=<The email server for this email address>
email.port=<The port for the email server>

builder.server=<The database server hosting the Germinate Builder database>
builder.database=<The name of the actual database within the server>
builder.username=<The username for the user with access to the database>
builder.password=<The password for the user with access to the database>

gatekeeper.server=<The database server hosting the Germinate Gatekeeper database>
gatekeeper.database=<The name of the actual database within the server>
gatekeeper.username=<The username for the user with access to the database>
gatekeeper.password=<The password for the user with access to the database>

amazon.s3.access.key=<The Amazon AWS access key>
amazon.s3.access.key.secret=<The Amazon AWS access key secret>
amazon.s3.bucket.name=<The name of the Amazon AWS bucket>
amazon.s3.target.folder=<The target folder within the bucket. Use "%s" to make room for a date placeholder>

build.properties

project.name=<The deployment name of the web application, e.g. "germinate-builder"
tomcat.manager.url=<The deployment URL of Tomcat. This usually ends with "/manager/text">
tomcat.manager.username=The username of a Tomcat user that has at least the `manager-script` role.</dd>
tomcat.manager.password=The password for the Tomcat user.

Deployment

Once the database and configuration are taken care of, deploying the Germinate Builder is a matter of running ant in the root directory of the source code. This will then build and deploy the Builder.

Once this finishes, you will be able to use the web interface. Depending on the configuration this will require you to log in using a Gatekeeper user account.