Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools.
Go to file
Matej Kramny e8ce2a77b6 Fix magic REDIS_PORT variable
Its defined to `tcp://{ip}:6379` for some reason (maybe in the iojs dockerfile).
2015-04-24 08:35:22 +02: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 Update readme.md 2015-04-17 18:24:17 +01:00
.bowerrc Rename credential to identity, better UI 2014-09-11 18:42:13 +01:00
.dockerignore [fea] working with docker and fig 2015-03-31 17:45:37 +03: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 Fix magic REDIS_PORT variable 2015-04-24 08:35:22 +02:00
fig.yml [fea] working with docker and fig 2015-03-31 17:45:37 +03:00
LICENSE Initial commit 2014-08-23 23:43:31 +01:00
package.json [Update] Git url in package json 2015-03-31 21:03:56 -04:00
README.md Update readme.md 2015-04-17 18:24:17 +01: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 \
  redis

Run mongodb

docker run -d \
  --name=mongodb \
  -p 127.0.0.1:27017:27017 \
  mongo

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