LOGS Server Configuration
This document describes the main configuration file used by the LOGS application.
Minimal Example Configuration
Below is a minimal configuration that satisfies all required fields:
[Server]
HttpPort = 80
ListenAddress = "0.0.0.0"
AllowHttp = true
[Database]
User = "logsuser"
Password = "logspassword"
Host = "localhost"
Database = "logsdb"
[Paths]
Files = "/opt/logs/files"
Cache = "/opt/logs/cache"
Logs = "/opt/logs/log"
Apps = "/opt/logs/apps"
[[Groups]]
Id = "example"
Enabled = true
Full Example Configuration
[Server]
HttpPort = 80
HttpsPort = 443
ListenAddress = "0.0.0.0"
AllowHttp = true
AcmeWellKnownPath = "/.well-known/acme-challenge"
CertificatePath = "/etc/ssl/certs/server.crt"
KeyPath = "/etc/ssl/private/server.key"
[Server.Hsts]
MaxAge = 31536000
IncludeSubdomains = true
[Database]
User = "logsuser"
Password = "logspassword"
Host = "localhost"
Database = "logsdb"
Port = 5432
[Paths]
Files = "/opt/logs/files"
Cache = "/opt/logs/cache"
Config = "/opt/logs/config"
Logs = "/opt/logs/log"
Temp = "/opt/logs/tmp"
Apps = "/opt/logs/apps"
Licenses = "/opt/logs/licenses"
[SystemPaths]
Chromium = "/snap-bin-chrome"
[[Groups]]
Id = "example"
Enabled = true
# These settings only apply to the "example" group
[Groups.Settings]
Enable2FA = true
[Settings]
EnableBarcodeDisplay = true
MaxUploadSizeMb = 4096
Overview
In [Server], define where the LOGS server listens and configure TLS/HTTPS. To restrict LOGS to local access, change ListenAddress from "0.0.0.0" (all interfaces) to "127.0.0.1" (localhost).
At least one of HttpPort and HttpsPort is required. If only HTTPS is enabled, CertificatePath and KeyPath are required. When both HTTP and HTTPS are configured without a certificate and key, LOGS starts with HTTP only and emits a warning.
[Settings] contains global feature settings. The same settings may be placed in [Groups.Settings] after a [[Groups]] entry to enable a setting for that group. Global settings remain effective for every group; group settings can enable additional settings and supply group-specific values where supported. All settings are optional and use the defaults listed below.
Configuration Reference
[Server]
HttpPort(int, optional): HTTP port to listen on. Either this orHttpsPortis required.HttpsPort(int, optional): HTTPS port to listen on. Either this orHttpPortis required.ListenAddress(string, required): IP address to bind, for example"0.0.0.0".AllowHttp(bool, optional): Whether unencrypted HTTP connections are allowed. When set to false, LOGS will automatically redirect all requests to the HTTP port to HTTPSAcmeWellKnownPath(string, optional): Path used for ACME HTTP challenges (Let's Encrypt).CertificatePath(string, optional): TLS certificate path.KeyPath(string, optional): TLS private-key path.
[Server.Hsts]
MaxAge(int, optional, default0): HSTS max age in seconds.IncludeSubdomains(bool, optional, defaultfalse): Apply HSTS to subdomains.
[Database]
User(string, required): Database username.Password(string, required): Database password.Host(string, required): Database host.Database(string, required): database name (must be all lowercase).Port(int, optional, default5432): Database port.
[Paths]
Files(string, required): Path for file storage.Cache(string, required): Path for cache storage.Config(string, optional): Path for legacy configuration files.Logs(string, required): Path for logs.Temp(string, optional): Path for temporary files.Apps(string, required): Path for application/download files.Licenses(string, optional): Path for license files. Other fallback locations are also checked for license files.
[SystemPaths]
Parsing(string, optional): Path to the parsing installation.ParserExecutor(string, optional): Path to the parser-executor binary.Chromium(string, optional): Path to the Chromium binary.
[[Groups]]
Id(string, required): Group identifier. It must start with a letter or number and may otherwise contain letters, numbers,-, and_. The identifiersapi,groups,admin, andstatusare reserved.Enabled(bool, optional, defaultfalse): Whether the group is enabled.[Groups.Settings]: Optional group-level feature settings. It supports every option listed in[Settings].
[Settings] and [Groups.Settings]
The following feature settings are accepted in both sections. Boolean settings default to false unless another default is shown.
| Option | Type and default | Description |
|---|---|---|
Eln |
bool, true |
Enables the electronic lab notebook feature. |
JobQueueMaxThreadCount |
int, unset | Maximum number of job-queue worker threads. |
AllowGenericFiles |
bool, false |
Allows generic files. |
DisablePublicGroups |
bool, true |
Hides public groups from the authentication group endpoint. |
ActiveDatasetClasses |
string, unset | Comma-separated list of active dataset classes. |
NumberOfParallelSftpConnections |
int, 10 |
Maximum number of parallel SFTP connections. |
NumberOfParallelTransientSftpConnections |
int, 5 |
Maximum number of parallel transient SFTP connections. |
EnableBarcodeDisplay |
bool, false |
Displays UUID barcodes on entity detail pages. |
PermanentlyRemoveDatasetFilesAfterDays |
int, 30 |
Number of days before permanently removing dataset files; values below 1 are treated as 1. |
Enable2FA |
bool, false |
Enables two-factor authentication. |
AutoLogoutAfterMinutes |
int, unset | Automatically logs users out after this many minutes. |
EnableMweb |
bool, false |
Enables the MWEB feature. |
EnableStrictCustomTypeLocking |
bool, false |
Enables strict custom-type locking. |
EnableZontalIntegration |
bool, false |
Enables ZONTAL integration. |
EnableZontalAutomaticDataPush |
bool, false |
Enables automatic data push to ZONTAL. |
MaxUploadSizeMb |
int, 4096 |
Maximum upload size in MiB. |
[Authentication]
The Authentication section is optional. It is used to configure Single-Sign-On (SSO). Configure LDAP and/or OIDC by adding the relevant subsection.
[Authentication.LDAP]
Url(string): LDAP server URL.BindTemplate(string): Template used to bind a user, such as"cn=${username},dc=example,dc=org".ServiceDn(string, optional): Distinguished name of the service account used for LDAP searches.ServicePassword(string, optional): Password forServiceDn.ServiceScope(string, optional): LDAP search scope for service-account searches.ServiceSearchBase(string, optional): Base DN for service-account searches.ServiceSearchTemplate(string, optional): LDAP filter template for service-account searches.SearchScope(string): LDAP search scope for user searches.SearchBase(string): Base DN for user searches.SearchTemplate(string): LDAP filter template for user searches, such as"(cn=${username})".VerboseLogging(bool, optional, defaultfalse): Enables verbose LDAP logging.
[Authentication.LDAP.UserCreation]
UserEnabledByDefault(bool, optional, defaulttrue): Enables newly created LDAP users by default.DefaultRoles(array of strings): Role names assigned to newly created LDAP users.
[Authentication.LDAP.UserCreation.Mappings]
LastName(string, optional): LDAP attribute mapped to the user's last name.FirstName(string, optional): LDAP attribute mapped to the user's first name.Email(string, optional): LDAP attribute mapped to the user's email address.
[Authentication.LDAP.UserCreation.Home]
From(string, optional): LDAP attribute used to derive the user's home project.ResolveDuplicates(bool, optional, defaultfalse): Resolve duplicate home-project values.UseExisting(bool, optional, defaultfalse): Use an existing matching home project.
[Authentication.OIDC]
Authority(string): OIDC issuer/authority URL.ClientId(string): OIDC client identifier.UserEnabledByDefault(bool, optional, defaultfalse): Enables newly registered OIDC users by default.DefaultRole(int, optional): Numeric ID of the role assigned to newly registered OIDC users.
[Authentication.OIDC.ProfileMapping]
LastName(string, optional, defaultfamily_name): OIDC claim used for the user's last name.FirstName(string, optional, defaultgiven_name): OIDC claim used for the user's first name.Email(string, optional, defaultemail): OIDC claim used for the user's email address.Login(string, optional, defaultemail): OIDC claim used for the user's login name.
