Rompli - Meteor/Docker hosting solution


#1

Hi everyone! I built a hosting platform called https://www.rompli.com. It can host any docker container that listens on HTTP. The web app is built entirely in meteor and therefore has first class support for meteor applications (sticky sessions, websockets, ssl).

How much does it cost?
It is currently in beta which means two things. 1. It’s free. 2. You may only have up to five (5) containers.

What do I get for one container?
One container is 512MB memory with 0.5 ECU compute. You also get single click coordinated rolling updates, and single click scaling.

How do I deploy my meteor app with Rompli?

How do I use a custom domain name?

Is there a FAQ?
Yes: https://www.rompli.com/faq

What is the tech stack?
The webapp is written entirely in meteor@1.3.4. The container orchestration is implemented with Docker Swarm. Nginx is used for loadbalancing and I have an Elastic Load Balancer in front of the nginx servers.

Why is it named Rompli?
It got the name because docker containers work really well in groups and a group of otters is called a romp. Also the underlying technology is using The Raft Consensus Algorithm and a large group of otters is also known as a raft.

I hope you try it out and give me feedback!

Thanks,
Kris


#2

Hey! I’ve been looking for a simple docker-based hosting solution for ages. :slight_smile:

I registered on your page, but it doesn’t seem to send the e-mail verification link. I tried the “resend” button, still nothing.


#3

Hi! Thanks for checking it out! I’ll look into what happened but you should be good to go!


#4

Got the mail. :slight_smile:

I wanted to start container (“aedm/nginx-test”, a small image), got this instead:

Error
failed to register layer: Untar re-exec error: exit status 1: output: write /usr/lib/perl5/core_perl/auto/Encode/JP/JP.so: no space left on device


#5

Yes, sorry for that. I have fixed the problem. What’s interesting though is that I was able to run the image but I got a 502 after I ran it.


#6

It exposes port 80. I can run it locally without problems. If I try to run the official “nginx” image on Rompli, it has a problem, too.


#7

It may have something to do with the fact that all sites on Rompli sit behind a dynamically generated nginx. I don’t know why that would affect it but I’ll look into it. Port 80 is fine because it’s not actually binding that port to the host machine.

But yes I was able to run your image locally as well.


#8

So did you plan out any price?
What should we expect in future?


#9

Hi!

I was planning on $7.50 for 256MB, $15 for 512MB, etc.

In the future I plan on adding SSL by default to your custom domains via letsencrypt.


#10

I’m running Meteor 1.2.2 and using Mup to deploy to AWS. I upgraded to 1.3.5.1 fine locally, but Mup no longer works. There’s no real fix as Mup is abandoned.

I’m open to moving to another provider, but AWS is about $45-$55 a month for (1) medium EC2 instance, and I use this for my app and for mongo.

I know next to nothing about using docker. How would I go about trying out your service?

Docker 1.2 for Mac just dropped the other day, could I use that?


#11

Hi, thanks for asking!

I’m currently working on an alternative to meteord which is the current widely used docker image.


#12

I just wrote up two tutorials on how to dockerize your meteor application. One for 1.4 apps and one for anything prior to 1.4.


Is it time to leave Meteor & MDG?
#13

Why use your solution over Galaxy?


#14

Well if you’re looking for production quality meteor deployments it would be pretty hard for me to say I could do a better job than Galaxy because it’s built and maintained by MDG themselves.

Rompli isn’t a meteor hosting platform it’s a docker hosting platform that has native support for meteor which basically means I host them to the best of my ability (websockets, sticky sessions, ssl).

Plus, it’s free right now too so if you try it and hate it you can let me know and it wont cost you anything.


#15

@khamoud maybe this doesn’t matter, but I’d like to use the new Docker 1.12 for Mac software, can I do with with your guide?


#16

Sorry in advance for all the questions:


From your example post:

$ meteor create newOne --release 1.3.5 && cd newOne
$ meteor build --architecture=os.linux.x86_64 ../newOne-build 
$ cd ../newOne-build && tar -zxvf newOne.tar.gz && cd bundle
$ touch Dockerfile 

Question about this above, why tar the build?

edit the Dockerfile to look like this:

FROM node:0.10.46
ADD . /bundle
RUN (cd /bundle/programs/server && npm install)
ENV PORT=80
EXPOSE 80
CMD node /bundle/main.js

Questions about this file: My application calls out to a pdftk executable that resides locally on the EC2 instance with Meteor. I do a apt-get install pdftk. Should I add this to the docker file? Also, I have a folder structure and files that live outside of the meteor directory that I need to place locally to the box, can I also do that here? How often does this docker image get created? Will I have to run this script every time I deploy, and if so will I have to copy all the files my application uses each time? I usually use MongoChef to examine and back up my MongoDb, can I expose the ssh port here? Does SSL setup go here too?

Save that then run

$ docker build -t khamoud/newone .

Then to run it all you have to do is

$ docker run -d -p 8080:80 -e ROOT_URL=http://example.com khamoud/newone

Question here: what about a mongo url (if I wanted to host it remotely)?

Then if you visit http://localhost:8080 you’ll see your application running.

If you built this image using your own docker hub username/image then you can push it to the docker hub.


Will I be able to lock down the docker file to where, even though it’s deployed to a service, only I’ll be able to get into it? What about the size of the docker file/image, can I expand it automatically as the db grows? Should I break out mongo into its own docker file and if so how do you handle communication between docker files?

I’m interested in your service, but I need to wrap my mind around Docker and how to build and deploy with it.

Thank you.

UPDATE: Using your < 1.4 instructions, I got a local docker 1.12 container up and running meteor 1.3.5.