SG SealGrid Athena Docs

Configuration

Athena Server is configured through appsettings.json, overridden by environment variables (sections use a double-underscore separator, e.g. Server__PublicUrl).

The Settings screen in Athena
Settings → General — language and display options; each tab maps to a group of appsettings.json values.

Configuration sources#

Settings are layered, with later sources overriding earlier ones. The precedence, lowest to highest, is:

  1. appsettings.json — committed defaults baked into the image.
  2. Environment variables — highest precedence; ideal for secrets and host-specific values, passed to the container with -e.

A nested JSON key maps to an environment variable by joining the section and key names with a double underscore. For example, the Server:PublicUrl setting is overridden by:

Server__PublicUrl=https://athena.example.com:8443
Keep secrets out of config files

Provide Jwt__Secret and RemoteSession__Turn__StaticAuthSecret as environment variables rather than writing them into appsettings.json. The JWT secret signs the console's login tokens and the TURN secret authorizes remote-session relay credentials — treat both like passwords.

Database#

The Database section selects the storage provider and connection.

KeyDefaultNotes
ProviderSqliteDefault. Also supports PostgreSQL.
ConnectionStringData Source=athena.dbProvider-specific connection string.
HeartbeatBatchDelayMs3000Batching window for agent heartbeat writes, in milliseconds.

SQL Server is not shipped — only the SQLite and PostgreSQL provider plugins exist. For a step-by-step guide to running on PostgreSQL — the connection string format, schema creation, and how to verify it — see Using PostgreSQL for the Database.

Server & ports#

The Server section controls the listening ports, TLS and the externally reachable URL. To replace the auto-generated certificate with your own and run behind a reverse proxy, see Server TLS Certificate.

KeyDefaultNotes
WebPort8443Web console / API port.
ApiPort8444Agent gateway port (gRPC over HTTP/2).
TlsEnabledtrueTerminate TLS on Kestrel.
HostnamesHostnames the server answers on.
WebCertPathPath to the server TLS certificate (PFX).
WebCertPasswordPassword for the PFX certificate.
PublicUrlExternally reachable base URL, e.g. https://athena.example.com:8443.

gRPC#

The nested Grpc section tunes the agent gateway message limits.

KeyDefaultNotes
MaxReceiveMessageSize6710886464 MB — sized for video and file transfers.
MaxSendMessageSize6710886464 MB — sized for video and file transfers.
EnableDetailedErrorstrueInclude detailed error information on gRPC faults.

PKI#

The Pki section governs the built-in certificate authority that issues and renews agent certificates.

KeyDefaultNotes
CertificatesPath./pkiWhere the CA and issued certificates are stored.
CaSubjectCN=Athena Root CA, O=Athena Deploy CenterDistinguished name of the root CA.
CaValidityYears10Root CA lifetime, in years.
AgentCertValidityDays60Issued agent certificate lifetime, in days.
AutoRenewBeforeDays7Renew agent certificates this many days before expiry.
KeySize2048Agent certificate key size, in bits.
RootCaKeySize4096Root CA key size, in bits.
EnableAutoRenewaltrueRun the automatic renewal job.
AutoRenewalCheckIntervalHours6How often the renewal job runs, in hours.

Authentication (JWT)#

The Jwt section configures the tokens issued to the web console.

KeyDefaultNotes
SecretSigning secret. Environment variable only (Jwt__Secret).
IssuerAthenaToken issuer claim.
AudienceAthenaToken audience claim.
ExpirationMinutes15Access token lifetime, in minutes.

Security#

The Security section controls session, lockout, rate-limiting and password rules.

KeyDefaultNotes
SessionTimeoutMinutes3Idle session timeout, in minutes.
MaxFailedLoginAttempts5Failed sign-ins before lockout.
LockoutDurationMinutes15How long an account stays locked, in minutes.
HardLockThreshold30Failed attempts before a hard lock.
MaxRequestsPerMinutePerIp10Per-IP request ceiling, per minute.
EnableJwtSecretRotationtrueRotate the JWT signing secret automatically.
AgentTokenValidityDays90Agent token lifetime, in days.

