Categories
Uri_ba's pit

Running BMS IVC server on Linux

Well not pid building per-se, however, today, pretty much every VFS has a small server, running their website and maybe a little TS server. due to cost, it’s usually a linux machine. But why not run IVC on it as well? Windows app you say? These puny details to not bother us!

So here it is, a quick and easy way to run IVC on Linux, some basic skills are needed, but not many (almost nothing if you are running Ubuntu 16.04 or god forbid CentOS 7   🙂 )

Some Background first

Well let’s look at the facts, IVC server is a windows app, we will not be getting a proper linux version due to SDK EULA things. It is a well know fact that there is a mysterious voodoo called Wine that allows you to run Win Binaries on Linux. it’s actually not complicated to install wine on your system. however, the dependency list is usually very long, and will install a lot of “junk” on your poor little server.  and the plot gets more complicated, a normal install of wine on a 64bit system will only allow to run 64bit binaries, which IVC isn’t. so you’ll need to enable i386 arch on your server…

on ubuntu 16.04 this comes out to be…wine_on_ubuntu

267 packages for one IVC server.. No.. I don’t think so..

Docker to the Rescue

So I went to the next step, put all this ugliness in a small black box which will not contaminate my server with all these dependencies.

So I went for a Docker container.
Docker allow a developer to build such a blackbox in a simple scripted way and ship it around. So I started with an Ubuntu in docker and ended up with a nice container which worked, however, when I dug in deeper, I saw that the container weighed almost 700MB.. Which is considerable. but it worked.. so why not..

After a few months with this one, I’ve decided it’s time to publish the container, but 700MB is a lot, I didn’t get the startup script to work properly and the build process was quite long. So I collected all my few past months of docker experience and decided to start fresh, this time opting for the lean Alpine linux.

Alpine’s base docker is only 5MB, and after slapping all the dependencies for IVC container bloats to 180MB. In addition container is 32bit version of Alpine, because wine needs to be 32bit.

Down to business

So what does it mean? And what do I need to do if I want it running on my server? Well answer is “not a lot” which is always a good thing.
You’ll naturally need docker installed on your server, which is a pretty straight forward thing, just follow the instructions for your OS from the docker website.

Then if your server is running Ubuntu 16.04 or Centos you have a pretty easy job.. You’ll need to copy the IVC folder from you BMS bin over to the server, place it in the same folder as the “install.sh” script and run the script.

With other OSs YMMV, you can probably get the script working very easly if you system works with systemd, heck it might just work off the bat.

The script needed and a more detailed readme can be found at the project git repository.
https://github.com/uriba107/ivc-docker

Also docker image on DockerHub:
https://hub.docker.com/r/108vfs/ivc/

Leave a Reply