| Table of Contents |
|---|
StartUp
startSemaphore.sh
| Code Block |
|---|
#!/usr/bin/env bash
set -euo pipefail
CONTAINER_NAME="semaphore"
IMAGE="public.ecr.aws/semaphore/pro/server:v2.16.51"
# Path to your Ansible roles / playbooks on the host
PLAYBOOK_PATH="$(pwd)/playbooks"
PLAYBOOK_DOCKER_PATH="/playboks"
echo "Stopping and removing existing container (if it exists)..."
docker stop "$CONTAINER_NAME" 2>/dev/null || true
docker rm "$CONTAINER_NAME" 2>/dev/null || true
echo "Creating required directories..."
mkdir -p config
mkdir -p data
echo "Starting Semaphore container..."
docker run --user 0 \
--cap-add=NET_RAW --cap-add=NET_ADMIN \
--name "$CONTAINER_NAME" \
-p 3000:3000 \
-e SEMAPHORE_DB_DIALECT=sqlite \
-e SEMAPHORE_ADMIN=admin \
-e SEMAPHORE_ADMIN_PASSWORD=password \
-e SEMAPHORE_ADMIN_NAME="Admin" \
-e SEMAPHORE_ADMIN_EMAIL=admin@localhost \
-v "$PLAYBOOK_PATH:$PLAYBOOK_DOCKER_PATH" \
-v "$(pwd)/data:/var/lib/semaphore" \
-v "$(pwd)/config:/etc/semaphore" \
-d "$IMAGE"
echo "Installing Additional Binaries"
docker exec -it semaphore sh -c "apk add --no-cache nmap nmap-scripts sqlite"
echo "Semaphore is running at http://localhost:3000"
echo "Playbooks mounted from: $PLAYBOOK_PATH to internal container path: $PLAYBOOK_DOCKER_PATH"
open http://localhost:3000 |
Navigate to: http://localhost:3000