What’s that?
ResourceMod content registry is a self-hosted solution to host your plugins and extensions for cs2 game servers.
Why is this necessary?
At release, we will create our own instances of the same registry that will allow content creators to host their plugins on our servers, or rather give us the ability to share plugins via the package manager. But some content creators are worried about keeping their data private, or don’t want to share plugins with other users at all, in which case you will need a registry. For clarity, you can draw an analogy with docker registry, the meaning is the same, adding content to the game server will be done through similar servers proxy, which will allow you to control access to these resources.
Where is the content stored?
Git. GitHub to be exact. Your plugins or extensions can be in public repositories or private, registry will be able to download them either way using the GitHub integration.
How’s that works?
You deploy a docker image or use a binary file to run the REST API of the registry server. You can also implement the Registry specification in any other language or framework, the current specification can be found under /api folder.
Web UI
We have created a web interface to make it easy to work with the registry. Through web-ui you can create your account, manage users, add plugins, add extensions (c-modules), manage integrations with git.
How to build
- Pull repository
- Install golang (tested on 1.19, would be nice to update it)
- Install make
- Run make build
How to generate API from openapi specification
Run make generate-api
How to contribute
- Create an issue
- Fork repository
- Do your work
- Create a pull-request attached to the issue
How to run it?
Build and run it by binary (/bin/rmod-reg)
Or you can run it via docker image.
docker run -e DB_DSN=mongodb://host:port -e JWT_SECRET_KEY=*your_secret_jwt_key* -e CONTENT_DATA_FOLDER=/data -p 8888:8888 -v ${PWD}/runtime_data:/data resourcemod/rmod-registry:v1.0.0 rmod-reg serve
Env variables
- JWT_SECRET_KEY (jwt secret key)
- DB_DSN (mongodb dsn)
- CONTENT_DATA_FOLDER (folder with content cache)
rmod-reg serve command flags
- host (default: 0.0.0.0)
- port (default: 8888)
- ui (enable/disable web-ui, default: true)
- static (web ui static folder, default: “./web/app/dist”)
Roadmap
- Users management
- Content management
- GitHub integrations management
- Correct JWT workflow (token validation)
- Code refactoring and code quality tools
- Private plugins/extensions download support
- Settings
We use
- MongoDB as main database
- Gin http server framework
- Docker
- OpenAPI specifications
Docker Hub
https://hub.docker.com/r/resourcemod/rmod-registry