Key parameters can be defined to customize how SkylineGlobe Server (SGS) is deployed and behaves. The method of setting these parameters depends on the deployment type:
- Windows: appsettings.json in the root application folder
- Docker: environment section in the Docker Compose YAML
- Kubernetes: environment section in the Deployment YAML
Common Configuration Parameters
- CatalogDBType: Type of database to use. Options: SQLite (default), PostgreSQL.
- CatalogPostgreSqlConnString: The connection string used for PostgreSQL deployments. This string must include {0} as a placeholder for the catalog name. SGS will replace {0} at runtime with the actual catalog name. If the catalog already exists, it will be used; if not, SGS will create it automatically.
- SharedDataPath: Path to the folder containing catalog.db and other persistent data. Use double backslashes (\\) on Windows. If upgrading from a previous version, back up the existing database: Locate the catalog.db file (e.g., C:\SkylineGlobeServerConfiguration\catalog.db) and make a copy of it.
- PublicUrl: Public-facing service URL used in WMS/WFS/WMTS responses.
-
LicenseServerURL: URL of the floating license server. This setting is only required when using a floating license. The license file must be placed in the correct location and then this parameter should be set to that location, e.g., "LicenseServerURL": "https://cloud.skylineglobe.com/[YOUR_LICENSE_TOKEN]"
- Windows: root of the server directory
- Docker/Kubernetes: config subdirectory within the server directory
- OldVirtualPath: This parameter is used to ensure backward compatibility with projects created in earlier versions that may still reference URLs that include /sg. In the URL path. To ensure backward compatibility, this parameter should be set to "/sg" to allow the server to transparently support requests containing /sg by ignoring the legacy path component.
Windows: Configuring with appsettings.json
For Windows deployment, custom server settings for SkylineGlobe Server are defined in an appsettings.json file placed in the root of the SkylineGlobe Server application folder. If no such file is provided, the default values defined in the appsettings.base.json provided with your application files are used.
The appsettings.json file fully overrides the appsettings.base.json file. If you redefine a section (e.g., Kestrel), ensure it includes all necessary subsections such as endpoints.
To run SkylineGlobe Server (SGS) with TLS enabled, configure the server to use a certificate for secure HTTPS communication.
To create a configuration file:
- Copy the appsettings.sample.jsonc file provided by Skyline.
- Remove all comments (lines starting with //).
- Rename the file to appsettings.json.
- Edit only the values you want to override.
appsettings.sample.jsonc file
// ============================================
// đ Sample appsettings file for SkylineGlobeServer
// ============================================
//
// â Do NOT use this file as-is.
//
// â
To customize the configuration:
// 1ī¸âŖ Copy this file and rename it to: appsettings.json
// 2ī¸âŖ Remove the comments (lines starting with //)
// 3ī¸âŖ Edit only the values you want to override
//
// âšī¸ If appsettings.json is missing, the app will use default values:
// - đī¸ SQLite as the database engine
// - đ %localappdata%\skyline\SkylineGlobeServer\ as the main data folder
// - đ No SSL, bound to http://localhost
//
// â ī¸ Note: appsettings.json completely overrides appsettings.base.json.
// If you want to change only one setting, make sure to include all required sections.
//
// đĄ For example: if you define "Kestrel" here, you must include all endpoints you want enabled.
// ============================================
{
// đ ===== Kestrel (HTTP Server) Settings =====
// This section is optional.
// If omitted, the app will default to running on http://localhost without SSL.
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://*:5000", // đ Change port or interface if needed (e.g., "https://localhost:443")
"Certificate": {
"Path": "Path\\To\\Certificate.pfx", // đ Full path to a .pfx certificate file
"Password": "PWD" // đ Certificate password
}
}
}
},
// đ ===== Allowed Hosts =====
// Determines which hosts are allowed to access the server.
// "*" allows all.
"AllowedHosts": "*",
// âī¸ ===== Custom Server Configuration =====
"ServerConfig": {
// đĸī¸ Database type to use. Supported: "sqlite" (default), "postgresql"
"CatalogDBType": "sqlite",
// đ PostgreSQL connection string (only used if DB type is "postgresql")
// Note: {0} is a placeholder and will be replaced by the actual DB name.
"CatalogPostgreSqlConnString": "server=localhost;port=5432;user id=postgres;password=PWD",
// đ App data folder path.
// If empty or missing, defaults to: %localappdata%\skyline\SkylineGlobeServer\
"SharedDataPath": "", // Point the data folder (e.g., C:\SkylineGlobeServerConfiguration), which includes your catalog.db. If upgrading Windows from a previous version, first back up the existing database: Locate the catalog.db file (e.g., C:\SkylineGlobeServerConfiguration\catalog.db) and make a copy of it.
// đ Public base URL used for service responses
// This must be the fully qualified public URL that clients will use to reach the server.
// Example: "https://myserver.domain.com"
"PublicUrl": "",
// đ License Server URL for floating license support.
// Required if you are using a floating license.
"LicenseServerURL": ""
}
}
Example Configuration
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://*:5000",
"Certificate": {
"Path": "D:\\certs\\mycert.pfx",
"Password": "secret"
}
}
}
},
"AllowedHosts": "*",
"ServerConfig": {
"CatalogDBType": "sqlite",
"SharedDataPath": "C:\\SkylineGlobeServerConfiguration",
"OldVirtualPath": "/sg1234",
"PublicUrl": "https://your-public-domain.com/SGS",
"LicenseServerURL": ""
}
}Docker: Configuring with Docker-Compose.yaml
In Docker deployments, configuration parameters are set in the environment: section of your Compose file using the following pattern:
SGS__ServerConfig__<ParameterName>: <value>
Example docker-compose.yaml section
environment: - SGS__ServerConfig__CatalogDBType=SQLite - SGS__ServerConfig__SharedDataPath=/app/data - SGS__ServerConfig__PublicUrl=https://sgs.localhost:8443 - SGS__ServerConfig__LicenseServerURL= - SGS__ServerConfig__OldVirtualPath=/sg1234 # Optional: legacy base path for backwards compatibility with older SGS URLs - SGS__Kestrel__Endpoints__Https__Url=https://*:5000 - SGS__Kestrel__Endpoints__Https__Certificate__Path=/app/certs/your-cert.pfx - SGS__Kestrel__Endpoints__Https__Certificate__Password=your_password
Kubernetes: Configuring with Deployment.yaml
In Kubernetes deployments, configuration parameters are set in the environment: section of your deployment.yaml file using the following format:
env: - name: SGS__ServerConfig__<ParameterName> value: <value>
Example env: section for PostgreSQL + Ingress deployment:
env: - name: SGS__ServerConfig__CatalogDBType value: PostgreSQL - name: SGS__ServerConfig__CatalogPostgreSqlConnString value: server=postgres;port=5432;user id=postgres;password=postgres; - name: SGS__ServerConfig__SharedDataPath value: /app/data - name: SGS__ServerConfig__PublicUrl value: https://sgs.localhost - name: SGS__ServerConfig__LicenseServerURL value: "" - name: SGS__Kestrel__Endpoints__Http__Url value: http://0.0.0.0:5155 - name: SGS__ServerConfig__OldVirtualPath value: /sg1234 # Optional: legacy base path for backwards compatibility with older SGS URLs - name: SGS__Kestrel__Endpoints__Https__Url value: https://*:5000 - name: SGS__Kestrel__Endpoints__Https__Certificate__Path value: /app/certs/your-cert.pfx - name: SGS__Kestrel__Endpoints__Https__Certificate__Password value: your_password
Note: SGS__Kestrel__Endpoints__Http__Url is only required if you're exposing the internal HTTP service directly or behind an Ingress.
Note: The CatalogPostgreSqlConnString value includes {0} as a placeholder for the database name. This will be automatically replaced at runtime by the application.