Handles all BOSS (Background Online Storage Service) related tasks for the Pretendo network.
- SpotPass on 3DS
- Tasksheets and policy files for both WiiU and 3DS
- Streetpass relay
Configurations are loaded through environment variables. .env
files are supported.
Environment variable | Description | Default |
---|---|---|
PN_BOSS_CONFIG_HTTP_PORT |
The HTTP port the server listens on | None |
PN_BOSS_CONFIG_LOG_FORMAT |
What logging format to use, possible options: pretty or json |
pretty |
PN_BOSS_CONFIG_LOG_LEVEL |
What log level to use | info |
PN_BOSS_CONFIG_BOSS_WIIU_AES_KEY |
The BOSS WiiU AES key, needs to be dumped from a console | None |
PN_BOSS_CONFIG_BOSS_WIIU_HMAC_KEY |
The BOSS WiiU HMAC key, needs to be dumped from a console | None |
PN_BOSS_CONFIG_BOSS_3DS_AES_KEY |
The BOSS 3DS AES key, needs to be dumped from a console | None |
PN_BOSS_CONFIG_MONGO_CONNECTION_STRING |
MongoDB connection string | None |
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_ADDRESS |
Address for the GRPC server to listen on | None |
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_PORT |
Port for the GRPC server to listen on | None |
PN_BOSS_CONFIG_GRPC_BOSS_SERVER_API_KEY |
API key that services will use to connect to the BOSS GRPC server | None |
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_ADDRESS |
Address of the account GRPC server | None |
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_PORT |
Port of the account GRPC server | None |
PN_BOSS_CONFIG_GRPC_ACCOUNT_SERVER_API_KEY |
API key of the account GRPC server | None |
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_ADDRESS |
Address of the friends GRPC server | None |
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_PORT |
Port of the friends GRPC server | None |
PN_BOSS_CONFIG_GRPC_FRIENDS_SERVER_API_KEY |
API key of the friends GRPC server | None |
PN_BOSS_CONFIG_S3_ENDPOINT |
S3 server endpoint | None |
PN_BOSS_CONFIG_S3_REGION |
S3 server region | None |
PN_BOSS_CONFIG_S3_BUCKET |
S3 server bucket | None |
PN_BOSS_CONFIG_S3_ACCESS_KEY |
S3 access key | None |
PN_BOSS_CONFIG_S3_ACCESS_SECRET |
S3 access key secret | None |
PN_BOSS_CONFIG_CDN_DISK_PATH |
Storage path for the CDN, use as alternative for S3 | None |
PN_BOSS_CONFIG_STREETPASS_RELAY_ENABLED |
Should Streetpass Relay be enabled? | false |
PN_BOSS_CONFIG_STREETPASS_RELAY_CLEAN_OLD_DATA |
Should old Streetpass Relay data be automatically cleaned up? | false |
PN_BOSS_CONFIG_DOMAINS_NPDI |
What domain should the NPDI component use? | npdi.cdn.pretendo.cc |
PN_BOSS_CONFIG_DOMAINS_NPDL |
What domain should the NPDL component use? | npdl.cdn.pretendo.cc |
PN_BOSS_CONFIG_DOMAINS_NPFL |
What domain should the NPFL component use? | npfl.c.app.pretendo.cc |
PN_BOSS_CONFIG_DOMAINS_NPPL |
What domain should the NPPL component use? | nppl.app.pretendo.cc,nppl.c.app.pretendo.cc |
PN_BOSS_CONFIG_DOMAINS_NPTS |
What domain should the NPTS component use? | npts.app.pretendo.cc |
PN_BOSS_CONFIG_DOMAINS_SPR |
What domain should the SPR component use? | service.spr.app.pretendo.cc |
The S3 server is optional, you can set PN_BOSS_CONFIG_CDN_DISK_PATH
if you want to use a local folder as CDN source instead.
The CLI is a helper to interact with the content of the BOSS server.
npm run build
./boss --help
Configurations are loaded through environment variables. .env
files are supported.
Environment variable | Description | |
---|---|---|
PN_BOSS_CLI_GRPC_HOST |
The Host that the BOSS GRPC server is on. Example: localhost:5678 |
Required |
PN_BOSS_CLI_GRPC_APIKEY |
Master API key of the BOSS GRPC server. | Required |
PN_BOSS_CLI_WIIU_AES_KEY |
The BOSS WiiU AES key, needs to be dumped from a console | Optional |
PN_BOSS_CLI_WIIU_HMAC_KEY |
The BOSS WiiU HMAC key, needs to be dumped from a console | Optional |
PN_BOSS_CLI_NPDI_URL |
The URL of the NPDI part the BOSS HTTP server, only needed when downloading | Optional |
PN_BOSS_CLI_NPDI_HOST |
The Host header for the NPDI requests. Use when you don't have NPDI exposed to the internet | Optional |
# Download taskfile and decrypt
./boss file ls <BOSS_APP_ID> <TASK_ID> # View list of files and their IDs
./boss file view --decrypt <BOSS_APP_ID> <TASK_ID> <DATA_ID> > output.txt # Download file and decrypt
# Update splatoon rotations
# Run the following for all of these BOSS app ids:
# - bb6tOEckvgZ50ciH
# - rjVlM7hUXPxmYQJh
# - zvGSM4kOrXpkKnpT
./boss file create <BOSS_APP_ID> schdat2 --name VSSetting.byaml --type AppData --notify-new app --file <FILE_PATH_FOR_VSSETTING>