Skip to content

Prerequisities

Before installing anything lime-specific, you need to make sure that you have the following tools/binaries installed on your computer:

  1. Python 3.11
  2. NodeJS, the latest LTS version
  3. Docker
  4. ODBC Driver for SQL Server
  5. sqlcmd
  6. pipx
  7. Poetry

Installation instructions

Python

Windows

Install Python 3.11 by downloading it from https://www.python.org

macOS

We recommend using pyenv for installing Python on macOS. This article explains why. Installation instructions for pyenv can be found here. We recommend that you use brew to install it on macOS.

Warning

As pyenv builds Python interpreter locally you need to install necessary pyenv build dependencies.

# Install pyenv
brew update
brew install pyenv

# Install python 3.11 as the global python
pyenv install 3.11.3
pyenv global 3.11.3

Insert the following lines in your shell/terminal profile configuration:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

Ensure that linker and compiler flags are set. This might be needed in order for python to successfully install certain packages in your venv. Example config below (please verify that it's correct on your machine):

export LDFLAGS="-L$(brew --prefix)/lib"
export CPPFLAGS="-I$(brew --prefix)/include"

Ubuntu

We recommend using pyenv for installing Python on Linux. This article explains why. Installation instructions for pyenv can be found here.

Warning

As pyenv builds Python interpreter locally you need to install necessary pyenv build dependencies.

NodeJS

Install NodeJS latest LTS version.

Note

For NodeJS version management you can use Node Version Manager or NVS (Node Version Switcher).

Docker

Install Docker.

docker-compose

Warning

Notice that you need the standalone docker-compose, and not the plugin.

Install Compose standalone.

ODBC Driver for SQL Server

Windows

Install the MSODBC driver 18 by following the guide here

Ubuntu

Install the unixodbc driver:

sudo apt-get -y install --no-install-recommends unixodbc unixodbc-dev

Install the MSODBC driver 18 by following the guide here

Please also make sure that you install sqlcmd, and that it's added to your PATH.

macOS

Install the MSODBC driver 18 by following the guide here

Please also make sure that you install sqlcmd, and that it's added to your PATH.

pipx

Install pipx and ensure that it's added to your path:

pip install pipx

Poetry

We're using the latest stable poetry version. For the time being this is 1.3.*.

Install Poetry, preferably with pipx:

pipx install poetry

Tools explained

Python 3.11

Programming language used by Lime CRM

NodeJS, the latest LTS version

Programming language used by Lime CRM

Docker

Docker is a containerization technology that enables the creation and use of containers. The Lime CRM dev environment relies on this technology.

docker-compose

docker-compose makes it easy to start, stop, and connect multiple Docker containers necessary for development.

ODBC Driver for SQL Server

Microsoft ODBC Driver for SQL Server is a single dynamic-link library (DLL) containing run-time support for applications using native-code APIs to connect to SQL Server.

sqlcmd

sqlcmd is a CLI tool that can run SQL Queries from a command prompt.

pipx

pipx is a specialized package installer and is used to install packages with cli entrypoints. pipx ensures that you don't get version conflicts by creating a separate venv for each package it installs. Packages installed by pipx is added to your path.

Read more about pipx here.

Why installing pipx when we have pip?

What pip does is to install all your packages, and their dependencies, in a central place. The way Python works, there is a good chance for a dependency conflict. Pipx does some smart things to avoid this: it creates a venv behind the scenes and installs into that, and then makes the executable available in your path. Pip is a package manager (or mostly an installer) but pipx is an application installer.

You can use pip, but it comes with some potential risks and issues, depending on what ends up in your global python.

Poetry

Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. Poetry offers a lockfile to ensure repeatable installs, and can build your project for distribution.

Read more about Poetry here