Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools.
Go to file
2016-03-16 21:49:43 +00:00
database Use proper github path 2016-03-16 21:49:43 +00:00
lib RE ISSUE-56: Prepend PATH and add PYTHONPATH to spawn env args 2015-12-29 17:33:14 +00:00
migration Use proper github path 2016-03-16 21:49:43 +00:00
models Initial v2 work 2016-01-05 00:32:53 +01:00
playbooks Use proper github path 2016-03-16 21:49:43 +00:00
public RE ISSUE-56: Prepend PATH and add PYTHONPATH to spawn env args 2015-12-29 17:33:14 +00:00
routes Use proper github path 2016-03-16 21:49:43 +00:00
util Use proper github path 2016-03-16 21:49:43 +00: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 ignore build/ 2016-01-20 19:25:05 +00:00
bower.json Update site layout 2015-03-25 00:36:00 +00:00
circle.yml Initial v2 work 2016-01-05 00:32:53 +01:00
docker-compose.yml Initial v2 work 2016-01-05 00:32:53 +01: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
main.go Use proper github path 2016-03-16 21:49:43 +00:00
make.sh Proper build architectures 2016-01-06 12:38:01 +01:00
README.md Readme description 2016-01-20 19:31:50 +00:00

V2 branch

Beware WIP

Changes:

  • Deployment made easier
  • Everything is in one package, you just download the 'semaphore' binary for your architecture and off you go.
  • Changes to Mysql
  • API may be incompatible, but some endpoints will be same
  • Node -> go
  • Frontend will remain the same
  • Multi-users can share projects / groups / company ?
  • Alert system / Email
  • Greater configuration over the system

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

Articles

License

MIT