Skip to content

Install Etendo - Interactive Guide

Overview

IMPORTANT: THIS IS A BETA VERSION

It is under active development and may contain unstable or incomplete features. Use it at your own risk. The module behavior may change without notice. Do not use it in production environments.

Use the Interactive Configuration System to install and configure Etendo. The assistant walks you through each setting, applies safe defaults, and performs changes only after you confirm them.

Key benefits:

  • Step-by-step guidance with inline help for every property.
  • Sensitive input (passwords, tokens) is detected and hidden.
  • Settings are grouped by category (Database, Security, Application, etc.).
  • Built-in validation and a confirmation step before applying changes.
  • Automatic backups of existing configuration files before updates.
  • Faster, less error-prone setup compared to manual editing.

Requirements

Before starting, it is necessary to have:

Interactive Installation Process

Prepare the Environment

Choose the installation format and prepare the base files:

  1. Clone Etendo Base project in /opt directory:

    Terminal
    cd /opt/
    git clone https://github.com/etendosoftware/etendo_base.git EtendoERP
    

  2. Move to the installation directory:

    Terminal
    cd /opt/EtendoERP
    

  3. Add GitHub credentials to gradle.properties file:

    gradle.properties
    githubUser=<username>
    githubToken=<*******>
    

  4. Expand Etendo Base:

    Terminal
    ./gradlew expand
    

  1. Clone Etendo Base project in /opt directory:

    Terminal
    cd /opt/
    git clone https://github.com/etendosoftware/etendo_base.git EtendoERP
    

  2. Move to the installation directory:

    Terminal
    cd /opt/EtendoERP
    

  3. Add GitHub credentials to gradle.properties file:

    gradle.properties
    githubUser=<username>
    githubToken=<*******>
    

  4. Uncomment the core dependency in build.gradle:

    build.gradle
    implementation('com.etendoerp.platform:etendo-core:<version>')
    

  1. Clone Etendo Base project in /opt directory:

    Terminal
    cd /opt/
    git clone https://github.com/etendosoftware/etendo_base.git EtendoERP
    

  2. Move to the installation directory:

    Terminal
    cd /opt/EtendoERP
    

  3. Add GitHub credentials to gradle.properties file:

    gradle.properties
    githubUser=<username>
    githubToken=<*******>
    

  4. Add Platform Extensions bundle dependency:

    build.gradle
    dependencies {
        implementation ('com.etendoerp:platform.extensions:2.6.0') // 2.6.0 or higher.
    }
    

  5. Expand Etendo Base:

    Terminal
    ./gradlew expand
    

Start Interactive Configuration

Launch the interactive configuration assistant:

Terminal
./gradlew setup -Pinteractive=true --console=plain

It will be possible to see the main configuration menu:

🎛️  Interactive Setup - Main Menu
============================================================

📋 Choose configuration option:

1️⃣  Default configuration (use current/default values)
2️⃣  Group configuration:
   📦 a. all - Configure all groups
   📋 b. Database Configuration
   📋 c. Security Settings
   📋 d. Application Settings
3️⃣  Exit without saving

🎯 Select an option:

Configure Properties

When selecting a configuration group, you will be guided through each property, for example:

📋 Database Configuration
==================================================

🔧 Property: bbdd.host
   ℹ️  Database server hostname or IP address
   Current value: localhost
✏️  New value: [Enter to keep current, or type new value]

🔧 Property: bbdd.port
   ℹ️  Database server port number
   Current value: 5432
✏️  New value: [Enter to keep current, or type new value]

🔧 Property: bbdd.password
   ℹ️  Database connection password
   Current value: 
🔐 New value (hidden): [Password input is hidden]

Property Configuration Tips

  • Press Enter to keep the current/default value.
  • Type new values to override defaults.
  • Sensitive properties (passwords, tokens) will hide your input.
  • Required properties must have a value to proceed.

Review Configuration Summary

Before applying changes, a complete summary will be shown:

📊 Configuration Summary
============================================================

📋 Database Configuration:
   🔧 bbdd.host = localhost
   🔧 bbdd.port = 5432
   🔧 bbdd.password = ********

📋 Security Settings:
   🔧 githubToken = ********
   🔧 nexusPassword = ********

📋 Application Settings:
   🔧 context.name = etendo

📊 Total: 6 properties configured
🔐 Including 3 sensitive properties (shown masked)

✅ Confirm configuration? (Y/N):

Review Checklist

  • All required properties have values.
  • Database connection details are correct.
  • GitHub/Nexus credentials are properly set.
  • Application context name is as desired.

Complete Installation

After confirming the configuration:

  1. Properties are saved to gradle.properties (with automatic backup).
  2. Traditional setup runs automatically.
  3. Installation continues with the configured settings.

Complete the installation process:

Terminal
# Installation
./gradlew install smartbuild

# Start Tomcat
sudo /etc/init.d/tomcat start
Terminal
# Dependencies
./gradlew dependencies

# Installation
./gradlew install smartbuild

# Start Tomcat
sudo /etc/init.d/tomcat start
Terminal
# Launch Docker services
./gradlew resources.up

# Installation
./gradlew install smartbuild

Access Your Installation

Open the browser and navigate to:

  • Standard Installation: https://<Public server IP>/<Context Name>
  • Local Development: http://localhost:8080/etendo

Advanced Features

Re-running Interactive Configuration

It is possible to run the interactive configuration again at any time:

Terminal
./gradlew setup -Pinteractive=true --console=plain

This will:

  • Show the current configuration values.
  • Allow the user to modify any settings.
  • Create new backups before applying changes.

Debug Mode

For troubleshooting, enable debug output:

Terminal
./gradlew setup -Pinteractive=true --debug --console=plain

Custom Modules Properties Configuration

If your project includes custom modules with a config.gradle file, their configuration properties are added automatically to the interactive setup. Property names are preserved exactly as declared in config.gradle, and custom keys in gradle.properties are supported.

Info

Visit the Developer Guide for details about Interactive Configuration to custom modules.


This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L.