Skip to content

sfreiberg/shepherd

Repository files navigation

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.

About

Manage your servers with ease and sophistication

Resources

License

Stars

Watchers

Forks

Packages

No packages published