diff --git a/README.md b/README.md
index 0d82992..c5eedc5 100644
--- a/README.md
+++ b/README.md
@@ -4,4 +4,122 @@ This is a server for Taiko no Tatsujin Nijiiro ver 08.18
## Setup
-Todo
\ No newline at end of file
+### Prerequisite
+
+- A working game, with dongle and card reader emulation. You can use [TAL](https://github.com/BroGamer4256/TaikoArcadeLoader) for these if you haven't.
+
+### Server setup
+
+1. Download the server from release page, extract anywhere
+
+2. Modify hosts, add the following entries:
+
+ ```
+ server.ip tenporouter.loc
+ server.ip naominet.jp
+ server.ip v402-front.mucha-prd.nbgi-amnet.jp
+ server.ip vsapi.taiko-p.jp
+ ```
+
+ where `server.ip` is your computers ip (or the server's ip)
+
+3. Setup Apache as reverse proxy. Notice the following assumes a windows install, the server also works on Linux, but the guide only covers windows.
+
+ 1. Download [Apache](https://www.apachelounge.com/download/), extract anywhere
+
+ 2. Modify conf/httpd.conf:
+
+ ```htaccess
+ # example: c:/Apache24
+ Define SRVROOT "full:/path/to/Apache/folder"
+
+ # In loadmodule section, find the following lines and uncomment (remove the # at the beginning), they are by default commented out
+ LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+ LoadModule ssl_module modules/mod_ssl.so
+ LoadModule headers_module modules/mod_headers.so
+
+ # Scroll down to bottom, find this line and uncomment
+ Include conf/extra/httpd-vhosts.conf
+ ```
+
+ 3. Modify conf/extra/httpd-vhosts.conf, add the following
+
+ ```htaccess
+
+ ProxyPreserveHost On
+ ProxyPass / http://127.0.0.1:5000/
+ ProxyPassReverse / http://127.0.0.1:5000/
+ ServerName naominet.jp
+ RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
+
+
+ Listen 10122
+
+ Listen 54430
+ Listen 54431
+
+
+ ProxyPreserveHost On
+ ProxyPass / http://127.0.0.1:5000/
+ ProxyPassReverse / http://127.0.0.1:5000/
+ SSLEngine on
+ SSLProtocol all -SSLv3
+ SSLCertificateFile certs/localhost.crt
+ SSLCertificateKeyFile certs/localhost.key
+ ServerName vsapi.taiko-p.jp
+ RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
+
+ ```
+
+ 4. Modify conf/openssl.cnf, change the start of file to
+
+ ```
+ #
+ # OpenSSL example configuration file.
+ # This is mostly being used for generation of certificate requests.
+ #
+
+ # Note that you can include other files from the main configuration
+ # file using the .include directive.
+ #.include filename
+
+ # This definition stops the following lines choking if HOME isn't
+ # defined.
+ HOME = .
+ openssl_conf = default_conf
+ # Extra OBJECT IDENTIFIER info:
+ #oid_file = $ENV::HOME/.oid
+ oid_section = new_oids
+
+ [default_conf]
+ ssl_conf = ssl_sect
+
+ [ssl_sect]
+ system_default = system_default_sect
+
+ [system_default_sect]
+ CipherString = DEFAULT@SECLEVEL=1
+
+ # To use this configuration file with the "-extfile" option of the
+ # "openssl x509" utility, name here the section containing the
+ # X.509v3 extensions to use:
+ # extensions =
+ # (Alternatively, use a configuration file that has only
+ # X.509v3 extensions in its main [= default] section.)
+ ```
+
+ 5. Copy the cert folder from server release to Apache root folder, then click on the localhost.crt file and import it to trusted root store.
+
+ If everything is correct, run bin/httpd.exe, a command prompt will open (and stay open, if it shut down, probably something is not setup correctly)
+
+4. Now run the server, if everything is setup correctly, visit http://localhost:5000, you should be able to see the web ui up and running without errors.
+
+5. Go to game folder, copy the config files (AMConfig.ini and WritableConfig.ini) in the config folder from server release to AMCUS folder and replace the original ones.
+
+6. Open command prompt as admin, navigate to game root folder (where init.ps1 is). Run `regsvr32 .\AMCUS\iauthdll.dll`. It should prompt about success.
+
+7. Run AMCUS/AMAuthd.exe, then run AMCUS/AMUpdater.exe. If the updater run and exits without issue, you are ready to run the game and connect to server.
+
+8. Run the game, it should now connect to the server.
+
diff --git a/TaikoLocalServer/Program.cs b/TaikoLocalServer/Program.cs
index 03eae3f..a0cb9bc 100644
--- a/TaikoLocalServer/Program.cs
+++ b/TaikoLocalServer/Program.cs
@@ -39,9 +39,9 @@ builder.Services.AddHttpLogging(options =>
builder.Services.AddMemoryCache();
builder.Services.AddCors(options =>
{
- options.AddPolicy("DevCorsPolicy", builder =>
+ options.AddPolicy("DevCorsPolicy", policy =>
{
- builder
+ policy
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
@@ -64,6 +64,7 @@ app.UseForwardedHeaders(new ForwardedHeadersOptions
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
+app.UseCors("DevCorsPolicy");
// For blazor hosting
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
@@ -73,7 +74,6 @@ app.UseRouting();
app.UseHttpLogging();
app.MapControllers();
app.MapFallbackToFile("index.html");
-app.UseCors("DevCorsPolicy");
app.UseWhen(context => context.Request.Path.StartsWithSegments("/sys/servlet/PowerOn", StringComparison.InvariantCulture),
applicationBuilder => applicationBuilder.UseAllNetRequestMiddleware());