Skip to content

Unfetter Build Types & Run Modes

Alchemist edited this page Oct 16, 2018 · 13 revisions

Build Types

Unfetter has a number of different ways that you may want to deploy the stack. The main differences are UAC or Demo and Production or Development

Development or Production

In "development" mode, Unfetter will build, from source, all of the docker containers and will deploy with developer settings turned on. This includes live reloading of the source and running a separate Unfetter-UI container vs compiling the UI code and storing in the Gateway container, and there are ports open to many of the containers including the database and API. You should never deploy Development on an internet facing machine.

Development runs best if running locally. However, the "Production" deployment can be run remotely using Ansible to manage the deployment.

UAC vs DEMO

In UAC mode, either GitHub or GitLab is used for user authentication. Its up to you to create an OAuth application in GitHub or GitLab and properly configure. You can use the Unfetter UAC page to learn how to configure.

In Demo mode, there is no user authentication. Anyone can add, edit or delete from the instance.

Legacy vs Standard

Unfetter has the ability to deploy for legacy browsers if desired. This is not recommended unless absolutely necessary.

Naming your Build Instance

Using group variables, Ansible is able to determine how to build with these three build types using already named hosts. The hosts are found in the hosts.ini file. The variables are set in the group_vars file. Most people can build their Unfetter environment without changing the variables in the group_vars. Overloading deployment specific information, like ssh key location, domains, etc, can be done with host_vars. All this is explained in the Ansible Pages

The following is a list of the deployment names

Name UAC? Dev or Prod Legacy
dev Y Dev N
dev-demo N Dev N
prod-uac Y Prod N
prod-demo N Prod N
prod-legacy-uac Y Prod Y
prod-legacy-demo N Prod Y

Development

ansible-playbook deploy-dev.yml

Description: This mode will build Unfetter from source. The API and UI will be running with live reloading for code changes. This mode is not for multi-user setups.

Deploy

Change the hosts.ini file so that the proper deployment type, listed above, is part of the "deployed" group

ansible-playbook deploy.yml

DEMO

This mode requires the least configuration. A hidden mock user will be created but functionality of user-related features is not guaranteed. Various sections of the web site will be blocked off in this run mode.

UAC

This mode enabled UAC through GitHub OAuth. This mode -requires- various configurations to made before the application will run.

For more information, see: Unfetter UAC Guide

TEST

The TEST mode is for Unfetter developers only. The unit tests currently using this mode do not require any changes to the docker-compose file, as the tests will set the mode themselves.