Skip to content

Development Environment

Julien Bourdeau edited this page Mar 18, 2024 · 16 revisions

If you want to have a nice Lago Development Environment, you can follow this guide on how to make it works on your machine.

NOTE: This documentation is intended for people willing to contribute to Lago. If you want to try Lago on your local system, we encourage your to look at the Lago public documentation.

Requirements

  • Git
  • Docker
  • Homebrew (macOS only)
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • OpenSSL
    # Ubuntu/Debian
    sudo apt update
    sudo apt install openssl
    
    # MAC OS
    brew install openssl

Local Environment Setup

  • First of all, you need to clone the Lago repo on your machine, since we're using Git submodules, here is the good command to do it
git clone --recurse-submodules [email protected]:getlago/lago.git
cd lago

# If you're not using bash, replace .bashrc with your shell rc, ei: ~/.zshrc
echo "export LAGO_PATH=${PWD}" >> ~/.bashrc
echo 'alias lago="docker-compose -f $LAGO_PATH/docker-compose.dev.yml"' >> ~/.bashrc
source ~/.bashrc
  • Install mkcert and generate some certs for TLS usage
brew install mkcert nss
mkcert -install
cd $LAGO_PATH/traefik
mkdir certs
cd certs
mkcert -cert-file lago.dev.pem -key-file lago.dev-key.pem lago.dev "*.lago.dev"
  • Add all custom domains to your /etc/hosts file
127.0.0.1 traefik.lago.dev
127.0.0.1 api.lago.dev
127.0.0.1 app.lago.dev
127.0.0.1 pdf.lago.dev
127.0.0.1 license.lago.dev
127.0.0.1 mail.lago.dev
  • Setup API
cp ./api/.env.dist ./api/.env
touch ./api/config/master.key

Populate the ./api/config/master.key

Local Environment Commands

  • Start your local environment
lago up -d db redis traefik mailhog
lago up front api api-worker api-clock pdf
  • Start enjoying your local Lago at https://app.lago.dev

  • Start the Rails console with lago exec api bin/rails console

Setup license service

  1. Follow Readme steps https://github.com/getlago/lago-license
  2. Run
lago exec license sh
rake db:setup
rake license:generate['lago',nil]

Copy the result of the last command, this is you license key you’ll use.

  1. In your bashrc or zshrc, add export LAGO_LICENSE=<THE RESULT COPIED ABOVE>
  2. source ~/.zshrc
  3. and lago restart api

Update your local copy of the code

git pull --recurse-submodules