Skip to content

Installing From Source

Tony Collen edited this page Aug 13, 2023 · 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

  • Ubuntu/Debian/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
    
  • MacOS users are encouraged to use Homebrew to install the development dependencies:

    brew install coreutils automake autoconf openssl libyaml readline libxslt libtool gpg
    

Clone the repository

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

Code branch conventions

main is, well, the main branch of development. The previous develop branch has been removed, and all development work will just land directly into main. As of August 2023, there are now separate branches for each release, e.g. release-1.0.7

  • main should be interpreted as unstable and unreleased. All code that lands in main is next in line for a release. This is the default branch you get when cloning the repository.

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, or if you are using MacOS with Homebrew, you can simply use brew install asdf

Build the app and run the local development server:

    make up

Answer Y to any prompts that appear.

This will install all of the required development tools (asdf plugins), compile erlang/elixir, install NodeJS, fetch application dependencies, compile the app, and start the server.

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.

If you are updating a local code checkout, it may be useful to run make clean after fetching the latest code, and then running make up. If you don't want to run the server for some reason, you can just run make, although this is less useful.

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

Stopping your server

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