Skip to content
Manage your servers with ease and sophistication
Go JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples
LICENSE
README.md
apt.go
client.go
command.go
directory.go
file.go
file_utils.go
include.go
js_funcs.go
mysql.go
perms_darwin.go
perms_linux.go
postgres.go
result.go
service.go
shepherd.go
sleep.go
symlink.go
template.go
upstart.go
user.go
util.go
yum.go

README.md

Shepherd

Shepherd is configuration and server management wrapped in an easy to use, straightforward package.

Install

Installation instructions

Configuration Examples

To run these examples save them in a file and run shepherd followed by the name of the file(s) to run. For example if you created a file named web_servers.js you would call:

shepherd web_servers.js

Install packages on Debian based systems:

apt("example-pkg")
// Install multiple packages
apt(["example-pkg", "example-pkg2"])

Create 100 directories:

for (var i = 0; i<100; i++) {
    directory("test"+i)
}

Create a PostgreSQL user and database:

user = "example"

pg_user(
    user,
    "password",
    {
        username: "postgres",
        password: "",
        host: "localhost",
        port: 5432,
        ssl: false
    }
)

pg_database(
    "example",
    user,
    {
        username: "postgres",
        password: "",
        host: "localhost",
        port: 5432,
        ssl: false
    }
)

Create an operating system user:

user(
    "user1",
    {
        homeDir: "/home/user1",
        shell: "/bin/bash",
        uid: 500,
        gid: 500
        password: "$6$somegiantcrazyhashthathasbeencryptedorsomething"
    }
)

Check out more examples in the examples directory.

Current Features

  • Create your server configuration in javascript
  • Create OS users
  • Create MySQL databases and users
  • Create PostgreSQL databases and users
  • Enforce standard configuration files with templating
  • Single native binary with low overhead

Planned Features

  • Server implementation that can manage thousands of clients over http/https with very low overhead.
  • Run ad-hoc tasks over one or thousands of servers instantly.
  • *BSD support

Current Limitations

  • A limited set of actions are currently available.
  • Only actively developed on Linux.
  • No tests and limited testing at the moment.
  • Little code documentation.
Something went wrong with that request. Please try again.