Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools.
Go to file
2015-03-25 09:27:47 -04:00
bin delete setup.js 2014-08-25 00:04:51 +01:00
lib Fix editing, bugs after adding a playbook 2015-03-25 00:36:03 +00:00
playbooks Update site layout 2015-03-25 00:36:00 +00:00
public Fix editing, bugs after adding a playbook 2015-03-25 00:36:03 +00:00
.bowerrc Rename credential to identity, better UI 2014-09-11 18:42:13 +01:00
.gitignore delete setup.js 2014-08-25 00:04:51 +01:00
bower.json Update site layout 2015-03-25 00:36:00 +00:00
Dockerfile Improve readme & Dockerfile 2015-03-25 00:36:46 +00:00
LICENSE Initial commit 2014-08-23 23:43:31 +01:00
package.json Clean up the repository 2015-03-09 12:40:43 +00:00
README.md Fix merge conflicts 2015-03-25 11:06:26 +00:00
Vagrantfile Fix authentication failures & get rid of grunt 2015-03-09 12:26:12 +00:00

semaphore

Open Source Alternative to Ansible Tower

screenshot

Features

The basics of Ansible Tower, but in addition:

  • Fast, Simple interface (not having to submit a million forms to get something simple done)
  • Task output is streamed live via websocket
  • Create inventories per playbook
  • Add rsa keys (to authenticate git repositories)
  • Run playbooks against specified hosts
  • Multiple Users support

Docker quickstart

Run redis

docker run -d \
  --name=redisio \
  --restart=always \
  -v /var/lib/redisio:/var/lib/redis \
  -p 127.0.0.1:6379:6379 \
  castawaylabs/redis-docker

Run mongodb

docker run -d \
  --name=mongodb \
  --restart=always \
  -v /var/lib/mongodb:/var/lib/mongodb \
  -p 127.0.0.1:27017:27017 \
  castawaylabs/mongodb-docker

Run semaphore

docker run -d \
  --name=semaphore \
  --restart=always \
  --link redisio:redis \
  --link mongodb:mongo \
  -e MONGODB_URL="mongodb://mongo/semaphore" \
  -e REDIS_HOST="redis" \
  -p 80:80 \
  castawaylabs/semaphore

Development

  1. Install VirtualBox & Vagrant
  2. Run vagrant plugin install gatling-rsync-auto
  3. Run vagrant up to start the vagrant box
  4. Run vagrant gatling-rsync-auto to synchronise changes from your local machine to vagrant

Running semaphore inside vagrant

  1. vagrant ssh, cd /opt/semaphore
  2. npm install
  3. bower install
  4. npm install -g nodemon
  5. nodemon bin/semaphore

Initial Login

Email:			'admin@semaphore.local'
Password:		'CastawayLabs'

Environment Variables

Use these variables to override the config.

Variable Name Description Default Value
PORT Web Port 80
REDIS_PORT Redis Port 6379
REDIS_HOST Redis Hostname 127.0.0.1
REDIS_KEY Redis auth key
BUGSNAG_KEY Bugsnag API key
SMTP_USER Mandrill smtp username
SMTP_PASS Mandrill smtp password
MONGODB_URL Mongodb URL mongodb://127.0.0.1/semaphore

Vision and goals for v1

  • Be able to specify environment information per playbook / per task
  • Schedule jobs
  • Email alerts
  • Multiple user support

Note to Ansible guys

Thanks very much for making Ansible, and Ansible Tower. It is a great tool!. Your UI is pretty horrible though, and so we'd be happy if you could learn and use parts of this tool in your Tower.

It would be amazing if this could be your Community Edition of Ansible Tower.

License

MIT