PasswordPolicy#

KeyDefault
MinimumLength8
RequireUppercasetrue
RequireLowercasetrue
RequireDigittrue
RequireSpecialCharacterfalse

An Admin can review and change the session, lockout, and password-policy values from the console or API without editing this file — see Security Settings.

ConnectionRateLimit#

KeyDefaultNotes
PermitLimit20Connections permitted per window.
WindowSeconds60Rate-limit window, in seconds.

Audit#

The Audit section controls the audit trail sink and optional syslog forwarding.

KeyDefaultNotes
ProviderFileAudit sink.
DirectoryAuditLogsDirectory for audit log files.
FilePrefixauditFilename prefix for audit logs.
BufferSizeWrite buffer size.

Syslog#

KeyDefaultNotes
EnabledfalseForward audit events to syslog.
HostSyslog collector host.
Port514Syslog port.
TransportUdpTransport protocol.
FormatRfc5424Syslog message format.
Facility16Syslog facility code.
BufferSize10Syslog send buffer size.

For forwarding to a SIEM, see Audit & SIEM.

Packages & recording#

Packages#

KeyDefaultNotes
StoragePath./packagesWhere uploaded deployment packages are stored.
MaxUploadSizeGB15Maximum package upload size, in gigabytes.
BaseUrlExternally reachable URL agents use to fetch packages.
TokenSecretSecret used to sign package download tokens.

Recording#

KeyDefaultNotes
EnabledRecord remote sessions.
StoragePath./recordingsWhere session recordings are stored.
RetentionDays30How long recordings are kept, in days.
MaxSessionSizeMB2048Maximum recording size per session, in megabytes.

Remote session#

The RemoteSession section controls remote desktop and command sessions.

KeyDefaultNotes
EnableHelperLaunchtrueAllow launching the remote helper.
MaxSessionDurationMinutes120Maximum session length, in minutes.
ReconnectWindowSeconds30Window to reconnect a dropped session, in seconds.
WebRtcEnabledtrueUse WebRTC for the media channel.

Turn (coturn)#

KeyDefaultNotes
SchemeturnTURN URI scheme.
Hostcoturn host.
Port3478coturn port.
TransportudpTURN transport.
CredentialTtlSeconds600Lifetime of generated TURN credentials, in seconds.
StaticAuthSecretEnvironment variable only (RemoteSession__Turn__StaticAuthSecret).

For the operator-facing workflow, see Remote Commands & Desktop.

Other settings#

Localization#

KeyDefault
Languageen
SupportedLanguages["en"]

DefaultAdmin#

KeyDefaultNotes
UsernameadminSeeded administrator username.
PasswordInitial password — change on first sign-in.
DisplayNameAdministrator display name.
EmailAdministrator email address.

Scheduler#

KeyDefault
CronBuilderModeVisual
DefaultDeploymentTimeoutMinutes120

Swagger#

KeyDefault
Enabledtrue
RoutePrefixapi-docs
TitleAthena Deploy Center API

General#

KeyDefault
ApplicationNameAthena Deploy Center
DefaultPageSize10
DashboardRefreshInterval10

Logging#

KeyDefault
DirectoryLogs
RetentionDays30

Minimal example#

A minimal appsettings.json with the most common sections. Keep real secret values out of this file — supply them via environment variables.

{
  "Database": {
    "Provider": "Sqlite",
    "ConnectionString": "Data Source=athena.db"
  },
  "Server": {
    "WebPort": 8443,
    "ApiPort": 8444,
    "TlsEnabled": true,
    "WebCertPath": "/app/certs/server.pfx",
    "PublicUrl": "https://athena.example.com:8443"
  },
  "Jwt": {
    "Secret": "<set via Jwt__Secret env var>",
    "Issuer": "Athena",
    "Audience": "Athena",
    "ExpirationMinutes": 15
  },
  "DefaultAdmin": {
    "Username": "admin",
    "Password": "<change on first sign-in>",
    "DisplayName": "Administrator",
    "Email": "admin@example.com"
  }
}