Vinyl Vinyl_ Startup configuration Introduction This page describes Vinyl's startup configuration parameters and methods. Each section is the top-level schema for the JSON form (appsettings.json
) configuration method.
When Vinyl starts, it gets its configuration values from any of the following sources, in order of precedence:
System environment variables. An ASP.NET Core appsettings.json
JSON file. (Vinyl 3.0 and earlier) A connection.xml
XML file with a <ConnectionInfo>
element. System environment variables are the JSON schemas, sub-schemas (if any), and keys separated by two underscore characters. There is no default appsettings.json
file. You can create one in the installation directory using the samples in C:\inetpub\wwwroot\Vinyl\
(Windows) or the samples
sub-directory (Linux), many of which are reproduced on this page.
As an example, the following configuration methods provide equivalent values:
Environment variables ConnectionInfo__DatabaseType = SQLServer
ConnectionInfo__HostName = localhost
ConnectionInfo__DatabaseName = Vinyl
ConnectionInfo__UserName = vinyl
ConnectionInfo__Password = P@5$w0rD
appsettings.json
file{
"ConnectionInfo" : {
"DatabaseType" : "SQLServer" ,
"HostName" : "localhost" ,
"DatabaseName" : "Vinyl" ,
"UserName" : "vinyl" ,
"Password" : "P@5$w0rD"
}
}
connection.xml
file<ConnectionInfo DatabaseType= "MySQL" HostName= "localhost" DatabaseName= "Vinyl" UserName= "vinyl" Password= "P@5$w0rD" />
BackgroundService
Examples JSON {
"BackgroundService" : {
"DisableScheduler" : true
}
}
Environment variable BackgroundService__DisableScheduler = true
ConnectionInfo
Examples {
"ConnectionInfo" : {
"DatabaseType" : "SQLServer" ,
"HostName" : "localhost" ,
"DatabaseName" : "Vinyl" ,
"UserName" : "Vinyl" ,
"Password" : "password" ,
"Advanced" : "MultiSubnetFailover=true;TrustServerCertificate=true;"
}
}
DataEncryption
The DataEncryption
section configures Data Encryption Key (DEK) storage and encryption.
Examples {
"DataEncryption" : {
"KeyEncryption" : "Certificate" ,
"CertificateThumbprint" : "a909502dd82ae41433e6f83886b00d4277a32a7b" ,
"Certificate" : "{base64-pfx-data}" ,
"CertificatePassword" : "your-certificate-password"
}
}
{
"DataEncryption" : {
"KeyEncryption" : "Kms" ,
"KmsKeyId" : "{kms-key-arn}"
}
}
{
"DataEncryption" : {
"KeyEncryption" : "None"
}
}
{
"DataEncryption" : {
"KeyEncryption" : "Null"
}
}
{
"DataEncryption" : {
"KeyStorage" : "Database"
}
}
{
"DataEncryption" : {
"KeyStorage" : "FileSystem" ,
"Directory" : "C:\\Path\\To\\Keys"
}
}
{
"DataEncryption" : {
"KeyStorage" : "ParameterStore" ,
"ParameterNamePrefix" : "/production"
}
}
{
"DataEncryption" : {
"KeyStorage" : "S3" ,
"S3BucketEndpoint" : "https://{bucket}.s3{-aws-region}.amazonaws.com" ,
"S3KeyPrefix" : "production"
}
}
Kestrel
The Kestrel
section configures the Kestrel web server.
License
The License
section specifies the Vinyl license key.
Examples {
"License" : {
"LicenseKey" : "TWF1cmlzIGFjIGZlbGlzIHZlbCB2ZWxpdCB0cmlzdGlxdWUgaW1wZXJkaWV0LiAgTnVsbGFtIGV1IGFudGUgdmVsIGVzdCBjb252YWxsaXMgZGlnbmlzc2ltLiAgRnVzY2Ugc3VzY2lwaXQsIHdpc2kgbmVjIGZhY2lsaXNpcyBmYWNpbGlzaXMsIGVzdCBkdWkgZmVybWVudHVtIGxlbywgcXVpcyB0ZW1wb3IgbGlndWxhIGVyYXQgcXVpcyBvZGlvLiAgTnVuYyBwb3J0YSB2dWxwdXRhdGUgdGVsbHVzLiAgTnVuYyBydXRydW0gdHVycGlzIHNlZCBwZWRlLiAgU2VkIGJpYmVuZHVtLiAgQWxpcXVhbSBwb3N1ZXJlLiAgTnVuYyBhbGlxdWV0LCBhdWd1ZSBuZWMgYWRpcGlzY2luZyBpbnRlcmR1bSwgbGFjdXMgdGVsbHVzIG1hbGVzdWFkYSBtYXNzYSwgcXVpcyB2YXJpdXMgbWkgcHVydXMgbm9uIG9kaW8uICBQZWxsZW50ZXNxdWUgY29uZGltZW50dW0sIG1hZ25hIHV0IHN1c2NpcGl0IGhlbmRyZXJpdCwgaXBzdW0gYXVndWUgb3JuYXJlIG51bGxhLCBub24gbHVjdHVzIGRpYW0gbmVxdWUgc2l0IGFtZXQgdXJuYS4gIEN1cmFiaXR1ciB2dWxwdXRhdGUgdmVzdGlidWx1bSBsb3JlbS4gIEZ1c2NlIHNhZ2l0dGlzLCBsaWJlcm8gbm9uIG1vbGVzdGllIG1vbGxpcywgbWFnbmEgb3JjaSB1bHRyaWNlcyBkb2xvciwgYXQgdnVscHV0YXRlIG5lcXVlIG51bGxhIGxhY2luaWEgZXJvcy4gIFNlZCBpZCBsaWd1bGEgcXVpcyBlc3QgY29udmFsbGlzIHRlbXBvci4gIEN1cmFiaXR1ciBsYWNpbmlhIHB1bHZpbmFyIG5pYmguICBOYW0gYSBzYXBpZW4uCg=="
}
}
PostgreSQL
ReverseProxy
The ReverseProxy
section configures a reverse proxy.
Examples {
"ReverseProxy" : {
"ForwardedClientIpHeader" : "X-Forwarded-For" ,
"ForwardedSchemeHeader" : "X-Forwarded-Proto" ,
"ForwardedHostHeader" : "X-Forwarded-Host"
}
}
{
"ReverseProxy" : {
"ForwardedClientIpHeader" : "X-Forwarded-For" ,
"ForwardedSchemeHeader" : "X-Forwarded-Proto" ,
"ForwardedPortHeader" : "X-Forwarded-Port"
}
}
Security
The Security
section configures Vinyl user accounts and security providers.
Examples {
"Security" : {
"Administrator" : {
"Password" : "s3cr3t" ,
"ChangePasswordOnLogin" : false
},
"LocalAuthentication" : {
"ShowOnLoginForm" : false
},
"Provider" : "Tm90aGluZyBjYW4gY29tZSBvZiBub3RoaW5nLCBzcGVhayBhZ2Fpbi4="
}
}
Scripting
The Scripting
section configures Vinyl's C# scripting SDK.
Examples {
"Scripting" : {
"Enabled" : false
}
}
SharedState
The SharedState
section configures the shared-state service which supports multi-server deployments.
Example {
"SharedState" : {
"Provider" : "Redis" ,
"RedisConnectionString" : "localhost:6379"
}
}
SignalR
The SignalR
section configures client-server communications.
Examples {
"SignalR" : {
"Transports" : "WebSockets,LongPolling" ,
"LongPollingTimeout" : "00:00:30"
}
}
Site
The Site
section configures the Vinyl website address and known aliases.
Examples {
"Site" : {
"Url" : "https://example.com/Vinyl" ,
"Default" : true ,
"Redirect" : true ,
"RedirectIfHeaderExists" : "X-Forwarded-For" ,
"Aliases" : [
{
"Url" : "https://vinyl.example.com"
}
]
}
}
Sku
Tls
The Tls
section configures TLS protocol support.
Examples {
"Tls" : {
"SecurityProtocol" : "Tls,Tls11,Tls12"
}
}
UrlRewrite
The UrlRewrite
section configures URL rewriting support.
Examples {
"UrlRewrite" : {
"OriginalUrlHeader" : "X-Original-URL"
}
}