Episode

Creating Horizon: Deploy Elixir Phoenix Apps on FreeBSD with Jim Freeze

Podcast
Elixir Wizards
Published
Dec 19, 2024
Duration seconds
2688
Processing state
processed
Canonical source
https://smartlogic.fireside.fm/s13-e10-elixirconf-horizon-elixir-deployment-jim-freeze
Audio
https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/c04de5e0-2475-4142-b98f-f80779747f0d.mp3
JSON
/v1/public/podcasts/elixir-wizards/episodes/creating-horizon-deploy-elixir-phoenix-apps-on-freebsd-with-jim-freeze
Markdown
/podcast/elixir-wizards/creating-horizon-deploy-elixir-phoenix-apps-on-freebsd-with-jim-freeze.md

Actions

  • POST https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/creating-horizon-deploy-elixir-phoenix-apps-on-freebsd-with-jim-freeze/transcription-requests
    Idempotently request low-priority transcript generation for this episode.
  • GET https://stenobird.com/podcast/elixir-wizards/creating-horizon-deploy-elixir-phoenix-apps-on-freebsd-with-jim-freeze.md
    Read the agent-friendly Markdown representation of this episode resource.

Summary

Jim Freeze discusses Horizon, a deployment library designed to simplify Phoenix application deployments on FreeBSD with minimal dependencies. The conversation explores the benefits of avoiding heavy managed services in favor of stable, low-cognitive-load infrastructure.

Topics

  • Elixir
  • Phoenix Framework
  • FreeBSD
  • Horizon Library
  • PostgreSQL
  • Software Deployment
  • Infrastructure as Code
  • Open Source

Highlights

  • Main idea: Horizon prioritizes low cognitive load by using simple shell scripting over complex tools like Terraform or Ansible
  • Practical takeaway: Use FreeBSD and ZFS for stable, high-performance application hosting with reduced reliance on managed services
  • Failure mode: Avoid over-engineering deployment pipelines with heavy dependencies that require specialized expertise to debug
  • Main idea: Horizon enables easy scaling of Postgres and Phoenix instances with a single command, facilitating 'eating your own dog food'
  • Practical takeaway: For hobby projects, a single-server setup running both the app and database is a viable, cost-effective strategy

Chapters

  1. 1:00 The ElixirConf Legacy: Jim reflects on his journey organizing ElixirConf and his deep roots in the Elixir community.
  2. 14:35 Introducing Horizon: An overview of Horizon's purpose: providing a lightweight alternative to complex deployment platforms like Fly.io.
  3. 17:55 Minimalist Deployment Strategies: Discussing the feasibility of running Phoenix and Postgres on a single server for side projects.
  4. 21:00 Horizon vs. Terraform and Ansible: Comparing Horizon's dependency-free approach to the sophisticated but complex orchestration of Terraform and Ansible.
  5. 27:20 The Stability of FreeBSD: Why Jim chooses FreeBSD and the importance of moving away from volatile environments like CentOS.
  6. 37:40 Handling Node.js and Dependencies: Addressing the challenges of compiling Node.js and managing assets like Tailwind on FreeBSD.
  7. 41:30 Contributing to Open Source: How to find the Horizon project on GitHub and ways to contribute to the ecosystem.