Skip to content

Application server

nouverbe edited this page Oct 7, 2026 · 1 revision

Application server

appserver serves the bases listed in its server folder, from one process and without a window. Firebird and PostgreSQL bases can run side by side. All bases share one worker pool, and each keeps its own connections, sessions, locks, scheduled jobs and journal.

Started by hand, it logs to its console and runs until Ctrl+C.

The server folder

<server folder>/          by default: "server" beside appserver
  server.conf             one group per base
  server.key              this installation's key, made at the first start
  <Id>/                   one folder per base: its journal and infobase.conf
Port=7373

[trade]
Kind=firebird
Path=C:\bases\trade

[stock]
Kind=postgresql
Server=localhost
Port=5432
Database=stock
User=oes
Key Meaning
Port (top level) Where clients connect; 7373 if absent
[name] One base. The name is what clients ask for
Kind firebird or postgresql
Path Firebird: the base's folder
Server, Port, Database, User, Password PostgreSQL: the connection
IbUser, IbPassword The base's own user the server logs in as
Id Assigned at the first start and written back; leave it alone

Passwords

Passwords are sealed with the installation's key (AES-256-GCM); a password written as plain text is refused. Seal one from the keyboard:

appserver --set-password=stock/Password
appserver --set-password=stock/IbPassword

Keep server.key with server.conf: a sealed value does not open without it.

Options

Option Meaning
--dir=<folder> Another server folder
--locale=<code> The language of console messages
--set-password=<base>/<Password|IbPassword> Seal a password, then exit

Rules

  • The designer creates a base and its tables. The server opens existing bases and does not create them.
  • A server and a desktop program do not share a base. Servers can share a base with each other, and file-base programs with each other, but a server is refused a base that the designer or enterprise has open, and the reverse.
  • A base that fails to open is closed alone; the others keep being served.
  • backend.conf beside the program limits the process (Workers, Bases, the default Connections), and a base's infobase.conf sets its own Connections.

Clients

Clients connect to oes://<host>[:port]/<base> over WebSocket or HTTP, with JSON-RPC. The protocol is described in client-protocol.md.

Clone this wiki locally