Skip to content

Installing From Source

Tony Collen edited this page Dec 11, 2021 · 28 revisions

These instructions assume a basic knowledge of Linux/Unix and command-line tools.

open890 is currently supported under Linux, or Unix-like operating systems like MacOS. You can also follow these instructions in Windows 10 if you have WSL installed - much of this project was written under WSL. If you are on Windows and do not have WSL installed, you can still compile the app. See Developing on Windows for more information.

Development Prerequsites

  • Raspberry Pi users may need to install the following packages:

    sudo apt -y install autoconf libssl-dev libncurses5-dev zip unzip git
    
  • Fedora Red Hat users will need to install the following packages:

    sudo yum install autoconf openssl-devel ncurses-devel automake inotify-tools git
    

Clone the repository

    git clone https://github.com/tonyc/open890.git
    cd open890

Optional: Check out the develop branch

There are two main branches in the repository: main and develop

  • main can be interpreted as "stable", but unreleased. Code that lands in main is next in line for a release. This is the default branch you get when cloning the repository.

  • develop should be considered "unstable". Things may break, things may change around rapidly, etc.

To check out the develop branch:

    git checkout develop

Installing Development Tools

asdf is a tool to manage installing specific versions of various programming languages and development tools. It is the recommended way to build open890 from source locally.

  • Install asdf following these instructions

  • Install asdf plugins required by open890:

    asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
    asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
    asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git 
    asdf plugin-add yarn
    
  • Install the specific versions listed in the .tool-versions file:

    asdf install
    
  • The Erlang install will take a very long time on a Raspberry Pi. You may also see scary-looking messages during the Erlang install that says something like "fop is missing" or "documentation cannot be built" - this is OK.

  • Once everything has installed, ensure you are running the same versions listed in the .tool-versions file. The versions listed below are just examples of output, but make sure the versions correspond with the .tool-versions file;

    $ cat .tool-versions
    elixir 1.12.3-otp-23
    erlang 23.3.4.6
    nodejs 14.15.4
    yarn 1.22.11
    
    $ elixir --version
    #...
    Elixir 1.12.3 (compiled with Erlang/OTP 23)
    
    $ node --version
    v14.15.4
    
    $ yarn --version
    1.22.11
    

If you have incorrect versions installed, you may run into installation problems not covered by this guide.

Compile the app

First-time users may need to answer Y to a couple of prompts

$ mix do deps.get, compile

Install Node/Yarn dependencies:

$ yarn install --cwd assets/

Start your server:

$ mix phx.server

You can now visit http://localhost:4000 from your browser.

Stopping your server

Type ^C^C (aka: ctrl-c twice)

Clone this wiki locally