Skip to main content

LayerG Binary for Windows

This tutorial will show you how to setup and run LayerG binary and its prerequisites on Windows.

The binary setup allows you to install and manage LayerG without Docker but it requires extra steps to setup and manage:

  • Installing CockroachDB or PostgreSQL
  • Manually applying database migrations
  • Manually upgrading LayerG and its database to newer versions
  • Configuring services or manually starting LayerG and its database

Prerequisites

Operating system

Before proceeding ensure that you are running 64bit Windows 8 or higher to run CockroachDB, or 64bit Windows 7 or higher for PostgreSQL.

Next, install a supported database engine.

CockroachDB

LayerG officially supports CockroachDB v20.0 or higher, with queries optimised for its storage engine.

Follow the official guide to Install CockroachDB on Windows.

PostgreSQL

LayerG unofficially supports PostgreSQL 9.6 or higher for development environments only.

Download and run a PostgreSQL Windows installer from the official site:

Only the “PostgreSQL Server” and “Command Line Tools” components are required, the rest are optional.

PostgreSQL components

PostgreSQL components

Provide a password for the database superuser. Take note of the password you provide here, you will need this later when configuring LayerG to connect to your database server.

Use the default values for other options in the installation process.

Download LayerG

Get the latest binary release of LayerG server for Windows:

  1. Download a release from the LayerG GitHub repo releases page.
  2. Extract the archive, optionally rename and move the folder to a suitable location.

Running LayerG

Before starting LayerG server you will need to run:

  1. Your chosen database, CockroachDB or PostgreSQL.
  2. LayerG database migrations if it is your first time running LayerG or you have upgraded LayerG versions.

CockroachDB

The easiest way to run CockroachDB is as a single-node server with insecure mode enabled, making it accessible only on your localhost (127.0.0.1). For more access and security control consult the CockroachDB documentation.

  1. Open a shell (Command Prompt, Powershell, Bash, etc) and navigate to your CockroachDB directory.
  2. To start CockroachDB, run the following:

Command Prompt

cockroach.exe start-single-node --insecure --listen-addr=127.0.0.1

Powershell or Bash

./cockroach.exe start-single-node --insecure --listen-addr=127.0.0.1

Your output from successfully running CockroachDB should look similar to the following screenshot:

CockroachDB running

CockroachDB running

CockroachDB can be configured to run as a Windows Startup App or Service to skip this step in future.

Error: unable to load named time zones

Some version of CockroachDB require a Go time zone .zip archive to load time zone information from.

You can get a compatible zoneinfo file by downloading and installing the latest Go release. The zoneinfo.zip file is located in your Go installation folder at lib/time/zoneinfo.zip.

Before running CockroachDB, in the same shell session set the ZONEINFO environment variable to the full path of your zoneinfo.zip file:

Command Prompt

set ZONEINFO="C:\Program Files\Go\lib\time\zoneinfo.zip"

Powershell

$env:ZONEINFO="C:\Program Files\Go\lib\time\zoneinfo.zip"

Bash

export ZONEINFO="c/Program Files/Go/lib/time/zoneinfo.zip"

Alternatively, set the environment variable through Windows Settings.

PostgreSQL

Once installed, PostgresSQL should automatically run in the background and you can proceed to running LayerG migrations or LayerG server.

You can use PostgreSQL Command Line Tools or GUI applications like pgAdmin to create application specific users with restricted permissions.

LayerG migrations

If this is your first time running LayerG or you have upgraded LayerG versions, you may need to run LayerG database migrations. If you are unsure, running migrations again is safe.

If you are running CockroachDB with the default configuration, running migrations is straightforward with no additional options necessary:

CockroachDB

Command Prompt

LayerG.exe migrate up

Powershell or Bash

./LayerG.exe migrate up

LayerG migrations for CockroachDB

LayerG migrations for CockroachDB

PostgreSQL

If you are using PosgreSQL you will need to supply your database server address, user and password. Unless you have created a custom user, this will be the default superuser postgres and the master password you provided during the installation:

Command Prompt

LayerG.exe migrate up --database.address postgres:[email protected]:5432

Powershell or Bash

./LayerG.exe migrate up --database.address postgres:[email protected]:5432

LayerG migrations for PostgreSQL

LayerG migrations for PostgreSQL

LayerG server

To start LayerG server with CockroachDB or PostgreSQL, run the following:

CockroachDB

Command Prompt

LayerG.exe

Powershell or Bash

./LayerG.exe

PostgreSQL

You will need to provide the same database.address value used for running LayerG PostgreSQL database migrations:

Command Prompt

LayerG.exe --database.address postgres:[email protected]:5432

Powershell or Bash

./LayerG.exe --database.address postgres:[email protected]:5432

If you get a Windows Security Alert, tick the “Private networks…” box to allow LayerG to communicate over your network and click “Allow Access” to confirm security permissions.

LayerG firewall

LayerG firewall

LayerG server will now be running and should display similar logging output with warnings and useful information such as:

  • LayerG data directory
  • LayerG and database version
  • Ports for various services

LayerG with CockroachDB

LayerG running using CockroachDB

LayerG running using CockroachDB

LayerG with PostgreSQL

LayerG running using PostgreSQL

LayerG running using PostgreSQL

LayerG Console

You can access the LayerG Console by navigating your browser to 127.0.0.1:7351.

When prompted to login, the default credentials are admin:password. These can be changed via configuration file or command-line flags.

LayerG console

Configuration file

There are many configuration options available that you can customize for your LayerG server.

Next steps

With your LayerG server now up and running with the desired configuration, you can get started with your preferred client SDK.