Report Manager
ENES

Web Designer — Reportman Server

Design, preview and run Report Manager reports from the browser, with an AI copilot. Self-hosted in Docker.

Reportman Server is one container on your network that holds the report engine, the report store and a web designer. Your team designs reports in the browser, previews them as PDF and runs them through a public API, with no installation on the PCs. The reports are the same .rep files the Delphi designer, printreptopdf and the Web Report Server read.

The designer and the server are free. The AI copilot is optional: everything else works without it. When you want it, the AI can run on your own hardware — a local model served by the Reportman Agent, at no cost — or you can subscribe to a Reportman AI plan and use the models tested with it.

Start it

docker run -d \
  --name reportman-server \
  --restart unless-stopped \
  -p 8090:8090 \
  -v reportman-server-data:/app/data \
  tonimartir/reportman-server:latest

On the first start the server is not installed yet. Read the one-time installation code from its log:

docker logs reportman-server

Then open http://localhost:8090, enter the code, choose how people enter and create the first administrator. Only somebody who can read the server's log can install it.

How people enter

The installation page chooses the mode. To fix it from Docker instead, with no installation page, add one of these to docker run:

# trusted network
-e Server__Auth=trusted

# users, with the first administrator created on the first start
-e Server__Auth=users -e Server__AdminUser=ADMIN -e Server__AdminPassword=change-me

The Reportman AI account is only for the AI: it is not the door to the server.

The data volume

Everything the installation owns lives in /app/data, plain files with nothing tied to the machine:

informes/the reports, one folder per alias; saving keeps the last versions in .versions/
dbxconnections.inithe connections, in the format the designers read
fuentes/your own fonts
access.json, keys/users, groups, permissions and the keys that sign the sessions
apikeys.jsonthe API keys
server-idthis installation for Reportman AI

Copy the folder and the installation moves with it. To clone a server as a new one (a test copy, a second office), delete server-id before its first start: it then counts as a new installation for Reportman AI, with its own AI sessions.

Connections

The new report wizard, ported from the Delphi designer, creates both kinds and tests them before saving.

A report made by the AI from one paragraph

A new installation comes with Ejemplos/ventas-por-cliente.rep and the EXAMPLE connection. It is the Reportman AI example database, which needs no key. The AI designed the report from a single request, which the report keeps in the group AI_REQUEST and prints at the end:

“I want you to design a professional sales-by-customer report, grouped by customer: the customer name and code in the header, the customer's total sales in the group footer. The detail must list the items sold to that customer, but only one line per item, that is, the data must be grouped in the SQL by customer and item. At the very end, a bar chart of sales by item (all customers); in each customer's footer, a bar chart of their items too. It must be a professional report; the page header must show the report title (make one up) and Page X of TOTAL.”

The result has two datasets, a group per customer with its total and its chart, and a chart of all customers at the end.

The AI copilot

It designs and changes reports in natural language, and helps with SQL and expressions. It is the same AI as the Delphi designer. The AI calls go from the server to Reportman AI, so the server needs Internet access to aiapi.reportman.es, over plain HTTPS (port 443). Only the AI sign-in goes from the browser.

Privacy: to design, the copilot sends Reportman AI the report definition and the columns of its datasets, as the Delphi designer does. Every call is in the copilot's AI log and in the server's audit log.

Fonts

A container only sees its own fonts. The image carries metric-compatible replacements for the Windows fonts (Arial, Times New Roman, Courier New, Arial Narrow, Calibri, Cambria), so a report keeps its Windows layout. It also carries Noto for most scripts, including Arabic (Noto Naskh Arabic), Hebrew, Indic, Thai, Chinese, Japanese and Korean, plus Amiri, Vazirmatn, monochrome emoji, Roboto, Open Sans, Lato and Montserrat.

Run reports from your applications

Create an API key in the console (Server → Keys) and run any stored report:

curl -X POST "http://localhost:8090/api/reports/INFORMES/execute?path=Ejemplos/ventas-por-cliente.rep&format=pdf" \
  -H "X-ReportmanServer-ApiKey: rpsk_..." -o report.pdf

Formats: pdf, csv, text and metafile. Report parameters go in the query or in a JSON body. The console has an API explorer that builds the request and shows it in curl, PowerShell, fetch, C# and Delphi. The OpenAPI reference is at /scalar.

Behind a reverse proxy

The AI answers are streams (text/event-stream under /api/ai/). A proxy that buffers them shows the answer only at the end.

Upgrade

docker pull tonimartir/reportman-server:latest
docker rm -f reportman-server
# and the same docker run as above: the volume keeps the installation

Image on Docker Hub: tonimartir/reportman-server. The report engine is open source: github.com/tonimartir/reportman.