diff --git a/semaphore/README.md b/semaphore/README.md new file mode 100644 index 0000000..961fa01 --- /dev/null +++ b/semaphore/README.md @@ -0,0 +1,17 @@ +# Semaphore + +Last Updated: Sat August 31, 2024 20:32:09 PDT +In progress, do data dir. + +## Overview +Docker Hub: https://hub.docker.com/r/semaphoreui/semaphore +Project: https://semaphoreui.com/ +Docker Compose Example: https://docs.semui.co/administration-guide/installation#docker +Proxy Port: 3000 + +## Notes + +Trouble shooting +The trick to getting this going is loggin into the container and running +semaphore commands +you can generate the config.json file that way diff --git a/semaphore/config/config.json b/semaphore/config/config.json new file mode 100644 index 0000000..7953a43 --- /dev/null +++ b/semaphore/config/config.json @@ -0,0 +1,39 @@ +{ + "bolt": { + "host": "/home/ubuntu/semaphore.bolt" + }, + "dialect": "bolt", + "port": "", + "interface": "", + "tmp_path": "/tmp/semaphore", + "cookie_hash": "*****", + "cookie_encryption": "*****", + "access_key_encryption": "*****", + "email_sender": "", + "email_host": "", + "email_port": "", + "web_host": "", + "ldap_binddn": "", + "ldap_bindpassword": "", + "ldap_server": "", + "ldap_searchdn": "", + "ldap_searchfilter": "", + "ldap_mappings": { + "dn": "", + "mail": "", + "uid": "", + "cn": "" + }, + "telegram_chat": "", + "telegram_token": "", + "concurrency_mode": "", + "max_parallel_tasks": 0, + "email_alert": false, + "telegram_alert": false, + "slack_alert": false, + "slack_url": "", + "rocketchat_alert": false, + "rocketchat_url": "", + "ldap_enable": false, + "ldap_needtls": false + } \ No newline at end of file diff --git a/semaphore/docker-compose.yml b/semaphore/docker-compose.yml index 86bd000..22469e9 100644 --- a/semaphore/docker-compose.yml +++ b/semaphore/docker-compose.yml @@ -1,57 +1,18 @@ version: "3.4" -################################################################################ -# Semaphore -# -# https://docs.semui.co/administration-guide/installation#docker -# port 3000 -# SEMAPHORE_ACCESS_KEY_ENCRYPTION — head -c32 /dev/urandom | base64 -# -# Trouble shooting -# The trick to getting this going is loggin into the container and running -# semaphore commands -# you can generate the config.json file that way -# -# Sample env -# DB_V=latest -# SEMAPHORE_PORT=3000 -# SEMAPHORE_MYSQL_ROOT_PASSWORD=ChangeThisPassword -# SEMAPHORE_MYSQL_PASSWORD=ChangePassword -# SEMAPHORE_MYSQL_PASSWORD=ChangePassword -# SEMAPHORE_ADMIN_EMAIL=example@example.com -# SEMAPHORE_ACCESS_KEY_ENCRYPTION=dfTa9mOCsaoM1zZ+YBE+eGSZnEB0sXvHePhatj9ohuk= -################################################################################ services: - - semaphoredb: - image: mariadb:${DB_V:-latest} - restart: always - volumes: - - ./data/semaphoredb:/var/lib/mysql - environment: - MYSQL_ROOT_PASSWORD: ${SEMAPHORE_MYSQL_ROOT_PASSWORD:-changeme} - MYSQL_PASSWORD: ${SEMAPHORE_MYSQL_PASSWORD:-changeme1234} - MYSQL_DATABASE: semaphore - MYSQL_USER: semaphore - semaphore: + image: ${SEMAPHORE_IMAGE:-semaphoreui/semaphore:latest} + environment: + SEMAPHORE_DB_DIALECT: ${SEMAPHORE_DB_DIALECT:-bolt} + SEMAPHORE_PLAYBOOK_PATH: ${SEMAPHORE_PLAYBOOK_PATH:-/tmp/semaphore/} + SEMAPHORE_ADMIN_PASSWORD: ${SEMAPHORE_ADMIN_PASSWORD:-changeadmin1234} + SEMAPHORE_ADMIN_NAME: ${SEMAPHORE_ADMIN_NAME:-admin} + SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL:-admin@localhost} + SEMAPHORE_ACCESS_KEY_ENCRYPTION: ${SEMAPHORE_ACCESS_KEY_ENCRYPTION:-dfTa9mOCsaoM1zZ+YBE+eGSZnEB0sXvHePhatj9ohuk=} + SEMAPHORE_LDAP_ACTIVATED: ${SEMAPHORE_LDAP_ACTIVATED:-no} + volumes: + - ${CONFIG_VOL:-./config}/config.json:/home/semaphore/config.json + #- ./config/ssh/:/home/semaphore/.ssh ports: - ${SEMAPHORE_PORT:-3000}:3000 - image: semaphoreui/semaphore:latest - environment: - SEMAPHORE_DB_USER: semaphore - SEMAPHORE_DB_PASS: ${SEMAPHORE_MYSQL_PASSWORD:-changeme1234} - SEMAPHORE_DB_HOST: semaphoredb # for postgres, change to: postgres - SEMAPHORE_DB_PORT: 3306 # change to 5432 for postgres - SEMAPHORE_DB_DIALECT: mysql # for postgres, change to: postgres - SEMAPHORE_DB: semaphore - SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/ - SEMAPHORE_ADMIN_PASSWORD: ${SEMAPHORE_MYSQL_PASSWORD:-changeadmin1234} - SEMAPHORE_ADMIN_NAME: admin - SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL:-admin@localhost} - SEMAPHORE_ADMIN: admin - SEMAPHORE_ACCESS_KEY_ENCRYPTION: ${SEMAPHORE_ACCESS_KEY_ENCRYPTION:-dfTa9mOCsaoM1zZ+YBE+eGSZnEB0sXvHePhatj9ohuk=} - SEMAPHORE_LDAP_ACTIVATED: 'no' # if you wish to use ldap, set to: 'yes' - volumes: - - ./config/config.json:/home/semaphore/config.json - - ./config/ssh/:/home/semaphore/.ssh diff --git a/semaphore/sample-extends.yml b/semaphore/sample-extends.yml new file mode 100644 index 0000000..71d85e9 --- /dev/null +++ b/semaphore/sample-extends.yml @@ -0,0 +1,7 @@ +version: '3.4' + +services: + semaphore: + extends: + file: ${COOKBOOK}/semaphore/docker-compose.yml + service: semaphore diff --git a/semaphore/sample.env b/semaphore/sample.env new file mode 100644 index 0000000..090b496 --- /dev/null +++ b/semaphore/sample.env @@ -0,0 +1,15 @@ +COOKBOOK=/git/docker-compose-cookbooks #HELP: cookbooks +VOL_CONFIG_PATH=./config #HELP: configpath +VOL_PATH=./data #HELP: volpath +TZ=America/Vancouver +# semaphore +SEMAPHORE_IMAGE=semaphoreui/semaphore:latest +SEMAPHORE_ACCESS_KEY_ENCRYPTION=1234567890123456789012345678901234567890 #HELP: gen32 +SEMAPHORE_PORT=3000 +SEMAPHORE_ADMIN_EMAIL=example@example.com +SEMAPHORE_DB_DIALECT=bolt +SEMAPHORE_LDAP_ACTIVATED=no +SEMAPHORE_ADMIN_NAME=admin +SEMAPHORE_ADMIN_EMAIL=admin@localhost +SEMAPHORE_ADMIN_PASSWORD=password +SEMAPHORE_PLAYBOOK_PATH=/tmp/semaphore/ \ No newline at end of file