meta/README.md

56 lines
2.3 KiB
Markdown

# Recycled Cloud Management Interface (Meta)
[![builds.sr.ht status](https://builds.sr.ht/~fnux.svg?search=recycledcloud-meta)](https://builds.sr.ht/~fnux?search=recycledcloud-meta)
This repository tracks the initial work for a web interface atop the recycled
cloud. It is written in [Elixir](https://elixir-lang.org/), making use of the
[Phoenix Web Framework](https://www.phoenixframework.org/).
## Notes
* This project is in its early phase: we're first making things correct and
simple. We'll worry about efficiency later.
* The (Phoenix) project has been initialized with the `--no-webpack` and
`--no-dashboard` flags to avoid unnecessary clutter. We can add them back
later if needed!
* (sourcehut) CI is defined in `.build.yml`. It currently runs on my sr.ht
account since we do not have our own instance (yet).
* Authentication is based on José Valim and Aaron Renner's
[Phx.Gen.Auth](https://hex.pm/packages/phx_gen_auth), adapted for LDAP-backed
authentication.
* You can run the linter with `mix credo`.
## Getting Started
You'll need Erlang/OTP and elixir installed on your system. It usually boils
down to installing the `elixir` package of your distribution. Once done, you
can:
* Install dependencies with `mix deps.get`
* Create and migrate your database with `mix ecto.setup`
- You'll need PostgreSQL here. I (tfloure) usually run it in an isolated
container with something along the lines of `podman run --rm -it -e
POSTGRES_HOST_AUTH_METHOD=trust --expose 5432 -p 5432:5432
postgres:latest`.
* Start Phoenix endpoint with `mix phx.server` (or `iex -S mix phx.server`,
if you want a REPL).
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
## Useful Resources
Elixir Language:
* (Good!) Introduction and various guides: https://elixir-lang.org/getting-started/introduction.html
* Elixir Docs: https://hexdocs.pm/elixir/Kernel.html
* Mix (= build tool) Docs: https://hexdocs.pm/mix/Mix.html
* IEx (= REPL) Docs: https://hexdocs.pm/iex/IEx.html
Phoenix Web Framework:
* Official website: https://www.phoenixframework.org/
* Guides: https://hexdocs.pm/phoenix/overview.html
* Docs: https://hexdocs.pm/phoenix
* Forum: https://elixirforum.com/c/phoenix-forum
* Source: https://github.com/phoenixframework/phoenix