# NetBox Inventory and network documentation with a web process, worker, and Valkey. Kubernetes uses the shared PostgreSQL service at `postgres.database.svc.cluster.local:5432`, database and role `netbox`. The database and application Secrets must contain the same password. Media, reports, scripts, and Valkey have persistent storage. Compose has its own PostgreSQL container and Valkey instances. It publishes the web UI on `127.0.0.1:8000`; its Traefik labels can also expose it while a Docker proxy is running. Copy `.env.example` to `.env`, replace the credentials, and run `docker compose config --quiet` before starting it. ## First Kubernetes start Create the namespace and application Secret. Provision the database through the shared database initializer on a fresh instance, or create the role and database manually on an existing instance; see [PostgreSQL](../postgres/README.md). The database NetworkPolicy already includes `netbox`. Apply the selected application manifests after the database is ready. Startup runs schema migrations, so the probes allow a longer first boot. Inspect web and worker logs before retrying a slow migration. ## Settings and backup `configuration/configuration.py` is the Compose settings file. Its Kubernetes copy is embedded in `k8s/settings.yaml`; keep them aligned. Back up the database and media together. Keep `SECRET_KEY` and `API_TOKEN_PEPPER_1`: changing them invalidates sessions or API tokens. A container rollback cannot undo a database migration. ## Inspect From the repository root: ```sh kubectl get pods,svc,pvc -n netbox kubectl get events -n netbox --sort-by=.metadata.creationTimestamp ``` See the [repository README](../README.md) for deployment selection.