Skip to content
D
Documentation

System requirements

reference
5 min readUpdated

Before deploying Sherkety ERP, check the container, database, network, and service requirements, then test the database connection.

System requirements

The image starts from Ubuntu 22.04 and the deployment uses Flectra 3.0 with an external PostgreSQL database. Check the environment before startup, then check connectivity after startup.

If you need to…Go to
Check software, database, and network prerequisitesBefore you start
Choose between deployment environmentsChoose the deployment path
Configure values, mounts, ports, and startupConfigure and start the deployment
Select connection and security settingsChoose connection and security options
Test PostgreSQL access or diagnose startupTest the connection and troubleshoot startup
Confirm deployment readinessConfirm deployment readiness

Before you start

The deployment prerequisites are the software and access needed to run the container and reach its external database.

RequirementWhat to have ready
Container baseThe deployment image uses Ubuntu 22.04.
PythonUse Python 3.11 for Flectra 3.0 compatibility.
DatabaseAn Azure VM has PostgreSQL installed and running.
PostgreSQLUse PostgreSQL 14 or later as the recommended version.
DockerUse Docker 20.10 or later for local development.
Docker ComposeUse Docker Compose 2.0 or later for local development.
Database accessHave access to the Azure VM PostgreSQL database.
Network accessAllow connections from the local development machine, Rancher/Kubernetes cluster IP ranges, and the Docker host network.

Choose the deployment path

Choose the path that matches where you are running the service. Local development uses Docker Compose; the staging and production environments use an Azure VM PostgreSQL database.

If you need to…Use this path
Run local developmentUse the Docker Compose instructions and the .env file.
Run stagingUse the Azure VM database with the staging configuration.
Run productionUse the Azure VM database with the production configuration and subdomain routing.

The database remains outside the container in the Azure deployment. The container keeps Flectra data and sessions in its mounted data location.

Configure and start the deployment

Begin after Docker, Docker Compose, and database access are ready.

Prerequisites

  • You have Docker 20.10 or later.
  • You have Docker Compose 2.0 or later.
  • PostgreSQL is running on the Azure VM.
  • The database accepts connections from the machine or cluster that runs the service.

Steps

  1. Open a shell in the Flectra directory.

  2. Create the environment file from .env.example.

    bash
    cp .env.example .env
    
  3. Set the database host, database port, database user, database password, and deployment environment in .env.

SettingValue or meaning
DB_HOSTAzure VM PostgreSQL host, or localhost for local development
DB_PORT5432
DB_USERAccount used to connect
DB_PASSWORDPassword for the connection
ENVIRONMENTdevelopment
  1. Start the service with the environment file.

    bash
    docker-compose --env-file .env up -d
    
  2. Check the service logs.

    bash
    docker-compose logs -f flectra
    
  3. Confirm that the service health check requests /web on port 8069.

Result: The container starts with the data, custom-addon, configuration, and log mounts. The image exposes HTTP on port 8069, long polling on port 8072, and XMLRPC/API on port 8073; Compose maps the web and long-polling ports by default. Continue with the connection and security choices before exposing the service beyond local development.

Choose connection and security options

Choose the connection and security settings before exposing the service beyond local development.

If you need to…Set in .env, PostgreSQL access rules, or network configuration
Connect to the Azure databaseSet the database host in .env and allow the required source addresses in PostgreSQL access rules.
Permit local developmentAllow the development machine's address to connect to PostgreSQL.
Permit Kubernetes or RancherAllow the cluster address range to connect to PostgreSQL.
Protect production trafficEnable SSL/TLS and use a connection string that requires SSL.
Restrict database accessUse specific addresses in pg_hba.conf instead of broad ranges.
Expose the APIConfirm whether the XMLRPC/API service on port 8073 is required before opening it.

Use strong passwords. Restrict database access. Enable SSL/TLS for production. Schedule automated backups. The container exposes port 8073, while the Compose service maps the web and long-polling ports only; confirm the API exposure decision for the deployment.

Result: The database connection path and the security settings match the intended deployment environment. Run the connection test next.

Test the connection and troubleshoot startup

Run the connection test after configuring the database host, user, and database.

Prerequisites

  • You know the Azure VM host name or address.
  • PostgreSQL is running.
  • The database user has permission to connect.

Steps

  1. Open a shell on the local machine.

  2. Enter psql -h <azure-vm-ip> -U <database-user> -d <database-name> -c "\l" and press Enter.

  3. Confirm that the command lists the databases.

  4. If the container does not start, inspect the Flectra logs.

    bash
    docker-compose logs -f flectra
    
  5. If the connection fails, use the symptom in the table to choose the checks to perform.

    If you see…Check…
    could not connect to server: Connection refusedPostgreSQL status, port 5432, network security group rules, and listen_addresses
    Authentication fails for the database userThe .env password, the pg_hba.conf authentication method, and the database user
    FATAL: no pg_hba.conf entry for hostThe client address in pg_hba.conf, then reload PostgreSQL
    FATAL: SSL connection is requiredThe production SSL configuration and the connection string's SSL mode

Resolve the URL conflict before giving an access address to readers: one access URL is http://localhost:7071, while the image and Compose configuration use port 8069.

Result: The PostgreSQL command lists the available databases, or the displayed failure identifies the database or network setting to correct. Complete the readiness checks before treating the environment as ready.

Confirm deployment readiness

Before treating the environment as ready, complete these deployment checks.

Readiness actionHow to complete it
Confirm the host platformConfirm that the host operating system and architecture support the container deployment.
Confirm capacitySet CPU, memory, storage, and database capacity for the intended workload.
Confirm client accessConfirm the supported browsers and display requirements for the web interface.
Confirm network accessConfirm firewall, proxy, DNS, outbound, and PostgreSQL source-network rules.
Confirm the PostgreSQL versionConfirm whether PostgreSQL 14 is the required minimum for the deployment.
Confirm API exposureConfirm whether port 8073 must be reachable, then apply the network rule.
Confirm recovery settingsSet backup retention and recovery targets for the deployment.
Confirm production securitySet the SSL/TLS enforcement and certificate policy.
Confirm distribution scopeConfirm whether the configuration is for internal operations before sharing it.

Result: The deployment owner has completed the readiness checks before the service is treated as ready.

Was this page helpful?

Download as PDF
System requirements — SherketyERP