DEV Community

Jessé Cruz
Jessé Cruz

Posted on

how i run a private package registry on infrastructure i control

i want private packages to live on infrastructure i can operate.

i want to know where the service runs, where the artifacts are stored, and how it is backed up.

omni line is self-hosted, so i can run it with docker compose, ansible, or helm.

for a first deployment, i use docker compose.

the installer sets up the compose assets, writes the environment configuration, and starts postgres, the server, and the client.

for a remote host, i set the public URL during installation.

for production, i put tls at the edge and set the public server and frontend URLs to the HTTPS origin.

i start with the default local storage when i am evaluating the service.

when i need object storage, omni line supports an s3 compatible storage configuration.

when i need a separate database service, the compose deployment can use an external postgres instance.

those choices do not change the package manager workflow.

they change how i operate the registry.

i also plan backups as part of the deployment.

that means backing up postgres and the artifact storage.

if artifacts are stored in an s3 compatible bucket, i back up the bucket.

if they are stored on a local volume, i include that volume in the recovery plan.

i do not expose postgres on the host just because it is part of the stack.

i keep the registry behind TLS.

i keep the installation URL consistent with the URL developers use.

this matters because the browser, management API, and package clients all depend on the same public origin.

self-hosting does not remove operational work.

it gives me a clear place to do it.

i operate one package service instead of a different product for every ecosystem.

then developers, ci, and agents keep using the package tools they already know.

Top comments (0)