1
0
mirror of https://github.com/bitwarden/server.git synced 2025-01-28 22:51:22 +01:00
The core infrastructure backend (API, database, Docker, etc).
Go to file
Shane Melton 7d40b38352
[PS-93] Distributed Ip rate limiting (#2060)
* Upgrade AspNetCoreRateLimiter and enable redis distributed cache for rate limiting.

- Upgrades AspNetCoreRateLimiter to 4.0.2, which required updating NewtonSoft.Json to 13.0.1.
- Replaces Microsoft.Extensions.Caching.Redis with Microsoft.Extensions.Caching.StackExchangeRedis as the original was deprecated and conflicted with the latest AspNetCoreRateLimiter
- Adds startup task to Program.cs for Api/Identity projects to support AspNetCoreRateLimiters breaking changes for seeding its stores.
- Adds a Redis connection string option to GlobalSettings

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Cleanup Redis distributed cache registration

- Add new AddDistributedCache service collection extension to add either a Memory or Redis distributed cache.
- Remove distributed cache registration from Identity service collection extension.
- Add IpRateLimitSeedStartupService.cs to run at application startup to seed the Ip rate limiting policies.

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Add caching configuration to SSO Startup.cs

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Add ProjectName as an instance name for Redis options

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Use distributed cache in CustomIpRateLimitMiddleware.cs

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Undo changes to Program.cs and launchSettings.json

* Move new service collection extensions to SharedWeb

* Upgrade Caching.StackExchangeRedis package to v6

* Cleanup and fix leftover merge conflicts

* Remove use of Newtonsoft.Json in distributed cache extensions

* Cleanup more formatting

* Fix formatting

* Fix startup issue caused by merge and fix integration test

Signed-off-by: Shane Melton <smelton@bitwarden.com>

* Linting fix

Signed-off-by: Shane Melton <smelton@bitwarden.com>
2022-07-19 11:58:32 -07:00
.config [PS-40] Upgrade to .NET 6 (#2056) 2022-06-24 10:39:34 -04:00
.github Add SCIM image build and publish (#2125) 2022-07-19 07:35:26 -06:00
.vscode Fix VSCode Launch file (#2077) 2022-06-26 10:03:33 -04:00
bitwarden_license [PS-93] Distributed Ip rate limiting (#2060) 2022-07-19 11:58:32 -07:00
dev [EC-261] SCIM (#2105) 2022-07-14 15:58:48 -04:00
scripts New Self Host Stub Scripts (#1893) 2022-03-01 16:19:09 -05:00
src [PS-93] Distributed Ip rate limiting (#2060) 2022-07-19 11:58:32 -07:00
test [PS-93] Distributed Ip rate limiting (#2060) 2022-07-19 11:58:32 -07:00
util [PS-93] Distributed Ip rate limiting (#2060) 2022-07-19 11:58:32 -07:00
.editorconfig Turn On ImplicitUsings (#2079) 2022-06-29 19:46:41 -04:00
.git-blame-ignore-revs Add .git-blame-ignore-revs (#1771) 2021-12-16 15:54:28 +01:00
.gitattributes Run dotnet format (#1764) 2021-12-16 15:35:09 +01:00
.gitignore revamping the build scripts (#1620) 2021-10-08 09:53:56 -07:00
bitwarden-server.sln [EC-261] SCIM (#2105) 2022-07-14 15:58:48 -04:00
CONTRIBUTING.md Update README and CONTRIBUTING to point to contributing.bitwarden.com (#2028) 2022-06-09 12:00:58 +02:00
Directory.Build.props Bump version to 2022.6.2 (#2111) 2022-07-11 14:10:03 -07:00
LICENSE_AGPL.txt split license file out to support bitwarden licensed code (#912) 2020-09-04 13:36:22 -04:00
LICENSE_BITWARDEN.txt Update LICENSE_BITWARDEN.txt 2021-03-26 14:08:09 -04:00
LICENSE_FAQ.md Remove Business Portal (#1614) 2021-10-06 10:39:13 +02:00
LICENSE.txt Update LICENSE.txt 2021-03-26 14:09:28 -04:00
NuGet.Config initial commit of source 2015-12-08 22:57:38 -05:00
README.md Update README and CONTRIBUTING to point to contributing.bitwarden.com (#2028) 2022-06-09 12:00:58 +02:00
SECURITY.md Update SECURITY.md (#1913) 2022-03-15 15:54:08 -04:00
TRADEMARK_GUIDELINES.md Update TRADEMARK_GUIDELINES.md 2021-03-26 14:04:27 -04:00

Bitwarden

Github Workflow build on master DockerHub gitter chat


The Bitwarden Server project contains the APIs, database, and other core infrastructure items needed for the "backend" of all bitwarden client applications.

The server project is written in C# using .NET Core with ASP.NET Core. The database is written in T-SQL/SQL Server. The codebase can be developed, built, run, and deployed cross-platform on Windows, macOS, and Linux distributions.

Developer Documentation

Please refer to the Server Setup Guide in the Contributing Documentation for build instructions, recommended tooling, code style tips, and lots of other great information to get you started.

Deploy

docker

You can deploy Bitwarden using Docker containers on Windows, macOS, and Linux distributions. Use the provided PowerShell and Bash scripts to get started quickly. Find all of the Bitwarden images on Docker Hub.

Full documentation for deploying Bitwarden with Docker can be found in our help center at: https://help.bitwarden.com/article/install-on-premise/

Requirements

These dependencies are free to use.

Linux & macOS

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/server/master/scripts/bitwarden.sh \
    && chmod +x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start

Windows

Invoke-RestMethod -OutFile bitwarden.ps1 `
    -Uri https://raw.githubusercontent.com/bitwarden/server/master/scripts/bitwarden.ps1
.\bitwarden.ps1 -install
.\bitwarden.ps1 -start

We're Hiring!

Interested in contributing in a big way? Consider joining our team! We're hiring for many positions. Please take a look at our Careers page to see what opportunities are currently open as well as what it's like to work at Bitwarden.

Contribute

Code contributions are welcome! Please commit any pull requests against the master branch. Learn more about how to contribute by reading the Contributing Guidelines. Check out the Contributing Documentation for how to get started with your first contribution.

Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md file. We also run a program on HackerOne.

No grant of any rights in the trademarks, service marks, or logos of Bitwarden is made (except as may be necessary to comply with the notice requirements as applicable), and use of any Bitwarden trademarks must comply with Bitwarden Trademark Guidelines.

Dotnet-format

We recently migrated to using dotnet-format as code formatter. All previous branches will need to updated to avoid large merge conflicts using the following steps:

  1. Check out your local Branch
  2. Run git merge 61dc65aa598b1f492d2f0222bb7bf0dd15d116f5
  3. Resolve any merge conflicts, commit.
  4. Run dotnet tool run dotnet-format
  5. Commit
  6. Run git merge -Xours 23b0a1f9df25058ab29785ecad9a233113c10889
  7. Push