From d196c55a12111000f70320334186151e72f8cf87 Mon Sep 17 00:00:00 2001 From: C-xC-c <58750933+C-xC-c@users.noreply.github.com> Date: Fri, 13 Dec 2019 23:58:00 +0000 Subject: [PATCH] Update README.org --- README.org | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/README.org b/README.org index f414bc9..0f28310 100644 --- a/README.org +++ b/README.org @@ -24,8 +24,8 @@ declarations. Update your hecking browser. ** Backend *** Prerequisites -- .NET core 3.1 -- Mariadb / mysql +- .NET Core 3.1 +- MariaDB / MySQL *** .NET dependancies - Nito.AsyncEX @@ -33,38 +33,47 @@ declarations. Update your hecking browser. - MySql.Data - Microsoft.AspNetCore.Mvc.NewtonsoftJson - Microsoft.AspNetCore.StaticFiles +- Microsoft.AspNetCore.Razor - Microsoft.EntityFrameworkCore.SqlServer - Microsoft.EntityFrameworkCore.Tools -- Microsoft.VisualStudio.Web.CodeGeneration.Design - Magick.NET-Q8-AnyCPU *** Setup -1. Install .NET +1. Install .NET Core 2. Clone and build the BantFlags solution. 3. Create the database using [[https://github.com/C-xC-c/BantFlags/blob/master/Environment/database.sql][database.sql]]. - + *Change the password*. + + *Change the password*. 4. configure =BantFlags/appsettings.example.json= with your connection string and webroot (where you'll serve the flags from *without a trailing /*) and rename it to =appsettings.json= - + The location of the BantFlags application and the served content - are not necessarly the same. If you leave it empty, or provide a - nonexistant path the application will look for the =wwwroot= - folder inside the working directory. - + For example, you may place =BantFlags.dll= and - =appsettings.json= in =/etc/bantflags/= and point =webroot= at - =/var/www/html= and bantflags will server static content from - that directory, or leave =webroot= empty and bantflags will look - for static content in =/etc/bantflags/wwwroot= -5. Add flags to the backend either by querying the database directly + + The location of the BantFlags application and the served content + are not necessarly the same. If you leave it empty, or provide a + nonexistant path the application will look for the =wwwroot= + folder inside the working directory. + + For example, you may place =BantFlags.dll= and + =appsettings.json= in =/etc/bantflags/= and point =webroot= at + =/var/www/html= and bantflags will server static content from + that directory, or leave =webroot= empty and bantflags will look + for static content in =/etc/bantflags/wwwroot= +5. Create a folder called =keys= in the directory you will be hosting + bantflags from. + + E.G. =/etc/bantflags/keys/= + + ASP.NET Core uses some cryptic bullshit anti forgery token when + processing HTML forms, and it's unable to persistantly store the + decryption keys in memory on GNU + Linux. This directory will + store said keys when you or users upload flags to /upload. The + path is hardcoded to =AppDomain.CurrentDomain.BaseDirectory=, + I.E. wherever the program is. +6. Add flags to the backend either by querying the database directly and placing images *with the same name* in ={webroot}/flags/= or by using /upload. -6. Configure your webserver of choice to forward requests to kestral - + [[https://github.com/C-xC-c/BantFlags/blob/master/Environment/nginx.conf][Example nginx config.]] -7. Run with =dotnet BantFlags.dll= or create a service to run it as a +7. Configure your webserver of choice to forward requests to kestral + + [[https://github.com/C-xC-c/BantFlags/blob/master/Environment/nginx.conf][Example nginx config.]] +8. Run with =dotnet BantFlags.dll= or create a service to run it as a daemon. - + [[https://github.com/C-xC-c/BantFlags/blob/master/Environment/bantflags.service][Example systemd service.]] -8. ??? -9. profit. + + [[https://github.com/C-xC-c/BantFlags/blob/master/Environment/bantflags.service][Example systemd service.]] +9. ??? +10. profit. *** Database Tables look like this: @@ -100,4 +109,4 @@ The API is 1:1 compatable with all previous versions of bantflags, but also encodes a new =version= variable when getting flags which allows for breaking changes in the script while the backend only sends data it knows is parsable. See [[https://github.com/C-xC-c/BantFlags/tree/master/Docs/][Docs/{endpoint}]] -for version compatibility. \ No newline at end of file +for version compatibility.