Show HN: ā€œInstall on DigitalOceanā€ button for open source apps

  • Hey everybody. I built this small Sinatra app because I wanted a simpler way for people to install my software OneBody[1] on DigitalOcean.

    I'm not sure my little VPS will hold up under the strain of HN, but you can see the app in action at http://installer.71m.us and even use it to install itself (how meta!) on DigitalOcean.

    This uses the new MetaData[2] feature of the DO API to pass a config string to be processed by CloudConfig[3].

    Once that is done, there is a small bit of code running on the VM to tell this app when the install is finished so you get a progress bar while you're waiting.

    To be clear, DigitalOcean is doing all the real work -- this app simply acts as a hand-off between your app.yml config file on GitHub and the DigitalOcean API.

    [1] https://github.com/churchio/onebody

    [2] https://www.digitalocean.com/community/tutorials/an-introduc...

    [3] https://www.digitalocean.com/community/tutorials/an-introduc...

  • Love it! This is the exact type of thing that we hoped would come from providing the MetaData service.

    Please submit it to our projects page so we can highlight it:

    https://www.digitalocean.com/community/projects

  • I'd be interested in adding this button once it gets offical support from DigitalOcean.

    I added the Heroku Button[1] to a self-hosted OS app I wrote[2] and it seems to be useful (over 100 "recent deploys" per Heroku). It would be great if there was some affiliate commission as well - if someone signs up for a VPS to run an app, would be awesome to get a small kickback from DigitalOcean.

    [1]: https://buttons.heroku.com/

    [2]: https://github.com/swanson/stringer

  • Something Something WebIntents.

    Why is "DigitalOcean" a choice made by the app, instead of by the user? Can there be a standard for this sort of installation metadata?

  • How are you planning on handling support for this going forward?

    I have no specific need, I'm just always curious about how folks transition from, "I have a neat idea" to "I want my neat idea to work for most people".

  • same button for azure: http://www.bradygaster.com/post/the-deploy-to-azure-button

  • I have written something similar, it deploys Enferno (enferno.io) a flask based app on ubuntu (not necessarily digital ocean)

    it's an ansible playbook that configures the server and installs all requirements, and sets up nginx, python for you.

    whoever is interested, here is the source code:

    https://github.com/level09/enferno-ansible

  • Very neat. We did something very similar with the devo.ps button, allowing you to define configurable settings: http://devo.ps/blog/deploy-your-meteor-apps-on-digital-ocean...

    We have yet to properly document the feature, but we've used it in a few places already.

  • Great use of OAuth, API, and user data!

  • I like the idea, but runcmd could be dangerous as well as setting sudo permissions.

  • This is very cool, nice work!

  • Will definitely use :)

  • This is quite cool.

  • This is pretty exactly what I use fabfiles for.

  • Why not just use docker for this? Then you can install anywhere that has docker.

  • I'd definitely fund a company based around this.

  • Why not just use docker for this? Then you can install anywhere that has docker.

  • Does this kind of go against the spirit of open source?