fixes for standard configs

This commit is contained in:
Stanley Dimant
2022-08-24 21:43:17 +02:00
parent fd23cca840
commit 5b136685db
6 changed files with 8 additions and 88 deletions

View File

@@ -1,84 +0,0 @@
# Installing Mare Server on Ubuntu 20.04 Server LTS
## Important
- **You _will_ need a valid Certificate for the server.**
- Set one up using LetsEncrypt or use the one provided by your hoster
- The server provided is only guaranteed to run under Ubuntu 20.04 Server LTS. For anything else, you are on your own. The server is provided as a standalone .NET application which does not require .NET Core to be installed.
## Copy files over
- Connect via SCP and copy over all files to some directory
- The directory will need to be writeable by the user
## Install MSSQL Server 2019 CU
- Import GPG keys
```sh
sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
```
- Add repository
```sh
sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
```
- Install SQL Server 2019
```
sudo apt-get update
sudo apt-get install -y mssql-server
```
- Run configuration
```
sudo /opt/mssql/bin/mssql-conf setup
```
- Install "3) Express"
- Set a password
- Verify server is running
```
systemctl status mssql-server --no-pager
```
- Optional: set up a separate user for Mare Synchronos
- I'll let you figure that out yourself
- The user will need database creation rights
## Configure Mare Server
- open provided appsettings.json
- edit `DefaultConnection` to `"Server=localhost;User=sa;Password=<sa password>;Database=mare;MultipleActiveResultSets=true"`
- if you created a separate user for mare on the SQL Server, specify the username and password here
- edit `CacheDirectory` and set it to a path where the file cache is supposed to be located. i.e. `/home/<user>/servercache`
- you will also need to create that folder
- optional: set Port under edit `Url` and change the `+:5000` to `+:<your port>`
- Set up `Certificate`
- Set `Path` to the certificate file path
- Set `Password` to the password of the certificate
- If the certificate file is split in private key and public, set `KeyPath` to the private key file
- Delete all unused keys from `Certificate`
## Set up Mare Synchonos Server as a Service
- create new file `/etc/systemd/system/MareSynchronosServer.service` with following contents
```
[Unit]
Description=Mare Synchronos Service
[Service]
WorkingDirectory=<path to server files>
ExecStart=<path to server files>/MareSynchronosServer
SysLogIdentifier=MareSynchronosServer
User=<the user to run the service with>
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
```
- Reload SystemD daemon
```
sudo systemctl daemon-reload
```
- Enable the service with
```
sudo systemctl enable MareSynchronosServer
```
- Start the service with
```
sudo systemctl start MareSynchronosServer
```
- Log in ingame and add a custom server within the Mare Synchronos Plugin configuration under the address `wss://<your server ip>:<your server port>`
- That should be it and your server ready to go and running

View File

@@ -199,6 +199,8 @@ namespace MareSynchronosServer.Hubs
UploadFileRequest req = new(); UploadFileRequest req = new();
req.FileData = ByteString.CopyFrom(await File.ReadAllBytesAsync(tempFileName).ConfigureAwait(false)); req.FileData = ByteString.CopyFrom(await File.ReadAllBytesAsync(tempFileName).ConfigureAwait(false));
File.Delete(tempFileName); File.Delete(tempFileName);
req.Hash = computedHashString;
req.Uploader = AuthenticatedUserId;
_ = await _fileServiceClient.UploadFileAsync(req).ConfigureAwait(false); _ = await _fileServiceClient.UploadFileAsync(req).ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception ex)

View File

@@ -27,7 +27,7 @@
"DbContextPoolSize": 2000, "DbContextPoolSize": 2000,
"CdnFullUrl": "https://<url or ip to your server>/cache/", "CdnFullUrl": "https://<url or ip to your server>/cache/",
"ServiceAddress": "http://localhost:5002", "ServiceAddress": "http://localhost:5002",
"StaticFileServiceAddress": "http://localhost:5001" "StaticFileServiceAddress": "http://localhost:5003"
}, },
"AllowedHosts": "*", "AllowedHosts": "*",
"Kestrel": { "Kestrel": {

View File

@@ -30,7 +30,6 @@ public class FileService : MareSynchronosShared.Protos.FileService.FileServiceBa
public override async Task<Empty> UploadFile(UploadFileRequest request, ServerCallContext context) public override async Task<Empty> UploadFile(UploadFileRequest request, ServerCallContext context)
{ {
var filePath = Path.Combine(_basePath, request.Hash); var filePath = Path.Combine(_basePath, request.Hash);
var file = await _mareDbContext.Files.SingleOrDefaultAsync(f => f.Hash == request.Hash && f.UploaderUID == request.Uploader); var file = await _mareDbContext.Files.SingleOrDefaultAsync(f => f.Hash == request.Hash && f.UploaderUID == request.Uploader);
if (file != null) if (file != null)
@@ -83,7 +82,7 @@ public class FileService : MareSynchronosShared.Protos.FileService.FileServiceBa
public override Task<FileSizeResponse> GetFileSizes(FileSizeRequest request, ServerCallContext context) public override Task<FileSizeResponse> GetFileSizes(FileSizeRequest request, ServerCallContext context)
{ {
FileSizeResponse response = new(); FileSizeResponse response = new();
foreach (var hash in request.Hash) foreach (var hash in request.Hash.Distinct())
{ {
FileInfo fi = new(Path.Combine(_basePath, hash)); FileInfo fi = new(Path.Combine(_basePath, hash));
if (fi.Exists) if (fi.Exists)

View File

@@ -65,7 +65,6 @@ public class Startup
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ {
app.UseStaticFiles();
app.UseHttpLogging(); app.UseHttpLogging();
app.UseRouting(); app.UseRouting();

View File

@@ -12,6 +12,10 @@
"Endpoints": { "Endpoints": {
"Http": { "Http": {
"Url": "http://+:5001" "Url": "http://+:5001"
},
"Gprc": {
"Protocols": "Http2",
"Url": "http://+:5003"
} }
} }
}, },