mirror of
https://github.com/bitwarden/server.git
synced 2024-11-24 12:35:25 +01:00
Feature/self hosted development (#1921)
* Add self-host option to migration runner * Add Self-host launch options * Add self-hosted settings override Let's a single secrets/env config file control both cloud and self-hosted settings by allowing overrides to cloud settings with self-hosted * Allow dev-signed licenses on dev self-hosted * Allow setting bitwarden cloud api url Useful for testing api integration between installations and cloud * Remove testing echoes * Remove run config property groups * Use `getopts` for options * Pass in full environment
This commit is contained in:
parent
dea1427ba2
commit
4814cef245
347
.vscode/launch.json
vendored
Normal file
347
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"compounds": [
|
||||||
|
{
|
||||||
|
"name": "Min Server",
|
||||||
|
"configurations": [
|
||||||
|
"Identity",
|
||||||
|
"API"
|
||||||
|
],
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "AA_compounds",
|
||||||
|
"order": 1
|
||||||
|
},
|
||||||
|
"stopAll": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Admin, API, Identity",
|
||||||
|
"configurations": [
|
||||||
|
"Admin",
|
||||||
|
"API",
|
||||||
|
"Identity"
|
||||||
|
],
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "AA_compounds",
|
||||||
|
"order": 3
|
||||||
|
},
|
||||||
|
"stopAll": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Full Server",
|
||||||
|
"configurations": [
|
||||||
|
"Admin",
|
||||||
|
"API",
|
||||||
|
"EventsProcessor",
|
||||||
|
"Identity",
|
||||||
|
"Sso",
|
||||||
|
"Icons",
|
||||||
|
],
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "AA_compounds",
|
||||||
|
"order": 4
|
||||||
|
},
|
||||||
|
"stopAll": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Self Host: Bit",
|
||||||
|
"configurations": [
|
||||||
|
"Admin-SelfHost",
|
||||||
|
"API-SelfHost",
|
||||||
|
"EventsProcessor-SelfHost",
|
||||||
|
"Identity-SelfHost",
|
||||||
|
"Sso-SelfHost",
|
||||||
|
],
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "AA_compounds",
|
||||||
|
"order": 2
|
||||||
|
},
|
||||||
|
"stopAll": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Self Host: OSS",
|
||||||
|
"configurations": [
|
||||||
|
"Admin-SelfHost",
|
||||||
|
"API-SelfHost",
|
||||||
|
"EventsProcessor-SelfHost",
|
||||||
|
"Identity-SelfHost",
|
||||||
|
],
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "AA_compounds",
|
||||||
|
"order": 99
|
||||||
|
},
|
||||||
|
"stopAll": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Identity",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 10
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildIdentity",
|
||||||
|
"program": "${workspaceFolder}/src/Identity/bin/Debug/net5.0/Identity.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Identity",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "API",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 10
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildAPI",
|
||||||
|
"program": "${workspaceFolder}/src/Api/bin/Debug/net5.0/Api.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Api",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Admin",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 20
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildAdmin",
|
||||||
|
"OS-COMMENT4": "If you have changed target frameworks, make sure to update the program path.",
|
||||||
|
"program": "${workspaceFolder}/src/Admin/bin/Debug/net5.0/Admin.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Admin",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"OS-COMMENT5": "Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser",
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sso",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 50
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildSso",
|
||||||
|
"program": "${workspaceFolder}/bitwarden_license/src/Sso/bin/Debug/net5.0/Sso.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/bitwarden_license/src/Sso",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EventsProcessor",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 90
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildEventsProcessor",
|
||||||
|
"program": "${workspaceFolder}/src/EventsProcessor/bin/Debug/net5.0/EventsProcessor.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/EventsProcessor",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Icons",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": false,
|
||||||
|
"group": "cloud",
|
||||||
|
"order": 90
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildIcons",
|
||||||
|
"program": "${workspaceFolder}/src/Icons/bin/Debug/net5.0/Icons.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Icons",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Identity-SelfHost",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": true,
|
||||||
|
"group": "self-host",
|
||||||
|
"order": 999
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildIdentity",
|
||||||
|
"program": "${workspaceFolder}/src/Identity/bin/Debug/net5.0/Identity.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Identity",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:33657",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "API-SelfHost",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": true,
|
||||||
|
"group": "self-host",
|
||||||
|
"order": 999
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildAPI",
|
||||||
|
"program": "${workspaceFolder}/src/Api/bin/Debug/net5.0/Api.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Api",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:4001",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Admin-SelfHost",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": true,
|
||||||
|
"group": "self-host",
|
||||||
|
"order": 999
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildAdmin",
|
||||||
|
"OS-COMMENT4": "If you have changed target frameworks, make sure to update the program path.",
|
||||||
|
"program": "${workspaceFolder}/src/Admin/bin/Debug/net5.0/Admin.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/Admin",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"OS-COMMENT5": "Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser",
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:62912",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sso-SelfHost",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": true,
|
||||||
|
"group": "self-host",
|
||||||
|
"order": 999
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildSso",
|
||||||
|
"program": "${workspaceFolder}/bitwarden_license/src/Sso/bin/Debug/net5.0/Sso.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/bitwarden_license/src/Sso",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:51822",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EventsProcessor-SelfHost",
|
||||||
|
"presentation": {
|
||||||
|
"hidden": true,
|
||||||
|
"group": "self-host",
|
||||||
|
"order": 999
|
||||||
|
},
|
||||||
|
"requireExactSource": true,
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "buildEventsProcessor",
|
||||||
|
"program": "${workspaceFolder}/src/EventsProcessor/bin/Debug/net5.0/EventsProcessor.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}/src/EventsProcessor",
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"env": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "http://localhost:46274",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"sourceFileMap": {
|
||||||
|
"/Views": "${workspaceFolder}/Views"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".NET Core Attach",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "attach",
|
||||||
|
"processId": "${command:pickProcess}"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
125
.vscode/tasks.json
vendored
Normal file
125
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "buildIcons",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/src/Icons/Icons.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildPortal",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/bitwarden_license/src/Portal/Portal.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildSso",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/bitwarden_license/src/Sso/Sso.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildEventsProcessor",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/src/EventsProcessor/EventsProcessor.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildAdmin",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/src/Admin/Admin.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildIdentity",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/src/Identity/Identity.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "buildAPI",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/src/Api/Api.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile",
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "clean",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "dotnet clean",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": false,
|
||||||
|
"panel": "shared",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": false
|
||||||
|
},
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "test",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "dotnet test",
|
||||||
|
"group": {
|
||||||
|
"kind": "test",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": false,
|
||||||
|
"panel": "shared",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": false
|
||||||
|
},
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -22,6 +22,15 @@
|
|||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Sso-SelfHost": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"applicationUrl": "http://localhost:51823",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
<UserSecretsId>bitwarden-Sso</UserSecretsId>
|
<UserSecretsId>bitwarden-Sso</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'Sso' " />
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NewRelic.Agent" Version="8.41.0" />
|
<PackageReference Include="NewRelic.Agent" Version="8.41.0" />
|
||||||
<PackageReference Include="Sustainsys.Saml2.AspNetCore2" Version="2.8.0" />
|
<PackageReference Include="Sustainsys.Saml2.AspNetCore2" Version="2.8.0" />
|
||||||
|
@ -34,7 +34,7 @@ namespace Bit.Sso
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
|
|
||||||
// Stripe Billing
|
// Stripe Billing
|
||||||
StripeConfiguration.ApiKey = globalSettings.Stripe.ApiKey;
|
StripeConfiguration.ApiKey = globalSettings.Stripe.ApiKey;
|
||||||
|
@ -12,6 +12,20 @@ DATABASE="vault_dev"
|
|||||||
USER="SA"
|
USER="SA"
|
||||||
PASSWD=$MSSQL_PASSWORD
|
PASSWD=$MSSQL_PASSWORD
|
||||||
|
|
||||||
|
while getopts "rs" arg; do
|
||||||
|
case $arg in
|
||||||
|
r)
|
||||||
|
echo "Rerunning the last migration"
|
||||||
|
RERUN=1
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
echo "Running for self-host environment"
|
||||||
|
LAST_MIGRATION_FILE="/mnt/data/last_self_host_migration"
|
||||||
|
DATABASE="vault_dev_self_host"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
if [ ! -f "$LAST_MIGRATION_FILE" ]; then
|
if [ ! -f "$LAST_MIGRATION_FILE" ]; then
|
||||||
echo "$LAST_MIGRATION_FILE not found!"
|
echo "$LAST_MIGRATION_FILE not found!"
|
||||||
echo "This will run all migrations which might cause unexpected behaviour if the database is not empty."
|
echo "This will run all migrations which might cause unexpected behaviour if the database is not empty."
|
||||||
@ -30,17 +44,6 @@ fi
|
|||||||
[ -z "$LAST_MIGRATION" ]
|
[ -z "$LAST_MIGRATION" ]
|
||||||
PERFORM_MIGRATION=$?
|
PERFORM_MIGRATION=$?
|
||||||
|
|
||||||
while getopts "r" arg; do
|
|
||||||
case $arg in
|
|
||||||
r)
|
|
||||||
RERUN=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -n "$RERUN" ]; then
|
|
||||||
echo "Rerunning the last migration"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create database if it does not already exist
|
# Create database if it does not already exist
|
||||||
QUERY="IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = '$DATABASE')
|
QUERY="IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = '$DATABASE')
|
||||||
|
@ -22,6 +22,15 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
"applicationUrl": "http://localhost:62911/"
|
"applicationUrl": "http://localhost:62911/"
|
||||||
|
},
|
||||||
|
"Admin-SelfHost": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"applicationUrl": "http://localhost:62912/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace Bit.Admin
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
services.Configure<AdminSettings>(Configuration.GetSection("AdminSettings"));
|
services.Configure<AdminSettings>(Configuration.GetSection("AdminSettings"));
|
||||||
|
|
||||||
// Data Protection
|
// Data Protection
|
||||||
|
@ -22,6 +22,15 @@
|
|||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Api-SelfHost": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"applicationUrl": "http://localhost:4000",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ namespace Bit.Api
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
if (!globalSettings.SelfHosted)
|
if (!globalSettings.SelfHosted)
|
||||||
{
|
{
|
||||||
services.Configure<IpRateLimitOptions>(Configuration.GetSection("IpRateLimitOptions"));
|
services.Configure<IpRateLimitOptions>(Configuration.GetSection("IpRateLimitOptions"));
|
||||||
|
@ -18,13 +18,15 @@ namespace Bit.Billing
|
|||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
public Startup(IConfiguration configuration)
|
public Startup(IWebHostEnvironment env, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
|
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
|
||||||
Configuration = configuration;
|
Configuration = configuration;
|
||||||
|
Environment = env;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IConfiguration Configuration { get; }
|
public IConfiguration Configuration { get; }
|
||||||
|
public IWebHostEnvironment Environment { get; set; }
|
||||||
|
|
||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
@ -32,7 +34,7 @@ namespace Bit.Billing
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
services.Configure<BillingSettings>(Configuration.GetSection("BillingSettings"));
|
services.Configure<BillingSettings>(Configuration.GetSection("BillingSettings"));
|
||||||
|
|
||||||
// Stripe Billing
|
// Stripe Billing
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="licensing.cer" />
|
<EmbeddedResource Include="licensing.cer" />
|
||||||
|
<EmbeddedResource Include="licensing_dev.cer" />
|
||||||
<EmbeddedResource Include="MailTemplates\Handlebars\**\*.hbs" />
|
<EmbeddedResource Include="MailTemplates\Handlebars\**\*.hbs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -45,12 +45,12 @@ namespace Bit.Core.Services
|
|||||||
_logger = logger;
|
_logger = logger;
|
||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
|
|
||||||
var certThumbprint = environment.IsDevelopment() && !_globalSettings.SelfHosted ?
|
var certThumbprint = environment.IsDevelopment() ?
|
||||||
"207E64A231E8AA32AAF68A61037C075EBEBD553F" :
|
"207E64A231E8AA32AAF68A61037C075EBEBD553F" :
|
||||||
"B34876439FCDA2846505B2EFBBA6C4A951313EBE";
|
"B34876439FCDA2846505B2EFBBA6C4A951313EBE";
|
||||||
if (_globalSettings.SelfHosted)
|
if (_globalSettings.SelfHosted)
|
||||||
{
|
{
|
||||||
_certificate = CoreHelpers.GetEmbeddedCertificateAsync("licensing.cer", null)
|
_certificate = CoreHelpers.GetEmbeddedCertificateAsync(environment.IsDevelopment() ? "licensing_dev.cer" : "licensing.cer", null)
|
||||||
.GetAwaiter().GetResult();
|
.GetAwaiter().GetResult();
|
||||||
}
|
}
|
||||||
else if (CoreHelpers.SettingHasValue(_globalSettings.Storage?.ConnectionString) &&
|
else if (CoreHelpers.SettingHasValue(_globalSettings.Storage?.ConnectionString) &&
|
||||||
|
@ -424,6 +424,7 @@ namespace Bit.Core.Settings
|
|||||||
public class InstallationSettings
|
public class InstallationSettings
|
||||||
{
|
{
|
||||||
private string _identityUri;
|
private string _identityUri;
|
||||||
|
private string _apiUri;
|
||||||
|
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
public string Key { get; set; }
|
public string Key { get; set; }
|
||||||
@ -432,6 +433,10 @@ namespace Bit.Core.Settings
|
|||||||
get => string.IsNullOrWhiteSpace(_identityUri) ? "https://identity.bitwarden.com" : _identityUri;
|
get => string.IsNullOrWhiteSpace(_identityUri) ? "https://identity.bitwarden.com" : _identityUri;
|
||||||
set => _identityUri = value;
|
set => _identityUri = value;
|
||||||
}
|
}
|
||||||
|
public string ApiUri
|
||||||
|
{
|
||||||
|
get => string.IsNullOrWhiteSpace(_apiUri) ? "https://api.biwarden.com" : _apiUri;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AmazonSettings
|
public class AmazonSettings
|
||||||
|
BIN
src/Core/licensing_dev.cer
Normal file
BIN
src/Core/licensing_dev.cer
Normal file
Binary file not shown.
@ -22,6 +22,15 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
"applicationUrl": "http://localhost:46273/"
|
"applicationUrl": "http://localhost:46273/"
|
||||||
|
},
|
||||||
|
"Events-SelfHost": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
},
|
||||||
|
"applicationUrl": "http://localhost:46274/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ namespace Bit.Events
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
|
|
||||||
// Repositories
|
// Repositories
|
||||||
services.AddSqlServerRepositories(globalSettings);
|
services.AddSqlServerRepositories(globalSettings);
|
||||||
|
@ -30,7 +30,7 @@ namespace Bit.EventsProcessor
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
services.AddGlobalSettingsServices(Configuration);
|
services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
|
|
||||||
// Hosted Services
|
// Hosted Services
|
||||||
services.AddHostedService<AzureQueueHostedService>();
|
services.AddHostedService<AzureQueueHostedService>();
|
||||||
|
@ -16,13 +16,15 @@ namespace Bit.Icons
|
|||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
public Startup(IConfiguration configuration)
|
public Startup(IWebHostEnvironment env, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
|
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
|
||||||
Configuration = configuration;
|
Configuration = configuration;
|
||||||
|
Environment = env;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IConfiguration Configuration { get; }
|
public IConfiguration Configuration { get; }
|
||||||
|
public IWebHostEnvironment Environment { get; }
|
||||||
|
|
||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
@ -30,7 +32,7 @@ namespace Bit.Icons
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
var iconsSettings = new IconsSettings();
|
var iconsSettings = new IconsSettings();
|
||||||
ConfigurationBinder.Bind(Configuration.GetSection("IconsSettings"), iconsSettings);
|
ConfigurationBinder.Bind(Configuration.GetSection("IconsSettings"), iconsSettings);
|
||||||
services.AddSingleton(s => iconsSettings);
|
services.AddSingleton(s => iconsSettings);
|
||||||
|
@ -15,6 +15,15 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Identity-SelfHost": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"applicationUrl": "http://localhost:33657",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"developSelfHosted": "true"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Identity": {
|
"Identity": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": false,
|
"launchBrowser": false,
|
||||||
@ -24,4 +33,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace Bit.Identity
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
if (!globalSettings.SelfHosted)
|
if (!globalSettings.SelfHosted)
|
||||||
{
|
{
|
||||||
services.Configure<IpRateLimitOptions>(Configuration.GetSection("IpRateLimitOptions"));
|
services.Configure<IpRateLimitOptions>(Configuration.GetSection("IpRateLimitOptions"));
|
||||||
|
@ -32,7 +32,7 @@ namespace Bit.Notifications
|
|||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
var globalSettings = services.AddGlobalSettingsServices(Configuration);
|
var globalSettings = services.AddGlobalSettingsServices(Configuration, Environment);
|
||||||
|
|
||||||
// Identity
|
// Identity
|
||||||
services.AddIdentityAuthenticationServices(globalSettings, Environment, config =>
|
services.AddIdentityAuthenticationServices(globalSettings, Environment, config =>
|
||||||
|
@ -462,10 +462,17 @@ namespace Bit.SharedWeb.Utilities
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static GlobalSettings AddGlobalSettingsServices(this IServiceCollection services,
|
public static GlobalSettings AddGlobalSettingsServices(this IServiceCollection services,
|
||||||
IConfiguration configuration)
|
IConfiguration configuration, IWebHostEnvironment environment)
|
||||||
{
|
{
|
||||||
var globalSettings = new GlobalSettings();
|
var globalSettings = new GlobalSettings();
|
||||||
ConfigurationBinder.Bind(configuration.GetSection("GlobalSettings"), globalSettings);
|
ConfigurationBinder.Bind(configuration.GetSection("GlobalSettings"), globalSettings);
|
||||||
|
|
||||||
|
if (environment.IsDevelopment() && configuration.GetValue<bool>("developSelfHosted"))
|
||||||
|
{
|
||||||
|
// Override settings with selfHostedOverride settings
|
||||||
|
ConfigurationBinder.Bind(configuration.GetSection("Dev:SelfHostOverride:GlobalSettings"), globalSettings);
|
||||||
|
}
|
||||||
|
|
||||||
services.AddSingleton(s => globalSettings);
|
services.AddSingleton(s => globalSettings);
|
||||||
services.AddSingleton<IGlobalSettings, GlobalSettings>(s => globalSettings);
|
services.AddSingleton<IGlobalSettings, GlobalSettings>(s => globalSettings);
|
||||||
return globalSettings;
|
return globalSettings;
|
||||||
|
Loading…
Reference in New Issue
Block a user