Unfetter Build Types & Run Modes
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
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.
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.
Unfetter has the ability to deploy for legacy browsers if desired. This is not recommended unless absolutely necessary.
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 |
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.
Change the hosts.ini file so that the proper deployment type, listed above, is part of the "deployed" group
ansible-playbook deploy.yml
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.
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
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.
Made by NSA Information Assurance