Fasten makes it easy to setup and deploy to an Ubuntu or Amazon Linux instance easily.
How it works
Fasten manages everything over
ssh, this means that no additional software except for Fasten is required. Fasten does the following
- Provisions Ubuntu and Amazon Linux servers with your chosen language
- Deploys your code
- Manages your remote application processes
- Installs your application dependencies
Support Operating Systems
- Ubuntu 16.04
- Amazon Linux
Download the binary for your operating system from the releases page or compile locally by running
fasten initcommand. This will walk you through setting up an application. If you get stuck, there is an examples directory with a ruby and node.js application. It is important to note that you are responsible for completing the config to your application needs, so continuing on from this point without editing the
fasten.yamlwill not result in a working application. If you are running a Go application, the binary must be called main, see the examples directory.
fasten.yamlfile to include your application start command and if needed, a pre start command. This is important if your application needs static assets compiled or you need to run a IO operation before your main app starts.
Ensure to set the correct permissions on your key pair,
chmod 400 keypair.pem
Once you have your
fasten.yamlcomplete and you server is running, you can install the software needed for your applications by running
This will provision the server with all the dependencies you'll need. Once complete, you can deploy your code using
Fasten will copy your code to the server, install dependencies and start the process. The copy operation uses
scp, so all files are securely copied to the server. The dependencies are installed based on the package manager of choice, bundler or npm for example. The process of the application is managed by a PID file in the directory of your application. That pid is used by fasten to start and stop the process.
An optional feature of fasten is the ability to ignore files from the deploy. This is useful for when you are install local dependencies and don't want them copied to the server. Simply create a
.fastenignore file in the same directory as the fasten.yaml file and the files or directories will be ignore from deployments.
install #Provisions your instance with languages needed to run your application code. deploy #Deploys your code to server. stop #Stops all applications. init #Creates Fasten config file, this is for when you are already running and AWS instance and have your key pair
To install, use
$ go get -d github.com/DaveBlooman/fasten
- Fork (https://github.com/DaveBlooman/fasten/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./...command and confirm that it passes
- Create a new Pull Request