Skip to content

Install Etendo - Server Installation

Overview

This guide covers installing Etendo on a production server using the Etendo ISO, which automates the operating system setup and base environment configuration. Copilot and Main UI are included in the base installation and are configured as part of this process.

Prerequisites

Info

The ISO configures the full stack (OS, PostgreSQL, Docker, Tomcat) automatically. No additional system setup is required.

Installation

1. Download the ISO

Download the latest Etendo ISO from the Etendo ISO - Release Notes page.

2. Provision the Server

How you use the ISO depends on your infrastructure:

  • Bare metal / physical server: burn the ISO to a USB drive using balenaEtcher (Linux/macOS) or Rufus (Windows), then boot from the USB.
  • AWS: an official Etendo AMI is published alongside each ISO release. Find the AMI ID in the Etendo ISO - Release Notes page, then launch a new EC2 instance from it.
  • Hetzner Cloud: upload the ISO as a custom image from the Hetzner Cloud Console and create a new server from it. Refer to the Hetzner documentation for details.
  • Scaleway: upload the ISO and use custom boot modes to provision an instance from it.
  • Other cloud providers: upload the ISO as a custom image and create a new instance from it. Refer to your provider's documentation for importing custom OS images.
  • Virtual machine: mount the ISO directly in your hypervisor. Qemu with Virt-Manager (Linux) or UTM (macOS) are recommended options.

3. Boot and Install the OS

Start the system from the ISO. Follow the prompts:

  • Network Connections: verify an IP address is correctly assigned and internet access is available.
  • Storage Configuration: select the target disk.
  • Profile Setup: enter your name, server name, and a password for the etendo user.

Wait for the operating system installation and server upgrade to complete. When prompted, select Reboot Now.

After the restart, the final server configuration runs automatically. Wait for it to complete — the base environment will be ready.

Installing without internet connection

If no internet connection is available during installation, select Continue without internet at the network configuration step. After the OS installation and reboot, configure the network, connect to the internet, log in as superuser (sudo su), and run etendo-install.

4. Add GitHub Credentials

Once the server is ready, navigate to the project directory and add your GitHub credentials to gradle.properties. To generate them, follow the Use of Repositories in Etendo guide.

Terminal
cd /opt/EtendoERP
gradle.properties
githubUser=<username>
githubToken=<*******>

5. Apply the Server Template

Run the following task to configure all required variables for the server environment:

Terminal
./gradlew setup.applyTemplates --template=server

When prompted, provide:

  • Etendo ERP URL — the full URL of your installation (e.g., http://myserver.com/etendo). The context name and host are derived automatically.
  • OpenAI API Key — your key for Copilot integration (input is masked).

Availability

setup.applyTemplates is available from Etendo 26 onwards, or in earlier versions with the Etendo Gradle Plugin 3.0.0 or higher.

Info

For details about available templates, options, and advanced usage, see the How to Use Setup Apply Templates guide.

Alternative: Manual Configuration

Configure variables directly in gradle.properties and apply them by running:

./gradlew setup --info

Alternative: Interactive Setup

For a fully guided, property-by-property configuration, run the interactive setup instead:

./gradlew setup -Pinteractive=true --console=plain
For more details, see the How to Use the Interactive Setup guide.

6. Start Docker Services

Terminal
./gradlew resources.up

This starts the Copilot and Main UI containers.

7. Compile and Deploy

Terminal
./gradlew install smartbuild --info
This creates the database, compiles the sources, and deploys to the local Tomcat directory.

8. Configure Apache

From the /opt/EtendoERP directory, run the Apache configuration script:

Terminal
cd utils
sudo ./apache-config.sh <domain>

This configures Apache as a reverse proxy for the server. Once complete, the Main UI and Classic UI URLs are set automatically based on the domain provided.

9. Start Tomcat

Terminal
sudo /etc/init.d/tomcat start

Access the Installation

Once all services are running:

Interface URL
Main UI https://<server-address>/
Classic UI https://<server-address>/<context-name>

Default credentials

User: admin Password: admin

Change the default password immediately after the first login in a production environment.


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