From f0551a48015b8e59bda10ea63c7e7076b41a894b Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 7 Aug 2022 17:05:49 -0400 Subject: [PATCH] Updates Added packages and updated readme --- Icarus.csproj | 2 ++ README.md | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/Icarus.csproj b/Icarus.csproj index bfbfd41..7c8b877 100644 --- a/Icarus.csproj +++ b/Icarus.csproj @@ -11,6 +11,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/README.md b/README.md index e205100..a49349e 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,22 @@ One can interface with Icarus the music server either by: * C# [.NET](https://dotnet.microsoft.com/) 6 * [MySql](https://www.nuget.org/packages/MySql.Data/) +* OpenSSL +* BCrypt.Net-Next +* DotNetZip +* ID3 +* JWT +* Microsoft.AspNetCore.Authentication.JwtBearer +* Microsoft.AspNetCore.Mvc.NewtonsoftJson +* Microsoft.EntityFrameworkCore +* Microsoft.EntityFrameworkCore.Tools +* MySql.EntityFrameworkCore * [Newtonsoft.Json](https://www.newtonsoft.com/json) +* NLog.Web.AspNetCpre +* Portable.BouncyCastle +* RestSharp +* SevenZip +* System.IdentityModel.Tokens.Jwt * [TagLib#](https://github.com/mono/taglib-sharp) ![image](https://user-images.githubusercontent.com/14333136/56252069-28532d00-6084-11e9-896d-1a3c378014ef.png) @@ -24,9 +39,10 @@ One can interface with Icarus the music server either by: ## Getting started There are several things that need to be completed to properly setup and secure the API. 1. Auth0 API configuration -2. API filesystem paths -3. Database connection string -4. Migrations +2. Creating RSA keys +3. API filesystem paths +4. Database connection string +5. Migrations ### Auth0 API configuration @@ -80,6 +96,25 @@ Enter the information in the corresponding appsettings json file }, ``` +### Creating RSA keys +1. Create private key +``` +openssl genrsa -out private.pem 2048 +``` +2. Create public key +``` +openssl rsa -in private -pubout -out public.pem +``` + +Configure the key paths in the config files + +```Json +"RSAKeys": { + "PrivateKeyPath": "", + "PublicKeyPath": "" +} +``` + ### API filesystem paths For the purposes of properly uploading, downloading, updating, deleting, and streaming songs the API filesystem paths must be configured. What is meant by this is that the `RootMusicPath` directory where all music will be stored must exist as well as the `ArchivePath` and `TemporaryMusicPath` paths. An example on a Linux system: