Development Build
A development build is intended only for developers who want to run a Semaphore locally for test and development purposes. Do not use this installation method for production.
Requirements
Preparation
-
Install and configure mkcert
mkcert -install
mkcert '*.semaphore.localhost' -
Start Minikube with 8 CPUs and 16 GB of RAM
minikube start --cpus 8 --memory 16384 --profile semaphore
minikube profile semaphore
minikube ip # Note this IP for later
minikube addons enable ingress
minikube tunnel # Run in separate terminal -
Install Emissary Ingress CRDs
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system -
Setup Helm
cd helm-chart && make helm.create && cd ..
helm repo add ambassador https://app.getambassador.io
helm repo add semaphore https://renderedtext.github.io/helm-charts
Install Semaphore
-
Configure Skaffold
Update
skaffold.yaml
with your minikube IP and certificates:- Set
global.domain.ip
to the output of minikube ip. - Set
ingress.ssl.crt
andingress.ssl.key
to the contents of the .pem and .key files generated by mkcert.
- Set
-
Start Semaphore
skaffold dev # Initial startup takes 30-60 minutes depending on your machine
-
Obtain login credentials
# Get credentials
kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_EMAIL}' | base64 -d
kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_PASSWORD}' | base64 -d
kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_TOKEN}' | base64 -d -
Open
https://id.semaphore.localhost
and log in