jack-s9

jack-s9

Phoenix Deployment Handbook (self-published)

Simplify and streamline your Elixir Phoenix Deployments.

Deploy with tools that are easy to use, maximize Elixir’s features, and have exceptional documentation.

Before I deployed my first Elixir Phoenix app to actual users, I was terrified.

  • Wasn’t I supposed to use Docker?
  • What about Releases? When I use releases, it breaks my config?!?
  • I know I’m going to have some bugs once people start using it. How do I get my users to give me a heads up when things don’t work?
  • It’s going to be a pain to push bug fixes because my deployment process is tedious.
  • I need to remember to migrate my database after I deploy.
  • Do I need to deploy and run a separate app just to capture logs?
  • I read you shouldn’t use Elixir Phoenix for your SaaS because the packages and tools aren’t there. Is that what I’m experiencing?
  • Many of these companies with enterprise services don’t say anything about Elixir.
  • Great…I finally picked Heroku, but now I’m reading about all the Elixir features I can’t use
  • How am I going to know if people are using it? What pages are people visiting?
  • Google Analytics is confusing and I don’t feel great about giving Google my users’ data

If you’ve had any of these pains then the Phoenix Deployment Handbook is for you.

  • You’ll learn how to deploy your app with a single command.
  • Then set up Continuous Deployment so deploying changes and migrating your database is as easy as pushing to GitHub.
  • You’ll create a user auth system and makes sure it works correctly with your LiveView app.
  • Your users will be able to reset their passwords via email. And you can use the template to send other emails.
  • With error monitoring, you’ll get notified of bugs and fix them before the user has a chance to tell you about them.
  • When you come across a really difficult bug, you’ll have a log history to pinpoint the exact problem.
  • Finally, you’ll have privacy-preserving Web Analytics with a simple dashboard to help you grow your user base.

I am confident you will save at least 10 hours of research and effortfollowing the steps I outline in the Phoenix Deployment Handbook.

You’re not sure you need it..no worries. If you don’t save over 10 hours following the handbook, I will refund 100% of your purchase.

Buy the Phoenix Deployment Handbook now and use it to deploy and set up the tools for your current project or your next big idea!

Format: PDF

Pages: 100+

Chapters:

  1. Deploy a LiveView app to Fly
  2. Continuous Deployment with GitHub Actions
  3. Authentication with mix phx.gen.auth
  4. Email with Swoosh and Mailgun
  5. Error Monitoring with Honeybadger
  6. Log Management with Logflare
  7. Web Analytics with Plausible

Bonus Chapters:

  1. Best Practices for Elixir Config and Environment Variables
  2. Debugging in Elixir…Beyond IO.inspect/2
  3. What You Need to Know About Logging in Elixir

Attachment:

  1. Quick Reference Guide

I’ve just released the Phoenix Deployment Handbook. It is available for purchase and download. It covers a lot of topics I write about at staknine.com.

In the book you’ll learn how to:

  • Deploy to Fly with two commands
  • Automate deployments when you push to GitHub
  • Set up email delivery, error monitoring, log management, and web analytics

The goal is to save you hours deploying your first app or improving your existing deployment process.

Visit the link below to learn more and download the Quick Reference Guide attachment for free: https://staknine.com/phoenix-deployment-handbook/?utm_source=elixirforum.com&utm_medium=referral&utm_campaign=launch

I started the book on January 2nd, 2022 and posted weekly updates on my progress. The goal was to release the book by the end of January. I ended up releasing the final draft on January 29th. Here is a Twitter thread with my weekly updates.

In terms of writing the book and planning the launch, here were the two main resources I used:

The year of hustle roadmap from stackingthebricks.com for a plan to actually ship it. And a video from Adam Wathan called Nailing Your First Launch.

Let me know if you have questions or feedback!

Jack

Most Liked

dimitarvp

dimitarvp

That’s a shame, I’d order a hardcover in a heartbeat.

jack-s9

jack-s9

Thanks for the feedback! I’m going to do some research to see what it would take to offer a hard copy version.

jack-s9

jack-s9

The book walks you through deploying a project with continuous deployment then sets up tools like error monitoring and logging.

I recommend following along with your own project. It can be an actual project you’ve been working on or the simple demo app in the book.

jack-s9

jack-s9

The book only covers Fly. I have a post about using Docker to deploy to a VPS.

It was written before mix phx.gen.release --docker was added (mix phx.gen.release — Phoenix v1.6.12), so you might be able to use that Dockerfile instead of copying the one in the post.

Where Next?

Popular in Books Top

PragmaticBookshelf
Bruce Tate @redrapids edited by Jacquelyn Carter @jkcarter OTP is the heart of the rapidly growing Elixir, the functional language at th...
New
collegeimprovements
https://imagery.pragprog.com/products/579/lmelixir.jpg?1591050736 by @whatyouhide and @idlehands Elixir offers new paradigms, and chal...
New
AstonJ
https://www.packtpub.com/sites/default/files/B04907_MockupCover_Normal.jpg by Kenny Ballou Elixir, based on Erlang’s virtual machine a...
New
tristan
Adopting Erlang is a collaborative effort between myself (Tristan), Fred Hebert and Evan Vigil-McClanahan. It is an ongoing effort to gat...
New
AstonJ
by Wolfgang Loder Learn and understand Erlang and Elixir and develop a working knowledge of the concepts of functional programming that...
New
AstonJ
By Francesco Cesarini, Simon Thompson This book is an in-depth introduction to Erlang, a programming language ideal for any situation wh...
New
PragmaticBookshelf
Isaak Tsalicoglou Built for the curious, this isn’t your average programming book—it’s nearly 500 pages of hands-on mentorship beyond cod...
New
peerreynders
by Darin Wilson and Eric Meadows-Jönsson Languages may come and go, but the relational database endures. Learn how to use Ecto, the prem...
New
codestirring
Hey Elixir Forum, I’ve written a ebook called the Phoenix LiveView Cookbook which I’ve written in the hopes of distilling the knowledge ...
New
peerreynders
Don’t forget you can get 35% off the ebook using the code ‘devtalk.com’ :023: This title will be available on or about 2018-11-10
New

Other popular topics Top

vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
AstonJ
You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s...
New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New

We're in Beta

About us Mission Statement