Skip to content

Commit

Permalink
Update test container version
Browse files Browse the repository at this point in the history
  • Loading branch information
leighmacdonald committed Dec 5, 2024
1 parent 2875551 commit fe341c2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
2 changes: 1 addition & 1 deletion docker/test-backend.Dockerfile
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 ./
Expand Down
31 changes: 21 additions & 10 deletions docs/docs/install/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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.

0 comments on commit fe341c2

Please sign in to comment.