-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2875551
commit fe341c2
Showing
2 changed files
with
22 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
FROM golang:1.22-alpine | ||
FROM golang:1.23-alpine | ||
RUN apk add make gcc g++ | ||
WORKDIR /build | ||
COPY go.mod go.sum ./ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,24 +12,30 @@ Gbans is lightweight and can handle a small to moderately sized community with a | |
|
||
Special considerations need to be made when using extended functionality: | ||
|
||
It's recommended, but not required, to use a dedicated server for installation. The application is fairly lightweight, but some features | ||
It's recommended, but not required, to use a dedicated server for installation. The application is fairly lightweight, | ||
but some features | ||
will take some computational power which can interrupt other processes. This includes things like downloading demos | ||
over SSH/SCP and processing users stats. If you omit these features, it should be able to run alongside a game server fairly | ||
over SSH/SCP and processing users stats. If you omit these features, it should be able to run alongside a game server | ||
fairly | ||
well on a VPS. Ram usage is pretty negligible, but if you have a lot of servers and a long history, you may want to | ||
increase the ram allocated to postgres. | ||
|
||
If you are hosting game servers and gbans on the same host, you will likely want to specify [GOMAXPROCS](https://pkg.go.dev/runtime#hdr-Environment_Variables) | ||
when starting gbans so that you can set processor affinity/cpuset properly to ensure they are not fighting each other for resources. | ||
If you are hosting game servers and gbans on the same host, you will likely want to | ||
specify [GOMAXPROCS](https://pkg.go.dev/runtime#hdr-Environment_Variables) | ||
when starting gbans so that you can set processor affinity/cpuset properly to ensure they are not fighting each other | ||
for resources. | ||
|
||
IP2Location updates are a fairly intensive process, so considerations should be taken as far as how and when to update the database | ||
IP2Location updates are a fairly intensive process, so considerations should be taken as far as how and when to update | ||
the database | ||
to ensure it doesn't impact other things on the system. | ||
|
||
## Runtime requirements | ||
|
||
Running the binaries is very easy as they are statically compiled. All frontend assets are embedded into the binary | ||
to make deployment as trivial as possible. | ||
|
||
- Any modern-ish postgresql install with [PostGIS](https://postgis.net/) & [ip4r](https://github.com/RhodiumToad/ip4r) extensions. All non-EOL versions of postgres should work. | ||
- Any modern-ish postgresql install with [PostGIS](https://postgis.net/) & [ip4r](https://github.com/RhodiumToad/ip4r) | ||
extensions. All non-EOL versions of postgres should work. | ||
- A platform that go supports. Only linux and windows amd64 are tested, but as far as I know, others should work. | ||
|
||
## Sourcemod Plugins | ||
|
@@ -40,7 +46,8 @@ instructions: | |
- [sm-ripext](https://github.com/ErikMinekus/sm-ripext) Provides HTTP(S) client functionality | ||
- [sm-json](https://github.com/clugg/sm-json) `Required for development only` Provides JSON encoding/decoding. | ||
- [Connect](https://github.com/asherkin/connect) Provides `OnClientPreConnectEx` | ||
- [SourceTVManager](https://github.com/peace-maker/sourcetvmanager) Interface to interact with the SourceTV server from SourcePawn. | ||
- [SourceTVManager](https://github.com/peace-maker/sourcetvmanager) Interface to interact with the SourceTV server from | ||
SourcePawn. | ||
|
||
## gbans Server | ||
|
||
|
@@ -50,8 +57,9 @@ Precompiled binaries will be provided once the project is in a more stable state | |
images as they are currently the only tested usecase. | ||
|
||
- [make](https://www.gnu.org/software/make/) Not strictly required but provides predefined build commands | ||
- [golang 1.22+](https://golang.org/) Version >=1.22 is required. | ||
- [PostgreSQL](https://www.postgresql.org/) Version 16 is the only version currently tested against. All non-EOL versions should be supported. | ||
- [golang 1.23+](https://golang.org/) Version >=1.23 is required. | ||
- [PostgreSQL](https://www.postgresql.org/) Version 16 is the only version currently tested against. All non-EOL | ||
versions should be supported. | ||
- [PostGIS](https://postgis.net/) Provides some basic GIS functionality. | ||
- [ip4r](https://github.com/RhodiumToad/ip4r) Improved ip/cidr indexed and types. | ||
- [Node.js >=18.17.1](https://nodejs.org/en/) To build frontend | ||
|
@@ -72,12 +80,14 @@ Clone the gbans repository | |
```shell | ||
git clone [email protected]:leighmacdonald/gbans.git && cd gbans | ||
```` | ||
|
||
Build the projects, replace SM_ROOT with the path to your sourcemod installation directory (the folder with addons and | ||
cfg folders inside). | ||
|
||
```shell | ||
SM_ROOT=~/sourcemod make | ||
```` | ||
You should now have a binary located at `./build/$platform/gbans` | ||
### Docker | ||
|
@@ -139,4 +149,5 @@ SSLCertificateKeyFile /etc/cloudflare/example.com.key | |
</IfModule> | ||
``` | ||
|
||
If using Cloudflare to provide user location, you can use Origin Certificates to generate a long-lasting SSL certificate. | ||
If using Cloudflare to provide user location, you can use Origin Certificates to generate a long-lasting SSL | ||
certificate. |