Prerequisities¶
Before installing anything lime-specific, you need to make sure that you have the following tools/binaries installed on your computer:
- Python 3.11
- NodeJS, the latest LTS version
- Docker
- ODBC Driver for SQL Server
- sqlcmd
- pipx
- 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):
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:
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:
Poetry¶
We're using the latest stable poetry version. For the time being this is 1.3.*
.
Install Poetry, preferably with pipx:
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