An Ansible role to deploy Elixir & Phoenix apps with Postgres, hot code-reloading, and monitoring.
ansible-elixir-stack is an Ansible role that automates the deployment and management of Elixir and Phoenix applications on servers. It handles everything from initial server setup with PostgreSQL to application deployment, monitoring, and hot code-reloading, reducing the operational complexity of running Elixir apps in production.
Elixir and Phoenix developers who want to deploy applications to their own servers without deep DevOps expertise, particularly those using budget hosting like DigitalOcean.
It offers a streamlined, opinionated deployment workflow that requires no prior Ansible knowledge, includes production-ready features like monitoring and hot reloading, and is optimized for cost-effective hosting scenarios.
Ansible role to setup server with Elixir & Postgres to deploy apps
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Streamlines setup and updates with simple Ansible playbook commands like `ansible-playbook setup.yml`, making deployment accessible as highlighted in the README features.
Automatically configures PostgreSQL, monitoring with monit, and hot code-reloading using exrm, reducing manual setup for production environments.
Optimized for low-cost servers, allowing deployment of multiple applications on a $5 DigitalOcean droplet, ideal for budget-conscious developers.
Designed to be used without prior Ansible expertise, as stated in the README, lowering the learning curve for Elixir developers.
Relies on exrm for hot reloading, an older tool that may not be actively maintained compared to modern alternatives like Distillery or built-in Elixir releases.
Only supports PostgreSQL out of the box, so projects requiring MySQL, SQLite, or other databases are not accommodated.
Requires managing SSH keys and running multiple shell commands, which can be error-prone for users unfamiliar with terminal workflows, as seen in the install instructions.
While basic docs are linked, complex scenarios or troubleshooting lack depth, potentially leaving users to figure out issues on their own.