Skip to main content

Requirements

  1. Install Docker on your machine;
  2. Make sure Docker Compose is installed and available (it should be the case if you have chosen to install Docker via Docker Desktop); and
  3. Make sure Git is installed on your machine.

Run the app

To start using Lago, run the following commands in a shell:
You can now open your browser and go to http://localhost to connect to the application. Just after signing up, Lago’s API is exposed at http://localhost:3000.

Signing up

It’s mandatory to create your organization by signing up to Lago. This organization is the core object of your biller as it’s used to invoice your customers.
  1. Write down your organization name;
  2. Use the main billing email of your company; and
  3. Define the admin password for this email.
You will be able to invite other email addresses within the application. If you already have an account, you can also log in. Once you are able to access the app, you can retrieve your API key.

Find your API Key

Your API Key can be found directly in the UI:
  1. Access the Developer section from the sidebar;
  2. The first tab of this section is related to your API keys; and
  3. Click the Copy button to copy it to clipboard.

Configuration

Version

Docker images are always updated to the last stable version in the docker-compose.yml file. You can use a different tag if needed by checking the releases list.
We recommend to avoid the usage of latest tag, you should use the last tagged version, you can track what are the last version on Dockerhub

Environment variables

Lago uses the following environment variables to configure the components of the application. You can override them to customise your setup.
We recommend that you change POSTGRES_PASSWORD, SECRET_KEY_BASE, LAGO_RSA_PRIVATE_KEY, LAGO_ENCRYPTION_PRIMARY_KEY, LAGO_ENCRYPTION_DETERMINISTIC_KEY and LAGO_ENCRYPTION_KEY_DERIVATION_SALT to improve the security of your Lago instance:
  • SECRET_KEY_BASE can be generated using the openssl rand -hex 64 command.
  • LAGO_RSA_PRIVATE_KEY can be generated using the openssl genrsa 2048 | base64 command.
  • LAGO_ENCRYPTION_PRIMARY_KEY, LAGO_ENCRYPTION_DETERMINISTIC_KEY and LAGO_ENCRYPTION_KEY_DERIVATION_SALT can all be gerated using the cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 command.

Components

Lago uses the following containers: You can also use your own database or Redis server. To do so, remove the db and redis configurations from the docker-compose.yml file and update the environment variables accordingly.

SSL Support

Lago Front application can be configured to support SSL certificates. You have two options to achieve this:
  • by using a self-signed certificate
  • by using a signed certificate generated by Let’s Encrypt

Self Signed Certificate

  • Run the script to generate the certificates
  • Take a look at the docker-compose.yml file and uncomment the part related to the Self-Signed certificate
  • You can now start the front application with a self signed SSL certificate support

Let’s Encrypt Certificate

  • Edit the file extra/init-letsencrypt.sh
    • You must replace lago.example with your domain name
    • You must enter a valid email address
  • Edit the file extra/nginx-letsencrypt.conf
    • You must replace lago.example with your domain name
  • Run the script
  • Take a look at the docker-compose.yml file and uncomment all the parts related to the Let’s Encrypt’s support
  • You can now start the front application with the signed certificate support

Storage

By default, Lago uses the internal storage of the container. You can customize it by defining different environment variables. We currently support :
  • AWS S3
  • AWS S3 Compatibles Endpoints
  • Google Cloud Service Cloud Storage
If you use S3 compatibles endpoints, you should set the LAGO_AWS_S3_REGION to a default value (ei: us-east-1), it is required to work properly!

AWS S3

You have to set these variables to use AWS S3.

AWS S3 Compatible Endpoints

You have to set these variables to use AWS S3 Compatible Endpoints.

Google Cloud Service Cloud Storage

You have to set those variables to use GCS Cloud Storage. In the docker-compose.yml file, you must uncomment the lines and pass the correct GCS credentials json file.

SMTP Configuration

In order to use the email feature, you need to configure some environment variables.