Here you'll find a break down of various components within Faction
Services: The services that make up Faction
CLI: The Faction CLI, used to manage a Faction installation
Faction consists of several services working together.
The Console server acts as the public entry point to Faction. It provides access to both the Faction console as well as the internal API service. Both the Faction console and API are accessed over HTTPS, meaning that you only need to expose TCP port 443.
The API service provides access to all of Faction's features and serves as the authentication layer for Faction. It provides both REST and Socket.IO based APIs. Further details on using the API can be found in the API documentation
The Core service is responsible for handling all user and agent messages. One important thing to note about Factions design is that Core is the only service that decrypts agent messages.
Build servers provide a build environment for a given programming language. They're designed to be simple and unopionated, running shell commands provided by build configs for modules and agents. The idea behind this is to allow developers to control the build process in a way that makes sense to them and allows Faction to easily be extended to support modules and agents in new languages.
The .NET build service provides a Mono development environment that can be used to build .NET modules and agents.
Faction can be managed on the server its installed on through the Faction CLI. The following is an incomplete list of commands available through the CLI. Note that any command can be run with the
--help parameter to learn more about it.
Used to setup Faction
Starts all faction containers
Restarts all faction containers
Stops all faction containers
Shows the status of all faction containers
Depending on the parameter, removes files, containers, or the faction database