# Flockport launches ready to deploy containers of popular web apps



## raulb (Sep 23, 2014)

Hi All,

I am thrilled to make this post here. I been have soaking up all the guides, especially by wlanboy for some time and have been used for some of the containers, and I hope Flockport is useful to the vpsboard community.

Flockport provides ready to deploy containers of popular web apps, based on LXC. At launch there are over 40 containers including Wordpress, Drupal, Joomla, Prestashop, Moodle, Discourse, Redmine, Nodebb, Gitlab, a really nice mailserver and more, and we expect this to be augmented by the community.

The advantage of Flockport containers is users don't have to configure and install apps. Just install LXC and you can deploy fully configured Flockport containers in seconds. And it works in cloud KVMs.

Linux containers give users cloud like flexibility of app instances. For example for Vpsboard users who like to try new providers, with containers you are not wedded to any provider and can easily move your apps across Linux systems, and clone, deploy and backup in seconds.

LXC is an open source project supported by Ubuntu. It quite simple to use, however thanks to its longish history (baking since 2009) a lot of information online is often outdated. It works out of the box in Ubuntu, with documentation and updated LXC packages often lacking in other distros.

We like Debian so we have a repo for Debian wheezy with updated LXC packages that work out of the box, and tons of documentation to help users get started quickly.

A little container context. LXC is of course not the only container technology. There is the popular OpenVZ and Linux Vserver but their growth has been impeded by the need of custom kernels. LXC is supported in the vanilla Linux kernel paving the way for widespread adoption.

Docker untill 2 months ago was based on LXC. We have articles that clarify the differences between LXC and Docker and extra guides on container/VM networking scenarios which is an area that can trip users.

Would absolutely love to hear the feedback of the informed community here!


----------



## drmike (Sep 23, 2014)

Welcome @raulb.

Can you help dumb this down a bit more for humans?

"Linux containers give users cloud like flexibility of app instances. For example for Vpsboard users who like to try new providers, with containers you are not wedded to any provider and can easily move your apps across Linux systems, and clone, deploy and backup in seconds."

(cause I do this all the time and tedious to go through same process and heaven forbid I need to move actual data and forget loose ends on the old server)

Explain how this works, how one can move these containers around, if said functionality is baked into Flockport....


----------



## drmike (Sep 23, 2014)

Also I noted just now that Flockport works on cloud / VPS KVM.

Would be a good writeup and big toe dip if someone would create a how-to example of using Flockport in one of these popular environments like DigitalOcean or Vultr.


----------



## raulb (Sep 23, 2014)

Hi drmike, thanks for the welcome! I have actually been reading vpsboard and all your entertaining posts about providers for more than a year and I was suprised to find that I had not registered earlier.

You are the resident expert here. This should be a cinch for you. BTW I have enjoyed your posts here. I am going to simplify so some liberties.

A Linux container is just like a VM (think of it as an OpenVZ instance) but without the performance overhead since it does not emulate the hardware layer, only the OS layer. So you could be running a Debian host and have a Ubuntu, CentOS or Fedora container. The LXC project provides container OS templates and userland tools for container management.

A container has its own OS and network and it basically decouples or separates your apps from the host OS. So you can log into the containers (it feels like another linux OS instance only its inside your host), install your apps and do anything you could on your host OS.

Suppose you install and configure a lamp stack and Wordpress in a container. You can now zip this container and move it to any other Linux host that has LXC installed and it would work flawlessly. Even better LXC provides tools to clone & snapshot the container, so backing up is a simple clone operation of your container that takes seconds. And of course you can run multiple containers and workloads subject to your hardware.

You can see the advantage of this, your web stacks and apps are now independent of the host OS and can be moved easily to any other host that supports LXC, and since LXC is part of the Linux kernel, this basically means any Linux or KVM.

We have extensive documentation, and also a post on end user LXC benefits which should be a good read. We also have a guide to deploy on any KVM cloud instance, so would work on Digital Ocean, Vultr etc.

We are already in talks with multiple public cloud providers and will soon let users deploy directly to the cloud, so you can choose a Flockport container and have it available in your DO instance for example in seconds.

In short this is how it would work in a typical KVM cloud instance. We have a step by step guide

1. You choose a Flockport container and download it to your KVM instance.

2. Ideally this KVM instance would be Debian Wheezy in which case you can simply install the LXC package from our repo. LXC is a light 3MB package and installs in seconds. Or Ubuntu, which has excellent LXC support. Once LXC is installed you unzip the Flockport container in the LXC folder - typically /var/lib/lxc.

3. At this point you can use the command 'lxc-start -n containername' to start the container. You can access the container by ssh into its IP (the command 'lxc-ls -f' will give you container IP) or use 'lxc-attach' to attach to the container directly.

4. Now the important part - networking! in a cloud KVM the container is behind the KVM public IP, so how do you access it on your browser? On a home system, a network which you control or with public IPs the container is accessible on its own IP. But because it's behind a public IP of your KVM instance in the cloud you need to use iptables to port forward your KVM public IP:80 to the container IP:80.

5. Flockport containers are typically running Nginx and are configured to be available on myappname.org  URL. So for instance if you download a Wordpress container it will be available on mywordpress.org. To access it on your home or work browser just associate the KVM IP and mywordpress.org in your home/work computers /etc/hosts file. At this point entering mywordpress.org in your browser should take you to the container Wordpress instance.

We could have simplified the last stage so users do not have to edit their etc hosts file and the app is available by default on the KVM IP, but typically this is not how applications are deployed so we felt its better the users know how it works.

A lot of users may feel this is a lot of work. It's actually not, and the benefits are huge. And once you do it, you can basically deploy the more difficult to install apps like Discourse, Redmine, Gitlab, Node based apps in a jiffy.

Please feel free to ask me anything. This stuff is actually quite simple, and it makes it really easy to run and deploy apps. Our main objective is to ensure it makes life easier for users and they do not have to struggle and everything works exactly as documented.


----------



## drmike (Sep 23, 2014)

Thanks @raulb ... and thank you for the kind words.  :wub:

This reminds of the abstraction of virtualization eons ago when I first started looking into such.

With Flockport if I per se take and create a new "container" for Wordpress, can I add other stuff into that container and have it be portable or what?   Like perhaps I want to roll Wordpress easily, then do custom Nginx stuff and some traffic shaping.

Does Flockport contain any centralized managment of my many containers and how does the plumbing of moving these around work?  Like I can envision doing a container locally, testing and perfecting it then wanting to take and put it on remote hosting somewhere.  How does one transport the container?


----------



## raulb (Sep 23, 2014)

Of course, you can configure, opitmise and make changes to your hearts content, all the changes in the container remain. You can make snapshots and clones of containers if you want to try out stuff.

Magement of containers happen though LXC tools which are easy to use and comprehensive for single hosts. A secret we are currently working on a LXC management tool for deploying container clusters.

You transport a container by stopping it first, then you can zip it, rsync it whatever you want, it's just a filesytem with your stuff in it. Once you use it you will realise how fantastic it for users.

Suppose you have 6 months of work on your favourite app in a container or a set of containers with a provider, and they piss you off or another provider gives you a great deal. You just zip your containers and move. It will take you literally seconds to install LXC in the new KVM and you are running again. The whole thing could take 15 min tops. That's it.


----------



## drmike (Sep 23, 2014)

Well there I go with LXC and Flockport experimenting then.

All the common happenings that keep me host changing.  Nice to do it with container in tact.


----------



## bpsRobert (Sep 23, 2014)

Now THIS sounds interesting...


----------

