No description
  • JavaScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Particle Feast f17a69e63c
Some checks are pending
Node.js / lint (push) Waiting to run
Node.js / test (push) Waiting to run
update private hostname with public one
2026-10-14 14:30:38 -07:00
.forgejo/workflows ci: update image to use "node" tag 2025-09-26 12:36:24 -07:00
src tweak: rename index.mjs entry-point to main.mjs, for clarity 2025-09-26 10:38:09 -07:00
.gitignore ci: add ci workflow and minimal "test suite" 2025-09-26 10:22:38 -07:00
.tool-versions add peer relay web socket + update dependencies 2025-06-24 11:22:14 -07:00
c8.config.json tweak: extract c8 configuration to file 2025-09-26 10:38:21 -07:00
eslint.config.mjs initial commit 2024-10-29 21:45:30 -07:00
LICENSE rebrand Methadox as CompuVision 2026-10-13 14:47:51 -07:00
package-lock.json ci: add ci workflow and minimal "test suite" 2025-09-26 10:22:38 -07:00
package.json tweak: extract c8 configuration to file 2025-09-26 10:38:21 -07:00
README.md update private hostname with public one 2026-10-14 14:30:38 -07:00

Application Server

stars open issues open pull requests ci status

This repo contains the backend component of CompuVision. To learn more about CompuVision, see the quickstart repo.

Installation

This app is designed to be proxied via a web server like nginx.

See the quickstart repo for a working nginx configuration.

To run this app, you'll need to run the following command once to create and populate the node_modules/ directory:

# Requires Node.js, only needs to be run once
npm install --omit=dev

Configuration

This app is configured via environment variables:

  • CREDENTIALS - a stringified JSON object whose keys are usernames and each value is the user's corresponding Argon2id passphrase hash
  • DEFAULT_METRIC_LABELS - a stringified JSON object containing extra labels to be included in each metric reported via the app's GET /metrics endpoint
  • IMDB_DATA_DIR - the path to a directory containing IMDb datasets as SQLite3 databases, as produced by CompuVision/imdb
  • JWT_SIGNING_KEY - a stringified JSON object containing a JWK-formatted ES256 private key to be used for signing auth tokens
  • LOG_LEVEL - the minimum log level for logs emitted by the app (in order: DEBUG, INFO, WARN, ERROR)
  • REALM - the domain on which this app should be accessed -- determines the value of the Domain parameter on the access_token cookie used for authorization
  • SCOPE - the minimum path on the URI governed by this app -- determines the value of the Path parameter on the access_token cookie used for authorization

Additionally, either of the following environment variables can be set, depending on how the app should listen for requests.

To have the app listen on a Unix socket:

  • UNIX_SOCKET - the path of the Unix socket on which the app should bind

To have the app listen via TCP/IP:

  • IP_ADDRESS - the IPv4 address to which the app should bind (0.0.0.0 will listen on all interfaces)
  • TCP_PORT - the TCP port on which the app should listen for requests

Running

To run the app, run node src/index.mjs with all of the above required environment variables set.

License

CompuVision © 2025 by Devin Canterberry is licensed under CC BY-NC-SA 4.0.

This project may not be used, in whole or in part, for AI training.