BillyCDK Remastered Edition. Manage CDKey inventory and more. Featuring C#, TypeScript, GraphQL, React-Redux, and more.
A demo has been uploaded to Bilibili and Youtube.
Currently, you are automatically logged in as Billy, a super admin. The user info will be saved in the redux store after a successful log-in.
The UI of BillyCDK is inspired by the Fallout 4 terminal.
You can click the menu items with mouse clicking or by tapping, just like browsing a normal website.
Also, since this is designed as a terminal interface, you can try navigating with your keyboard. Try selecting a menu with arrow keys, press "Enter" to go into a menu, or press "ESC" to go back. Besides, you can always press the "Home" key to go back to the main menu. Currently, to focus different items in a form interface (e.g. Add a new game window), you need to press the "Tab" key to switch your input focus.
You can buy a game from the store. After purchasing a game for yourself, the game item will appear in your game inventory directly (No CDKey entering required).
You can view a list of all players. And currently, all players are assumed to be your friends.
You can take a look at the CDKeys you own at the CDKey inventory. You may choose to activate a new game by entering an existing inactivated CDKey.
Admins can manage the players. They can help register a new player, edit the information of an existing player, or delete a player.
Admins have the privilege to manage the store. They can publish a new game, edit the details of the existing games, or delete a game.
Admins can publish a new game.
Admin can issue CDKeys for a certain game. To do that, you need a CDKey value prepared in advance.
You can switch languages at the main menu. Translations are provided in English, French, and Chinese Simplified.
Server:
- ✔ CDKey Management (add, get, update, remove)
- User authorization (player sign-up, login)
- Premium Examination
- ❌ Platform management (restart, download, delete)
Client:
- UI ✔
- i18n ✔
-
A working MongoDB: Set up via docker or install one manually.
-
secrets.yaml
for DB connection configs. -
appsettings.yaml
for appliaction settings.-
Set a
basePath
if the server is behind a reverse-proxy (e.g. Nginx, Kubernetes) -
Do remember to specify the Kestrel Url in
appsettings.yaml
, otherwise, you cannot access the server! Refer toserver/App/appsettings.Development.yaml
for hints or refer to section ListenOptions.UseHttps on article "Kestrel web server implementation in ASP.NET Core".
-
Run:
docker run -d \
--network my-vps-main-network \
--name billy-cdk-c1 \
-v /path/2/appsettings.yaml:/workspace/www/billyCDK/appsettings.yaml \
-v /path/2/secrets.yaml:/workspace/www/billyCDK/secrets.yaml \
valorad/billy-cdk:latest
-
Install .NET Core Runtime ^3.1.0
-
Download the release version, extract files, and locate the directory.
-
Create your own
appsettings.yaml
andsecrets.yaml
in that directory. -
Run:
dotnet BillyCDK.dll
Github has a problem accessing the git submodule with relative paths. You can access them from the links below.
The original version was developed in 2014 as a personal project after finishing the C programming course.