Coderank Configuration File
This file named coderank.json
located in the .coderank
directory helps to setup your resource to your liking.
The file looks like this:
{
"type": "web",
"run": {
"build": "npm run build",
"start": "npm start",
"workDir": "/root/workspace",
"port": "3001"
},
"ports": [3000, 3001],
"dependencies": {
"apt": ["rsync"]
}
}
File Sections
Each section controls a pecific aspect of your resource.
type
The type
section indicates what kind of application you aim to run. Currently we support web
and shell
application types.
web
A web
type represents a web application that will be accessed via http.
shell
A shell
type represents an application that will be run via the terminal.
run
The run
section gives us information to execute your application. it depends on the type of application. For a web
application you need the start
and port
values at a minimum. Others are optional.
{
"build": "npm run build",
"start": "npm start",
"workDir": "/root/workspace",
"port": "3001"
}
For a shell
application you only need the start
command. Optional values also apply.
{
"start": "./start.sh"
}
ports
This is a list of ports to be exposed by the container. Maximum 3 ports. The ports simply determine which subdomains should be used for SSL.
"ports": [3000, 3001]
dependencies
Dependencies are packages which your container depends on. All presets are debian
based for now, so we currently only allow apt
packages.
"dependencies": {
"apt": ["rsync", "neofetch"]
}
extensions
These are vscode extensions specifically from the code-server extension marketplace Extensions are represented by their ids
.
"extensions": [
"esbenp.prettier-vscode",
"mads-hartmann.bash-ide-vscode"
]
Config File Type Definition
The full config file type looks like this:
type CoderankConfig = {
type: "web" | "shell";
run: {
start: string;
port?: string;
workDir?: string; // Defaults to `/root/workspace`
build?: string;
};
ports: number[];
dependencies?: {
apt?: string[];
};
extensions: string[];
};