Cabinet is a web-based storage system for log files and statistics. The concept behind cabinet was to provide an all-in-one file server, statistic parser, and GUI. Logs from the dashboard app are recorded and then uploaded to the cabinet server. Each post includes a plain-text file of the console output, a binary file which tracks statistics from the car, and a mapping file to map the statistics to a pretty name.
Cabinet exposes an easy-to-use REST API for posting / reading logs.
Params:
date
= Epoch Time (UTC) of when the posted log was created.
Body:
log
(File) = Plain-text log filestats
(File) = Binary log filestats_map
(File) = Map for binary log file
Example response:
{
"id": 0,
"date": 1648336488,
"uploadDate": 1648319097
}
Errors:
- 400 Bad Request
- No
date
parameter was supplied. - No
log
file was included in the body. - The
stats
file was included, but thestats_map
file was missing.
- No
Example response:
[
{
"id": 1,
"date": 1648336488,
"uploadDate": 1648319545,
"size": "8.3 KiB",
"doesSheetExist": true
},
{
"id": 0,
"date": 1648336488,
"uploadDate": 1648319097,
"size": "8.3 KiB",
"doesSheetExist": true
}
]
Example response:
{
"id": 0,
"date": 1648336488,
"uploadDate": 1648319097,
"size": "8.3 KiB",
"doesSheetExist": true
}
Errors:
- 400 Bad Request
- The specified id is not an integer.
- 404 Not Found
- No log could be found for the specified id.
Cabinet is designed to be deployed as a docker container. Pull the latest container by using:
docker pull noahhusby/cabinet:latest
Environment variables:
CABINET_DIR
- The persistent directory location for log storage.
Distributed under the MIT License. See LICENSE