Tools / Buffalo-ocean

Buffalo-ocean

A github.com/gobuffalo/buffalo plugin for deploying docker to DigitalOcean

Forks: 1
Watchers: 1
Stars: 9

buffalo-ocean

A plugin for https://gobuffalo.io that makes deploying to DigitalOcean easier.

It assumes you are using Docker to deploy

Notice:

A 1GB DigitalOcean Standard Droplet will be created for you when using this plugin and being that DigitalOcean does charge for their services, hosting your site on this size droplet with them will cost you a $5 monthly fee. (DigitalOcean Pricing)

TODO:

  • Update deploy command to persist existing env vars configured during setup phase
  • Refactoring implementation & general cleanup
  • Add interactive version

Installation

$ go get -u -v github.com/wolves/buffalo-ocean

Setup

buffalo ocean setup --app-name YOURAPP --key YOUR_DIGITAL_OCEAN_KEY

This command will setup and create a new DigitalOcean server droplet for you and deploy your app to it, based on your projects Dockerfile.

Deploying

The initial setup command will do a deploy at the end, but anytime after that initial setup, you'll want to use the buffalo ocean deploy command to push a new version of your application, it'll even run your migrations for you as-long-as that step is provided in your projects Dockerfile.

$ buffalo ocean deploy --app-name YOURAPP

Flags/Options

There are a lot of flags and options you can use to manage what/how you deploy to DigitalOcean. Use the --help flag to see a list of them all.

Credits

  • Amber Framework - Many structural flow ideas for creating this plugin came from here. As-well-as how to manage DigitalOcean from docker-machine
  • Buffalo-Heroku - Referenced regularly for buffalo integration and golang guidance
  • Buffalo - The whole reason this plugin exists
  • The Buffalo Slack Channel - Thank you to everyone for the helpful guidance along the way
License: MIT License - A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.