ResourceMod content registry is a self-hosted solution to host your plugins and extensions for cs2 game servers.
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.
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.
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.
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.
- Pull repository
- Install golang (tested on 1.19, would be nice to update it)
- Install make
- Run make build
Run make generate-api
- Create an issue
- Fork repository
- Do your work
- Create a pull-request attached to the issue
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
- JWT_SECRET_KEY (jwt secret key)
- DB_DSN (mongodb dsn)
- CONTENT_DATA_FOLDER (folder with content cache)
- IS_DEV (provide cors to localhost:3000)
- 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")
- Users management
- Content management
- GitHub integrations management
- Correct JWT workflow (token validation)
- Code refactoring and code quality tools
- Private plugins/extensions download support
- Settings
- MongoDB as main database
- Gin http server framework
- Docker
- OpenAPI specifications