flynn

module
v0.0.0-...-d27a5c1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2015 License: BSD-3-Clause

README

Welcome to Flynn

Flynn is a next generation open source Platform as a Service (PaaS).

Unlike most PaaS's, Flynn can run stateful services as well as twelve-factor apps. This includes built-in database appliances (just Postgres to start). Flynn is modular so users can easily modify, upgrade, and replace components.

Flynn components are divided into two layers.

Layer 0 is a low-level resource framework inspired by the Google Omega paper. Layer 0 also includes service discovery.

Layer 1 is a set of higher level components that makes it easy to deploy and maintain applications and databases.

You can learn more about the project at the Flynn website.

Status

Flynn is in active development and currently unsuitable for production use.

Users are encouraged to experiment with Flynn but should assume there are stability, security, and performance weaknesses throughout the project. This warning will be removed when Flynn is ready for production use.

Please report bugs as issues on this repository after searching to see if anyone has already reported the issue.

Getting Started

Managed cluster

We have a web dashboard for launching Flynn clusters on your Amazon Web Services account.

Run your own cluster

If you want to setup and run your own Flynn cluster (either locally, on dedicated hardware or using a cloud provider) take a look at the Installation Guide.

Deploying applications

Check out the Using Flynn guide for instructions on deploying and scaling applications.

Components

Layer 0

discoverd The Flynn service discovery system.

host The Flynn host service, manages containers on each host and provides the scheduling framework.

Layer 1

blobstore A simple, fast HTTP file service.

bootstrap Bootstraps Flynn Layer 1 from a JSON manifest using the Layer 0 API.

cli Command-line Flynn HTTP API client.

controller Provides management and scheduling of applications running on Flynn via an HTTP API.

gitreceived An SSH server made specifically for accepting git pushes.

postgresql Flynn PostgreSQL database appliance.

receiver Flynn's git deployer.

router Flynn's TCP/HTTP router/load balancer.

slugbuilder Turns a tarball into a Heroku-style "slug" using buildpacks.

slugrunner Runs Heroku-like slugs.

taffy Taffy pulls git repos and deploys them to Flynn.

Contributing

We welcome and encourage community contributions to Flynn.

Since the project is still unstable, there are specific priorities for development. Pull requests that do not address these priorities will not be accepted until Flynn is production ready.

Please familiarize yourself with the Contribution Guidelines and Project Roadmap before contributing.

There are many ways to help Flynn besides contributing code:

  • Find bugs and file issues.
  • Improve the documentation and website.

Learn more at flynn.io.

Flynn is a trademark of Prime Directive, Inc.

Directories

