Install Prerequisites
This page shows an overview of the prerequisites and different methods to install Semaphore Community Edition on your systems. If you have any questions or issues during installation, you can get help in the official Semaphore Discord server.
Overview
A Semaphore CI/CD platform consists of two components:
- Control plane: the control plane orchestrates jobs, serves the web application and public API, handles logging, manages permissions, and connects with your repositories. The control plane requires a Kubernetes cluster or a server running k3s.
- Agents: the only purpose of an agent is to run jobs. The default Semaphore installation includes one agent that runs on the same cluster as the control plane. Agents connect to the control plane, waiting for jobs to be scheduled. See self-hosted agents to learn how to scale your Semaphore setup.
Prerequisites
To install Semaphore, you need:
- A DNS domain
- The ability to create A, AAAA, or CNAME records for your domain
- A Kubernetes cluster or a Ubuntu machine
- The node or machine should have at least 16 GB of RAM and 8 CPUs
- Installation and setup time: about 1-2 hours
Choose your platform
You can install Semaphore on a single Linux/Ubuntu machine or in a Kubernetes cluster.
Each platform presents trade-off. Use the following table as a guide:
Facility | Single-alone machine | Kubernetes cluster |
---|---|---|
Backup and restore | Simple | Complex |
Infraststructure costs | Lower | Higher |
Scalability of control plane | Low ⓘCan only be scaled vertically with a more powerful machine. | High ⓘCan be scaled horizontally and vertically. |
Scalability of job runner (agents) | High | High |
Redundancy | None | High |
Availability | Low ⓘServer is single point of failure. | High ⓘIf a node goes down, Kubernetes can autoheal. |