
Show HN: Beluga 0.1 – Docker Deployment Tool - ctex
https://github.com/cortexmedia/Beluga
======
mrinterweb
I wrote a Docker deployment tool that has many similarities to Beluga
[https://github.com/mrinterweb/freighter](https://github.com/mrinterweb/freighter).
I'm going to sound awfully biased here, but I believe Freighter has more
features than Beluga. Then again there may be some things about Beluga I don't
know about.

Freighter can handle multiple environment config files, environment var
management, old image and container cleanup. Freighter uses Docker's REST API
and therefore does not need ruby installed on the hosts, but it does need the
REST API enabled to be accessible on 127.0.0.1. If you'd like to know more
about Freighter reach me at @mrinterweb or ask your question here.

------
ctex
Hey guys, Cortex CEO here, we've built Beluga to make Docker instances easily
deployable for multiple clients. Let us know if you have any questions!

~~~
neoeldex
What does it do? I've seen what it doesn't do. Is it like docker-compose, but
different?

I've always found it hard to figure out where these type of tools are used in
the stack.

Is it used on the dev environments??

~~~
ddrmanxbxfr
It takes your docker-compose project and deploy it to a server, instead of
having to build your containers, tag the images, push to repository and
connect on the server to download them and restart it.

If you already have a docker-compose project, you could write a belugafile and
then just do beluga --deploy and it'll build and deploy it to your remote
server. Assuming that you already have docker and docker compose on the remote
machine.

------
falcolas
What's the advantage of this over, say, Salt's DockerIO state?

ref.:
[https://docs.saltstack.com/en/latest/ref/states/all/salt.sta...](https://docs.saltstack.com/en/latest/ref/states/all/salt.states.dockerio.html#module-
salt.states.dockerio)

~~~
hiou
For me from a quick glance it's that it's nice and simple. For a lot of
deployment situations larger frameworks feel like a minefield of some default
I'll miss. This is great because I can read and understand the entire source
code in a couple minutes.

~~~
ctex
That's exactly it :)

------
jonsterling
Just FYI, "Beluga" also refers to a proof assistant based on the logical
framework with contextual modal type theory:
[http://complogic.cs.mcgill.ca/beluga/](http://complogic.cs.mcgill.ca/beluga/)

------
hardwaresofton
I read through (admittedly quickly) through the entire README and still don't
understand what Beluga does...

So it builds images, then pushes them to a remote repo, then pulls them from
SSH? Is it pulling updates? Is it a daemon that keeps your containers up to
date?

~~~
ddrmanxbxfr
Beluga will execute the steps to take your project from your machine to a live
production machine.

When you want to deploy a docker app you have to do the following step
manually :

1\. Build the docker images on your machine.

2\. Tag them to the repository you want to push to (either private or
dockerhub)

3\. Upload them to the image repository

4\. Connect to the remote servers and pull the new images.

5\. Unlink and stop the running containers

6\. Start the new containers.

All these steps are automated with 2 commands on beluga :

beluga --build does the steps 1, 2 and 3.

beluga --deploy does the steps 4,5 and 6.

~~~
hardwaresofton
Thanks for the break down!

