55 lines
2.3 KiB
Markdown
55 lines
2.3 KiB
Markdown
# Recycled Cloud Management Interface
|
|
|
|
[![builds.sr.ht status](https://builds.sr.ht/~fnux.svg?search=recycledcloud-management)](https://builds.sr.ht/~fnux?search=recycledcloud-management)
|
|
|
|
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
|