How do you deploy your Erlang applications?

There is currently a thread on EF about deploying Elixir apps, so I wondered how people are deploying Erlang apps - how do you deploy yours?

If there are any guides or how-tos that you follow please include them/links if you can :smiley:

1 Like

admin style:

developer style:

I’ve written fpm.erl: a tool that could package rpm without librpm, but after docker came into our work, I have deleted it. We use excellent dpkg-deb + alien.

2 Likes

I use a simple wrapper around fpm to create RPM/DEB packages from an OTP release (which is built using a lengthy script to create portable Linux binaries). And a simple Dockerfile to build an Alpine-based container. (The same stuff is used to create ejabberd packages using GitHub Actions.)

1 Like

Oh and I build a Windows installer using Inno Setup on GitHub Actions.

2 Likes

what for do you need these wrappers, when you have standard dpkg-deb?

Are there any features from the deb that you really miss in dpkg-deb and fpm can close them?

1 Like

No strong reason, if I’d only build DEB packages (on Debian-based build systems) I’d probably go for dpkg-deb myself.

Conceptually, fpm abstracts away the internal package metadata format, so it allows you to create DEB, RPM and various other output formats from a given input, which is basically what I’m looking for here.

With dpkg-deb + alien, you create the internal DEB format manually instead, and leave conversion to RPM to alien. I ran into subtle issues with alien getting details wrong in the past, so I’d rather not rely on it. But whatever works—if it does for you, that’s great!

2 Likes