This software can easily manage your pavlov servers. This also means deleting.
Please proceed only if you know what you are doing.
Otherwise ask for help first:
https://github.com/devinSpitz/PavlovRconWebserver/discussions
newly added:
GDPR stuff added so you can download and remove your data from the system.
Added request limiter
steam login added (*be aware that you need to change the service and nginx redirect for this to work in chrome and other browsers in the future (check the nginx section))
Added limited Shack Support
Show pavlov server logs in the gui
Added TTT Commands
fixed some stuff in the matchmaking but its still WIP
You need to create a appsettings.Production.json now. Copy past from appsettings.Development.json.
Arch and subfolder together is not supported. Just leave this option in the appsettings empty or a /
Autobalance is broken right now will check that in the next version
Added leaderboard per server
ApiKey support
Auto Balance (default disabled)
Save Stats (default disabled)
new Game ini settings
Map view on index page so visitors can see the map cycle
Premium Role: The costume clown is now only available for premium members or higher roles.(Global roles with access to Clown: Premium,OnPremise,ServerRent,Mod,Captain,Admin)
OnPremise Role which administers an ssh server itself and can therefore also administer its own servers etc. via the platform.
ServerRent Role which can administer a separate pavlov server in a limited way.
Changed The Captain and Mod rights so they can not handle onPremise and ServerRent servers.
Team roles only are active in the Team Manager and Match Handler or in the match itself.
1 KeyFile per SSh server can be store in the Database(be aware breaking change to before!)
Index now shows all server online and there stats.
The ssh user now should be the steam user. (Root user can fail in code)
Root user is needed to create a pavlov server(will not be saved!). Need root to be able to make the .service file.
Users can now change there skin
Server handle Stop and Start
Chosen maps not only have effect on deleting also has effect on the server settings.
You can edit the server settings now
The system knows which state the server of a pavlov server has
You can now edit the Mod and White list of a pavlov server
Mod on a pavlov server now also means Mod in case of commands for this single server in the GUI
Users are now no longer able to inspect server where they are not a mod. (they can get the infos from a website which gets the HTML from /PublicViewLists/PlayersFromServers/*)
Logs 24h for errors and stuff
Better notification when something happens in the background that could interrupt your work
older:
Player list with stats etc.
Ban list over time. You can now ban People for a specific time.
You can select maps that will not get deleted, when the cache will get cleaned.
Maps will be deleted every day on 3 o clock in the morning(so the cache will not overflow on your server)
Maps from steam will be crawled every day on 3 o clock in the morning(While this is happening the server may have a lot to do and will answer with some delay)
the selected maps from the server will be first in the map selector
Telnet direct connections are not supported anymore cause i have to clean the maps from the cache!
Swagger is only available in development mode: http://localhost:5001/swagger and without registration / Thats why its disabled on production
That applies to all offers:
Offers:
Auth logic with priority(with added multiple options):
Default users:
User: admin
pw: A2345a$
Note: =======
If you build it by yourself be sure to add the database.db file and the other required folders(see release) before start the application.
The old user and roles system ist not compatible to the new one. So you have to restart with a new database, if you are from the version 0.0.1!
Telnet direct connections are not supported anymore cause i have to clean the maps from the cache!
Help: =======
Install Linux: =======
Build Linux: =======
Requirements:
Steps :
[Unit] Description=PavlovWebServer
[Service] WorkingDirectory="Full build path" ExecStart="Full build path"/PavlovRconWebserver --urls=https://*:5001/ Restart=always RestartSec=10 # Restart service after 10 seconds if dotnet service crashes SyslogIdentifier=dotnet-core-app User=steam Environment=ASPNETCORE_ENVIRONMENT=Production
[Install] WantedBy=multi-user.target
7. sudo systemctl enable pavlovRconWebserver
8. sudo systemctl start pavlovRconWebserver
9. sudo apt install nginx
10. sudo nano /etc/nginx/sites-available/default
11. Replace content (without brackets) and replace your variables:
server { listen 80 default_server; server_name "Domain/subdomain"; location / { proxy_pass https://localhost:5001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 300; proxy_connect_timeout 300; proxy_send_timeout 300; } }
12. sudo apt-get install certbot python-certbot-nginx
13. sudo certbot --nginx -d "Domain/subdomain"
14. Go to your Domain/subdomain
15. Login as Admin
16. Change password
17. Goto Hangfire -> Recurring Jobs -> Start: SteamService.CrawlSteamMaps
![Rent](./PavlovRconWebserver/Pictures/StartMapCrawl.png?raw=true)
18. Use the software as you like.
Docker:
=======
1. Just wget the [docker-compose.yml](./PavlovRconWebserver/docker-compose.yml) file
2. In the same folder where you downloaded the file execute: docker-compose up -d
3. For lets encrypt etc. i would use something like: https://github.com/nginx-proxy/docker-gen
Install Windows:
=======
1. Download newest build in the releases https://github.com/devinSpitz/PavlovRconWebserver/releases
2. unzip the zip archive: PavlovRconBuildWindows.zip
3. Go into the folder and to Build Windows step 6
Build Windows:
=======
Requirements:
1. Install dotnet sdk 5.0: https://dotnet.microsoft.com/download/dotnet/5.0
2. git CLI: https://git-scm.com/download/win
Steps:
1. open the git cli wherever you want to download the files.
2. git clone https://github.com/devinSpitz/PavlovRconWebserver.git
3. goto to created directory and then to this folder: PavlovRconWebserver/PavlovRconWebserver
4. open a Powershell and enter the command: dotnet publish -c release -o "Full build path" --runtime win-x64 --self-contained true --framework net5.0
5. copy the default database to your "Full build path"\Database\Database.db.
5.5 copy the appsettings.Development.json to "Full build path"/appsettings.Production.json if its not already exist.
6. run the PavlovRconWebserver.exe in the "Full build path"
7. Please don't use it public like this. You need at least a SSL Certificate. Use something like that: https://certbot.eff.org/lets-encrypt/windows-other.html
8. After you have your ssl done go to your Domain/subdomain
9. Login as Admin
10. Change password
11. Goto Hangfire -> Recurring Jobs -> Start: SteamService.CrawlSteamMaps
![Rent](./PavlovRconWebserver/Pictures/StartMapCrawl.png?raw=true)
12. Use the software as you like.
Any problem or bug?:
=======
Read and create issues: https://github.com/devinSpitz/PavlovRconWebserver/issues
Want to discuss, asking questions or having trouble installing the software?:
=======
Read and write here: https://github.com/devinSpitz/PavlovRconWebserver/discussions
Todo:
=======
Read: https://github.com/devinSpitz/PavlovRconWebserver/projects
Donate:
=======
Feel free to support my work by donating:
<a href="https://www.paypal.com/donate?hosted_button_id=JYNFKYARZ7DT4">
<img src="https://www.paypalobjects.com/en_US/CH/i/btn/btn_donateCC_LG.gif" alt="Donate with PayPal" />
</a>
Business:
=======
For business inquiries please use:
<a href="https://github.com/devinSpitz/PavlovRconWebserver/blob/master/mailto:devin@spitzen.solutions">devin@spitzen.solutions</a>
Credits:
=======
LiteDB.Identity
Implementation of AspNetCore.Identity for LiteDB database engine.
https://github.com/quicksln/LiteDB.Identity
Serilog
This package routes ASP.NET Core log messages through Serilog, so you can get information about ASP.NET's internal operations written to the same Serilog sinks as your application events.
https://github.com/serilog/serilog-aspnetcore
Mock & Automock
An automocking container for Moq. Use this if you're invested in your IoC container and want to decouple your unit tests from changes to their constructor arguments.
https://github.com/moq/Moq.AutoMocker
Coverlet
Cross platform code coverage for .NET
https://github.com/coverlet-coverage/coverlet
ToastNotification
ToastNotification is a Minimal & Elegant Toast Notification Package for ASP.NET Core Web Applications that can be invoked via C#. Compatible with ASP.NET Core 3.1 and .NET 5.
https://github.com/aspnetcorehero/ToastNotification
Fluent Assertions
A very extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests. Targets .NET Framework 4.7, .NET Core 2.1 and 3.0, as well as .NET Standard 2.0 and 2.1. Supports the unit test frameworks MSTest2, NUnit3, XUnit2, MSpec, and NSpec3.
https://github.com/fluentassertions/fluentassertions
Json.NET
Json.NET is a popular high-performance JSON framework for .NET
https://www.newtonsoft.com/json
SSH.NET
SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism.
https://github.com/sshnet/SSH.NET/
Boostrap:
The most popular front-end framework for developing responsive, mobile first projects on the web.
https://getbootstrap.com
Datatables:
Add advanced interaction controls to your HTML tables the free & easy way
https://github.com/DataTables/Dist-DataTables
Html Agility Pack (HAP)
Html Agility Pack (HAP) is a free and open-source HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT. It is a .NET code library that allows you to parse "out of the web" HTML files.
https://github.com/zzzprojects/html-agility-pack
Hangfire
An easy and reliable way to perform fire-and-forget, delayed and recurring, long-running, short-running,
CPU or I/O intensive tasks inside ASP.NET applications. No Windows Service / Task Scheduler required. Even ASP.NET is not required. Backed by Redis, SQL Server, SQL Azure or MSMQ. This is a .NET alternative to Sidekiq, Resque and Celery.
https://www.hangfire.io/
Telnet
A minimal open-source C# 3.5/4.0/4.5/4.5.1/NetStandard1.6/NetStandard2.0 Telnet client library implementation; just enough to send simple text commands and retrieve the response.
https://github.com/9swampy/Telnet/
Font Awesome
Get vector icons and social logos on your website with Font Awesome, the web's most popular icon set and toolkit.
https://fontawesome.com/
Bootswatch
Free themes for Bootstrap
https://bootswatch.com/
Xunit
xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework.
https://github.com/xunit/xunit
Swagger tools for documenting APIs built on ASP.NET Core
https://github.com/domaindrivendev/Swashbuckle.AspNetCore
LiteDB.Identity.Async
Make LiteDB.Identity async
https://github.com/devinSpitz/LiteDB.Identity.Async
Serilog.Sinks.LiteDb.Async
Serilog event sink that writes to LiteDb database
https://github.com/devinSpitz/Serilog.Sinks.LiteDb.Async
Thanks to all this people who worked for this nuget packages. Without that it wouldn't be possible to do this.
<b>Powered by Spitz IT Solutions</b>
For commercial licences you can find more information here: https://github.com/sponsors/devinSpitz
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.