PJUllrich

PJUllrich

Author of Building Table Views with Phoenix LiveView

A Devcontainer for Elixir

I built a devcontainer that makes it safe(-er) to run Claude Code in YOLO mode (--dangerously-skip-permissions) on Elixir&Phoenix projects and it comes with Tidewave built-in. It’s based on Anthropic’s reference but made safer and tailored to Elixir.

The container makes it safe(-er) to run Claude with --dangerously-skip-permissions by:

  • Restricting all outbound traffic to a domain allowlist via a strict network firewall using the battle-tested Squid proxy
  • Hiding sensitive files (e.g. .env) from Claude using file permissions, with Claude deny rules as a secondary safeguard.
    • These files and folders are simply empty in your devcontainer. No more uploading .env files to Claude by accident!
  • Isolating Claude state in a per-project .claude folder, separate from your host’s ~/.claude

It has a few quality-of-life features as well, like:

  • a Makefile with extensive commands to control the devcontainer (e.g. make dc.up|down|rebuild) and to start services in it (e.g. make dc.tidewave|server|claude)
  • Git and Git Worktree support, so you can run multiple Claude Code instances in parallel in the same container
  • Oh-my-Zsh with git status, tab completion, and fancy colors

Try it out here:

https://github.com/PJUllrich/devcontainer

Where Next?

Popular in Dev Env & Tools Top

AstonJ
I’ve been reinstalling macOS after trying out Tahoe, and when I went to migrate from a Time Machine backup I got an error I’ve not see be...
New
sodapopcan
I just placed on an order for my first mechanical watch since I last wore one in my mid 20s which was… oh boy, technically decadeS ago (t...
New
zmzlois
I was looking for an open router sdk in elixir but i didn’t find anything so here you go openrouter_sdk | Hex
New
bwlang
I want to buld this docker image but it fails with a timeout at RUN mix local.hex --force Maybe it’s just a maintenance window, but the...
New
law
/an-aside Why is it not completing the module name too? Atom’s does. Also why does it not fill in the arguments with defaults that yo...
New
AstonJ
How fast is your internet connection? (And how much do you pay?) You can test via www.speedtest.net and to embed results into your post...
New
bitboxer
In the last couple of months I only played a little bit with elixir, haven’t had much time to actually build something with it. But now t...
New
AstonJ
Just noticed mine has gotten quite unwieldy and should probably be split into multiple files - but curious how big everyone else’s is! (...
New
sodapopcan
I get the impression that the Elixir community at large is using nvim, though it occurred to me that I don’t actually know this so I thou...
New
AstonJ
I wasn’t aware ZSH has plugins until @Samjowen mentioned one in the Share an Elixir or dev-env tip a day thread! Oh My Zsh comes bundle...
New

Other popular topics Top

skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52341 488
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I’m a nov...
New

We're in Beta

About us Mission Statement