0

We are a team of 5 colleagues and we are building a website project using rails, we have certain functionalities in mind that won't work on "localhost"(like google maps, sign up using google+ or facebook, etc).

We are looking for a free deployment solution that doesn't need credit card info for anything free because we don't have credit cards(nor debit cards nor anything except cash, we're still students :3 ).

requirements

  1. free or has a free plan.
  2. only needs credit card's info for paid features, doesn't need it for anything(and I mean anything) free.
  3. can work with Rails.
  4. ability to install external programs, our app needs mongodb installed, it also needs elasticsearch and rmagick(or ImageMagick), the service must allow me to install these by any way as long it's free and doesn't need a credit card.

Not required

  • to be fully free, I know there is no such thing, I only need a free plan with for example 100 mb and 100 mb database(honestly I need far less than that but this is a good start), I don't mind non-scalablity nor no support because we're not planning to make it a real site, just a home for our teacher to see the functionalities that can't be seen with localhost.

Optional requirement

  • can clone a bitbucket repo, our code is now at a private bitbucket repository, it would be good to just clone it.

Already tried

  1. Heroku: the deployment was free but when We wanted to have MongoDB, even adding free add-ons requires credit card information.

  2. openshift: here is the URL: our project, as you can see it seems down and from the server. However, even if it is not from the server I found mongolab but I didn't find how to attach it to my app after subscribing to it(anyway didn't find any add-on for ImageMagick).

  3. cloud66: it seemed good but on giving the repo URL it says "couldn't get source files Permission Denied", I have added its SSH key in my accounts settings and as deployment keys on the repo and tried to make the repo public but no matter how I try I still get this message, cloud66 can't work with https and bitbucket only gives ssh and https :( and cloud66 doesn't seem to have the ability to clone local repo or build empty stack(which I can push my local repo to later) .

  4. Microsoft Azure: this requires either phone number or credit card info, credit card we don't have, phone number it's unfortunate that our country is blocked I can't select it from the drop-down list(and thus our country code can't appear which means no phone number can work).

  5. Google App engine: seems to need credit card's info.

  6. AppFog: doesn't seem to have a free plan.

  7. hahaha honestly I don't remember what I've tried xD.

1 Answer 1

3

I've spent a lot of time working with virtualization, Docker and automation recently. One of the biggest challenges has been to get a good testing environment internally, without having to pay exorbitant amounts of money to use services like Heroku. I knew there had to be a better, more affordable alternative, and I was determined to find it.

I've used just about all of the CI services available, including Jenkins, Circle CI, Codeship and Travis. I learned that each of these services has their own quirks. For example: hard to install dependencies, Selenium tests, required infrastructure services, build limits, etc. This is why I have grown to love Drone. I can run my test suite in a clean docker image every time, cache dependencies (just like Heroku does), and run a deploy action if the test build succeeds.

I am using Drone for the continuous integration, and Dokku for the PaaS. Drone is built using Go and utilizes Docker. It can be run inside a container itself with very little configuration.

Drone is a Continuous Integration platform built on container technology. Every build is executed inside an ephemeral Docker container, giving me complete control over my build environment with guaranteed isolation.

Drone's integration with Docker means it can support a huge number of languages including PHP, Node, Ruby, Go, and Python, to name a few. Each test will spawn a new container based off of specified images from the Docker Public Registry. You can even make your own to fit your specific application if needed.

I've coupled Drone with Dokku, a simple Heroku like PaaS built on top of Docker. Using the Github flow with this setup allows automatic staging of all feature branches that pass their tests.

With one simple command:  git push dokku master, as long as my build passes in Drone, the code is deployed in a fresh Docker container. Dokku builds the app on a subdomain of the Dokku host, and it's automatically deployed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.