skip to content
Juan Lapadula Plá

Docker Deploy - Kind of validated?

/ 4 min read

Recap

The status while writing the previous post was:

  • Got the MVP ready
  • Had to do some more marketing
  • Was thinking Docker Deploy might never support private Docker images

Non-HTTP services

A month ago I decided to stop developing for a bit and focus more on promoting the product on internet, mainly reddit, as it brings more than any other source to Docker Deploy. While promoting the product (and trying what I was promoting) I found out that the way the app works today (many deployments in a VM), doesn’t allow to expose non HTTP services like MariaDB or such. Big bummer.

HTTP the requests specify which host (domain/subdomain) they are aiming to, so the reverse proxy (in this case Traefik) is able to forward the requests to the corresponding services. This allows me to host several services that listen to the same ports, 80/443, but different hosts (service1.com, service2.com, etc).

Applications that use other protocols than HTTTP, like the protocols used by MariaDB or Postgres, don’t give a chance the reverse proxy to know which host (domain/subdomin) they are aiming to. Therefore, I cannot reuse the same port in the same server for non HTTP services.

I tried out some stuff to see if I could offer exposing this kind of services, but after some hours I desisted and for now Docker Deploy just doesn’t support it.

Deploying your own app (private images)

Another thing I saw in the last month was that I was missing a big chunk of the market for not allowing the deployment of private images. I came to this realization from two ways:

  • There was a lot of reddit posts asking for a cheap docker hosting for custom apps, and I could not promote Docker Deploy there, as it didn’t support private images. Too many lost opportunities.
  • Some of the first Docker Deploy users where trying to deploy either a Dockerfile (not Compose file) or a compose file that had a build step in it. Basically, these users thought they would be able to deploy their app in Docker Deploy.

So, no one gave a direct feedback where they asked to deploy private images, but inderectly, they did. I think some of them didn’t even had a deep enough understanding of Docker to ask it.

Some hours later, after doing some reasearch and testing around, I implemented the support of private images by offering the customers a private Container Repository. That means, each user gets a private container where they can push their images.

An relatively important deteail here is that the servers where the platform is hosted use the ARM architecture (not traditional AMD64), that means the images must be built either in a ARM machine or you have to use some emulator to build the ARM image. There are ways to build ARM images from Github or other providers, but it’s not as popular as the AMD64 architecture yet. I’m strongly betting on ARM being the future and seems to be like this (Github ARM runners in beta, Docker Build Cloud with native ARM support)

Polishing the Landing Page

During this month, I also added some more detailed tracking to the Landing page to see where the visitors were bouncing. This showed me that the users were bouncing strongly after seeing the pricing table, which could have been because the price is high (which is not the case) or because the table sucked. It was clear for me that it was the second, as it was a first quick and dirty pricing table that I wrote when I did the landing page.

I improved the table (see before/after) and users bounced less and clicked more on the call to action button.

Besides that, I added a very concise Features section to the landing, and got real in the FAQs.

Documentation

User behavior told me very quick that the users needed some help to deploy their apps. At first I thought about putting that docs in the same page as the app, but then I realized it’s even easier and faster to just put it in a Github wiki. So I just added a wiki to the Docker Deploy public repo and added what I think is going to help the users the most. Downside of this solution is that I have no tracking data there.

Idea is validated, kind of

In 2 months of life, the platform got 330 visitors and 10 registered users. Most of those users tried to deploy something but didn’t work out. I also know that most of them saw the pricing table before creating the account.

With this info I consider there is some market for this idea, even though I have still no paying users.

Next steps

Next step is get the fist paying customer. I’m contacting each user and trying to figure out why they are not able to successfully deploy their services, and adjusting the app or the docs accordingly.