LensHub/ docs / operating
Apps

Operating

Logs, limits, and getting rid of an app.

Logs

lenshub_app_logs returns recent stdout and stderr, plus the build log of the latest release when that build failed. People see the same output on the app's Logs tab, and live CPU, memory and request numbers on Monitoring. Refused outbound calls appear here too — that is usually what you are looking for when an app "does nothing".

Resource limits

Every app runs in a tier. small is the default; an administrator changes it on the app's Settings tab.

TierCPUsMemoryProcessesDisk
small0.5256 MB128512 MB
medium11 GB2562 GB
large24 GB5128 GB

An app that exceeds its memory is restarted rather than left to exhaust the host. APPD_MAX_STORAGE_GB caps the total across all app images and volumes; once it is reached, new builds are refused.

Isolation

Builds reach public hosts only, through the egress proxy, and never an internal address (APPD_BUILD_NETWORK=proxy, the default; none cuts builds off entirely). Where the host provides gVisor, appd uses it (APPD_GVISOR). Each app gets its own volume, removed when the app is.

Monitoring

appd serves Prometheus metrics on APPD_METRICS_LISTEN (:9466 in compose, on its control network): builds by outcome, and calls the egress proxy refused. See Monitoring.

Removing an app

lenshub_app_delete — or Delete app on the app's Settings tab — stops the container, removes its network and its data volume, and revokes its links. Releases and events are kept — deleting an app does not erase the record of what it did.

On this page