My Elixir + Phoenix homepage.
This is a monorepo of a few various services I've written over the years.
When I created this I was very interested in React and GraphQL, so the elixir app uses absinthe to serve graphql to a react frontend. Nowadays I think this is very complicated and not worth the extra complexity, but I keep it around so I have a place to try out react things when I feel like doing that.
The elixir side of things is umbrella app, though I think when I created this I misused that a bit, so recently I've been trying to put everything in the Client app. Maybe eventually I'll remove the umbrella stuff.
While much of the frontend uses react, there are also several places where I use phoenix liveview.
A mostly vanilla react app, using urql to consume the graphql API. I've made some efforts to keep this up tp modern react standards, though there is a lot of old stuff in places I don't update or use frequently.
- Install mise and the
opcli - Run
bin/setup - Start the server:
iex -S mix phx.server
I'm using kamal to manage deployments, so that's why there's a bit of ruby stuff here and there. I like its simplicity.
Production secrets are encrypted and stored in secrets.txt.encrypted.
To access these, you need to write the secret to key.txt. This can be found
stored as Secret key in the Homepage 1Password vault.
Once you have the key.txt, you can decrypt secrets with
./bin/decrypt_secrets.sh and re-encrypt them with ./bin/encrypt_secrets.sh.