Cogini Blog
Featured articles
Deploying an Elixir app to Digital Ocean with mix_deploy Port forwarding with iptables
A new approach to deploying Elixir apps: mix_deploy
A new approach to deploying Elixir apps: mix_deploy Read more…

Best practices for deploying Elixir apps
Best practices for deploying Elixir and Phoenix apps, with a working example Read more…

Deploying Elixir apps with Ansible
Deploying Elixir apps with Ansible, an easy-to-use standard tool for managing servers. Read more…

Deploying an Elixir app to Digital Ocean with mix_deploy
A gentle introduction to getting your Elixir / Phoenix app up and running on a server at Digital Ocean. Read more…

Managing user accounts with Ansible
As part of developing and deploying web applications, we need to be able to manage OS user accounts and control access for developers and systems admins. To do this, we wrote an Ansible role to manage users. Read more…

Multiple databases with Digital Ocean Managed Databases Service
Setting up multiple databases and users with restricted permissions on Digital Ocean's Managed Databases service. Read more…

Running Ecto migrations in production releases with Distillery custom commands
In a dev or test environment, we execute the mix ecto.migrate command to run database migrations. When running from a release, the mix command is not available, so we execute Ecto.Migrator.run/4 from code via a Distillery custom command command. Read more…

Tuning TCP ports for your Elixir app
Elixir is great at handling lots of concurrent connections. When you actually try to do this, however, you will bump up against the default OS configuration which limits the number of open filehandles/sockets. You may also run out of TCP ephemeral ports. Read more…

Configure ssh to connect to a server
How to configure ssh to connect to a server using an ssh key for access Read more…

Using ASDF with Elixir and Phoenix
The ASDF version manager lets us manage multiple versions of Erlang, Elixir and Node.js. It is a language-independent equivalent to tools like Ruby's RVM or rbenv. Read more…