Ctrl K
ComunidadGuías…

SECURITY.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Security Policy

LookSee is self-hosted software that ingests video, stores credentials for external integrations, and exposes a web interface. Security reports are taken seriously and handled privately until a fix is available.

## Supported versions

| Version | Supported |
| --- | --- |
| `main` | Yes |
| Latest release | Yes |
| Older releases | No, upgrade to the latest release |

## Reporting a vulnerability

Report vulnerabilities through [GitHub private vulnerability reporting](https://github.com/okoflow/looksee/security/advisories/new). Do not open a public issue, pull request, or discussion for a security problem.

Include what helps reproduce and assess the issue:

- the affected component (`api`, `inference`, `studio`, `shared`, `ee`, compose, or Docker images) and the commit or release version
- steps to reproduce, a proof of concept, or the request that triggers it
- the impact you expect, and the deployment shape it applies to (Docker Compose, native, behind a reverse proxy)

You receive an acknowledgement within three business days and a triage decision within seven. Fixes ship as a patch release with a security advisory that credits the reporter unless they prefer otherwise. Please keep the report private until the advisory is published.

## Scope

In scope: everything in this repository, including the API, the inference service, Studio, the shared contracts, the Enterprise code under `ee/`, `compose.yaml`, the Dockerfiles, and the published container images.

Out of scope: vulnerabilities in upstream projects such as MediaMTX, PostgreSQL, Valkey, or ONNX Runtime unless a LookSee default configuration causes them; deployments that ignore the hardening notes below; denial of service by saturating a camera stream you are entitled to publish.

## Hardening a deployment

- Create the owner account immediately after the first start. Until it exists, anyone who can reach the web interface can claim the instance.
- Set private `POSTGRES_PASSWORD`, `MTX_MEDIA_PASSWORD`, and `STORAGE_PASSWORD` values. They are backend secrets: browsers receive short-lived, camera-scoped grants from the API instead of the MediaMTX password.
- Put Studio and the API behind a reverse proxy with TLS, set `AUTH_COOKIE_SECURE=true`, and narrow `CORS_ORIGIN_REGEX` to your origin.
- Set `SECRET_KEY` explicitly or back up the `api_keys` volume. It signs sessions and encrypts stored credentials; losing it invalidates both.
- PostgreSQL, Valkey, the video storage, and the MediaMTX control API bind to `127.0.0.1`. RTSP (`8554`) and WebRTC (`8889`, `8189/udp`) bind to all interfaces so cameras and browsers can reach them; firewall them to the networks that need access.
- Keep the stack on a trusted network. Do not expose MediaMTX, camera credentials, or the database to the public internet.

## Dependencies

Dependabot watches the uv workspace, the Studio package set, the Docker base images, `compose.yaml`, and GitHub Actions. Lock files (`uv.lock`, `pnpm-lock.yaml`) are committed, and images pin their base tags.