dotfiles/README.md
2023-07-13 15:16:15 +03:00

1.8 KiB

Prymn

status-badge

Project dependencies

  • Elixir 1.15
  • Erlang 24 or later
  • Rust (recent version)
  • protoc for protobufs version 3

Setup

Some basic steps to setup the project and its dependencies.

  • Install asdf (curl is also required)
    • Using git: git clone https://github.com/asdf-vm/asdf.git ~/.asdf
    • or, using paru, paru -S asdf-vm
    • Add asdf to path: source /opt/asdf-vm/asdf.{bash,zsh,fish}, or ~/.asdf/asdf.{bash,zsh,fish}
  • Install erlang
    • asdf plugin add erlang
    • asdf install erlang 25
  • Install elixir
    • asdf plugin add elixir
    • asdf install elixir 1.15
  • Install rust
    • Optionally, set CARGO_HOME and RUSTUP_HOME to a XDG directory (e.g ~/.local/share/cargo and ~/.local/share/rustup)
    • Arch: pacman -S rustup
    • Other: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • Make sure to add $HOME/.cargo/bin (or $CARGO_HOME) to PATH
    • rustup toolchain install stable
    • rustup default stable
    • rustup component add clippy
    • rustup component add rust-analyzer
    • rustup component add rustfmt
  • Install protoc version 3
    • Arch: pacman -S protobuf
    • Debian: apt install -y protobuf-compiler
  • (Optional) Install inotify-tools
    • Arch: pacman -S inotify-tools
    • Debian: apt install -y inotify-tools
  • Setup elixir
    • Install hex: mix local.hex
    • cd backend && mix escript.install hex protobuf
    • asdf reshim

Preparing for development

Backend

  • cd backend
  • Start the database: docker-compose up -d
  • mix setup
  • mix phx.server