Self-hosting Docs
Product KnowledgeIntegrations
  • Quickstart install
  • Distributed system installation
  • Post install setup
Powered by GitBook
On this page
  • Overview
  • Requirements
  • Architecture
  • Installation Steps

Distributed system installation

PreviousQuickstart installNextPost install setup

Last updated 3 months ago

Overview

The distributed system installation is a highly available solution that allows for designing fault tolerant and scalable workloads. The installation requires that both a Redis instance as well as a Postgresql instance with the PostGIS extension installed are already deployed, configured, and accessible from the Linux host(s) that will be running the Somewear Core service.

In a highly available architecture with multiple Linux hosts running the Somewear Core service, the following installation steps will need to be repeated on each host.

Interested in an on-premises deployment? Reach out to for more info.

Requirements

  • 1 or more servers running Ubuntu or Debian Linux

    • 4 CPU cores

    • 16 GB RAM

    • 40 GB disk storage

    • Somewear Labs Pilot CLI tool

    • Java 17 (installed by Pilot CLI)

  • Postgres instance with PostGIS extension installed

  • Redis instance

  • API token provided by Somewear Labs

Architecture

Installation Steps

Run the installation script. This will setup the Pilot CLI tool and the pilot user which will be used to run the tool. The script will also initialize the necessary configuration files.

curl -sSL https://get.somewear.app/install.sh | bash

Switch to the pilot user and initialize the configuration files. The --external-datastores CLI flag allows you to input the connection settings to your hosted Postgres and Redis instances.

sudo su - pilot
pilot init --external-datastores

The configuration initialization phase is interactive and you will need to enter a few details for the installation. You will need to input the API key that was provided to you by the Somewear Labs team, the DNS address for the installation, and credentials to create a system admin account. You will also be prompted to enter connection settings for your Postgres and Redis instances. Below is example output from running the init command.

$ pilot init --external-datastores
Creating new Pilot configuration file at ~/.config/somewear/pilot.properties...
Enter a value for each property
api-key (Pilot API key provided by Somewear Labs): <REDACTED_API_TOKEN>
api-address (Web address for the api server. i.e. api.somewear.co): somewear.example.org

Configuration file created.
Creating new Somewear core configuration file at ~/.somewear/pilot/core/somewear.conf...
Enter a value for each property
WEB_APP_URL (Web address URL for the server. i.e. https://api.somewear.co): https://somewear.example.org
SOMEWEAR_IDENTITIES_TO_CREATE (Somewear system admin account (formatted as username:password)): somewear:P@ssw0rd
POSTGRES_DB_HOST (Formatted as host:port): postgres.company.local:5432
POSTGRES_USER (Postgres username): postgres
POSTGRES_PASSWORD (Password for Postgres user): myS3cr3t
REDIS_HOST (Redis hostname): redis.company.local
REDIS_PORT (Redis port): 6379

Configuration file created.

Run the Pilot Docker prepare command to generate the Docker compose file for the Somewear Core service.

$ pilot node docker-prepare --external-datastores

Start the Somewear Core service.

docker compose up -d

Optionally, you can follow the container logs for the Somewear Core service to monitor the application launch.

docker logs -f somewear-core
hello@somewearlabs.com
Page cover image