Path Synopsis
Godeps
_workspace/src/bitbucket.org/kardianos/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
_workspace/src/github.com/agl/ed25519
Package ed25519 implements the Ed25519 signature algorithm.
Package ed25519 implements the Ed25519 signature algorithm.
_workspace/src/github.com/agl/ed25519/edwards25519
Package edwards25519 implements operations in GF(2**255-19) and on an Edwards curve that is isomorphic to curve25519.
Package edwards25519 implements operations in GF(2**255-19) and on an Edwards curve that is isomorphic to curve25519.
_workspace/src/github.com/bgentry/que-go
Package que-go is a fully interoperable Golang port of Chris Hanks' Ruby Que queueing library for PostgreSQL.
Package que-go is a fully interoperable Golang port of Chris Hanks' Ruby Que queueing library for PostgreSQL.
_workspace/src/github.com/boltdb/bolt
Package bolt implements a low-level key/value store in pure Go.
Package bolt implements a low-level key/value store in pure Go.
_workspace/src/github.com/codegangsta/inject
Package inject provides utilities for mapping and injecting dependencies in various ways.
Package inject provides utilities for mapping and injecting dependencies in various ways.
_workspace/src/github.com/cupcake/goamz/ec2/ec2test
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.
_workspace/src/github.com/dgryski/go-skip32
Package skip32 implements the Skip32 blockcipher
Package skip32 implements the Skip32 blockcipher
_workspace/src/github.com/docker/docker/pkg/mflag
Package flag implements command-line flag parsing.
Package flag implements command-line flag parsing.
_workspace/src/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
_workspace/src/github.com/docker/libcontainer/netlink
Packet netlink provide access to low level Netlink sockets and messages.
Packet netlink provide access to low level Netlink sockets and messages.
_workspace/src/github.com/docker/libtrust
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
_workspace/src/github.com/flynn/go-check
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
_workspace/src/github.com/flynn/go-docopt
Package docopt parses command-line arguments based on a help message.
Package docopt parses command-line arguments based on a help message.
_workspace/src/github.com/flynn/go-sql
Package sql provides a generic interface around SQL (or SQL-like) databases.
Package sql provides a generic interface around SQL (or SQL-like) databases.
_workspace/src/github.com/flynn/go-sql/driver
Package driver defines interfaces to be implemented by database drivers as used by package sql.
Package driver defines interfaces to be implemented by database drivers as used by package sql.
_workspace/src/github.com/flynn/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
_workspace/src/github.com/flynn/pq/listen_example
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
_workspace/src/github.com/flynn/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.
_workspace/src/github.com/flynn/tail/ratelimiter
Package ratelimiter implements the Leaky Bucket ratelimiting algorithm with memcached and in-memory backends.
Package ratelimiter implements the Leaky Bucket ratelimiting algorithm with memcached and in-memory backends.
_workspace/src/github.com/fsouza/go-dockerclient
Package docker provides a client for the Docker remote API.
Package docker provides a client for the Docker remote API.
_workspace/src/github.com/fsouza/go-dockerclient/testing
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
_workspace/src/github.com/go-martini/martini
Package martini is a powerful package for quickly writing modular web applications/services in Golang.
Package martini is a powerful package for quickly writing modular web applications/services in Golang.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/gorilla/securecookie
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
_workspace/src/github.com/gorilla/sessions
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
_workspace/src/github.com/howeyc/fsnotify
Package fsnotify implements file system notification.
Package fsnotify implements file system notification.
_workspace/src/github.com/inconshreveable/go-update
Package update allows a program to "self-update", replacing its executable file with new bytes.
Package update allows a program to "self-update", replacing its executable file with new bytes.
_workspace/src/github.com/jackc/pgx
Package pgx is a PostgreSQL database driver.
Package pgx is a PostgreSQL database driver.
_workspace/src/github.com/jackc/pgx/stdlib
Package stdlib is the compatibility layer from pgx to database/sql.
Package stdlib is the compatibility layer from pgx to database/sql.
_workspace/src/github.com/julienschmidt/httprouter
Package httprouter is a trie based high performance HTTP request router.
Package httprouter is a trie based high performance HTTP request router.
_workspace/src/github.com/kavu/go_reuseport
Package reuseport provides a function that returns a net.Listener powered by a net.FileListener with a SO_REUSEPORT option set to the socket.
Package reuseport provides a function that returns a net.Listener powered by a net.FileListener with a SO_REUSEPORT option set to the socket.
_workspace/src/github.com/kr/binarydist
Package binarydist implements binary diff and patch as described on http://www.daemonology.net/bsdiff/.
Package binarydist implements binary diff and patch as described on http://www.daemonology.net/bsdiff/.
_workspace/src/github.com/martini-contrib/binding
Package binding transforms, with validation, a raw request into a populated structure used by your application logic.
Package binding transforms, with validation, a raw request into a populated structure used by your application logic.
_workspace/src/github.com/martini-contrib/render
Package render is a middleware for Martini that provides easy JSON serialization and HTML template rendering.
Package render is a middleware for Martini that provides easy JSON serialization and HTML template rendering.
_workspace/src/github.com/miekg/dns
Package dns implements a full featured interface to the Domain Name System.
Package dns implements a full featured interface to the Domain Name System.
_workspace/src/github.com/miekg/dns/idn
Package idn implements encoding from and to punycode as speficied by RFC 3492.
Package idn implements encoding from and to punycode as speficied by RFC 3492.
_workspace/src/github.com/mistifyio/go-zfs
Package zfs provides wrappers around the ZFS command line tools.
Package zfs provides wrappers around the ZFS command line tools.
_workspace/src/github.com/natefinch/lumberjack
Package lumberjack provides a rolling logger.
Package lumberjack provides a rolling logger.
_workspace/src/github.com/rnd42/go-jsonpointer
jsonpointer follows the IETF RFC 6901 spec for dereferenceing arbitrary values from JSON data structures.
jsonpointer follows the IETF RFC 6901 spec for dereferenceing arbitrary values from JSON data structures.
_workspace/src/github.com/technoweenie/grohl
Grohl is an opinionated library for gathering metrics and data about how your applications are running in production.
Grohl is an opinionated library for gathering metrics and data about how your applications are running in production.
_workspace/src/github.com/wadey/cryptorand
Package cryptorand provides a math/rand.Source implementation of crypto/rand
Package cryptorand provides a math/rand.Source implementation of crypto/rand
_workspace/src/golang.org/x/crypto/nacl/secretbox
Package secretbox encrypts and authenticates small messages.
Package secretbox encrypts and authenticates small messages.
_workspace/src/golang.org/x/crypto/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
_workspace/src/golang.org/x/crypto/salsa20/salsa
Package salsa provides low-level access to functions in the Salsa family.
Package salsa provides low-level access to functions in the Salsa family.
_workspace/src/golang.org/x/crypto/ssh
Package ssh implements an SSH client and server.
Package ssh implements an SSH client and server.
_workspace/src/golang.org/x/crypto/ssh/agent
Package agent implements a client to an ssh-agent daemon.
Package agent implements a client to an ssh-agent daemon.
_workspace/src/golang.org/x/crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
_workspace/src/golang.org/x/crypto/ssh/test
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
_workspace/src/golang.org/x/net/websocket
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
_workspace/src/gopkg.in/inconshreveable/log15.v2
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
_workspace/src/gopkg.in/inconshreveable/log15.v2/stack
Package stack implements utilities to capture, manipulate, and format call stacks.
Package stack implements utilities to capture, manipulate, and format call stacks.
_workspace/src/gopkg.in/tomb.v1
The tomb package offers a conventional API for clean goroutine termination.
The tomb package offers a conventional API for clean goroutine termination.
appliance
postgresql command
postgresql/api command
cli
client
Package controller provides a client for the controller API.
Package controller provides a client for the controller API.
deployer command
examples command
scheduler command
cli
flynn-init command
cmd/pinkerton command
pkg
cluster
Package cluster implements a client for the Flynn host service.
Package cluster implements a client for the Flynn host service.
cors
Package cors provides handlers to enable CORS support.
Package cors provides handlers to enable CORS support.
demultiplex
Package demultiplex demultiplexes Docker attach streams
Package demultiplex demultiplexes Docker attach streams
pinned
Package pinned provides a dial function that checks TLS server certificates against local pins.
Package pinned provides a dial function that checks TLS server certificates against local pins.
rpcplus
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
rpcplus/jsonrpc
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
sse
key-check command
client
Package client provides a client for the router API.
Package client provides a client for the router API.
examples/client command
examples/server command
apps/echoer command
apps/ish command
apps/ping command
apps/signal command
arg
runner command
util
bump-buildpacks command
release command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL