Automated Analysis != Safety. This is a Developer Transparency Tool.
Inspector

Cloudron community app transparency reports

Inspect a Cloudron community app `CloudronVersions.json` feed. Repository analysis is derived from the package metadata in that feed, and the report stays intentionally conservative: it surfaces what the package appears to do, but it does not certify safety.

What this checks
CHECKS EXPLAINED
Checks Explained
Metadata links and missing fields
Reads the Cloudron feed metadata, checks whether important links are valid, and notes when required fields are missing.
Dockerfile command patterns
Scans Docker build steps for risky commands such as destructive deletes, world-writable permissions, or remote scripts piped into a shell.
Runtime shell network calls
Looks through startup shell scripts for commands like curl, wget, nc, or ssh that may contact remote systems during runtime.
Privilege escalation and credential leakage
Flags startup-script patterns that touch privileged system paths, invoke sudo, or combine secrets with outbound commands.
Feed vs repo version drift
Compares the version published in CloudronVersions.json with the version found in the package repository when that repository can be identified reliably.
  • Metadata links and missing fields
  • Dockerfile command patterns
  • Runtime shell network calls
  • Privilege escalation and credential leakage
  • Feed vs repo version drift
Refresh
Example inputs
https://communityapps.appx.uk/cloudron-notediscovery/CloudronVersions.json
https://raw.githubusercontent.com/BrutalBirdie/cloudron-tachyon-app/refs/heads/master/CloudronVersions.json
https://communityapps.appx.uk/cloudron-ocular/CloudronVersions.json
Generated Report

Bloom PLM by EmbedLabs

Requirements, controlled documents and traceability

Score
43/100
43 reached57 still requires deeper inspection
Automated checks can score at most 70/100. The remaining 30 points require deep inspection.
This tool is for informational purposes only. Use at your own risk.
Safety Flags
3
Fail
2
Unsure
5
Pass
Master Info
Repository
Not available
Packager
EmbedLabs
minBox
10.0.0
Version
1.1.0
Tags
plmrequirementsdocumentsverificationtraceabilityproject
Detailed Checklist
packageUrl link is present and well formed when required (7/7)
pass
https://github.com/MbedLabs/bloom
Website link is present and well formed (7/7)
pass
https://embedlabs.net
Metadata and README links avoid insecure HTTP (0/7)
fail
http://localhost:8000/api/ready http://localhost:8000`.
Metadata and README links avoid URL shorteners (7/7)
pass
No shortener links found.
Cloudron feed version matches the repository manifest (7/7)
pass
Feed and repo both report 1.1.0.
Repository content was fetched for static analysis (7/7)
pass
https://github.com/MbedLabs/bloom @ 166a8353dd3a433bf9e1a49d2c6353acf566e708
Dockerfile scan did not detect clearly suspicious commands (4/7)
unsure
Dockerfile:15 System package installation found. Review whether all packages are justified. Dockerfile:37 System package installation found. Review whether all packages are justified.
Runtime shell scripts avoid suspicious outbound network calls (4/7)
unsure
scripts/cloudron_image_smoke.sh:77 Network-capable command found in a runtime shell script. scripts/cloudron_image_smoke.sh:103 Network-capable command found in a runtime shell script. scripts/cloudron_image_smoke.sh:124 Network-capable command found in a runtime shell script. scripts/cloudron_image_smoke.sh:126 Network-capable command found in a runtime shell script. scripts/cloudron_image_smoke.sh:129 Network-capable command found in a runtime shell script. scripts/cloudron_image_smoke.sh:144 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:92 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:100 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:134 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:163 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:171 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:181 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:191 Network-capable command found in a runtime shell script. scripts/e2e_image_smoke.sh:229 Network-capable command found in a runtime shell script.
Runtime shell scripts avoid privilege escalation patterns (0/7)
fail
scripts/cloudron_image_smoke.sh:112 Privileged command or direct system-path modification detected in startup script. scripts/e2e_image_smoke.sh:109 Privileged command or direct system-path modification detected in startup script. docker/start.sh:95 Privileged command or direct system-path modification detected in startup script.
Runtime shell scripts avoid credential leakage patterns (0/7)
fail
scripts/e2e_image_smoke.sh:43 Potential credential leakage pattern detected in a shell script. docker/start.sh:38 Potential credential leakage pattern detected in a shell script.
Raw Findings
Flagged lines are highlighted directly in the code snippet.
23 findings
Dockerfile:15
low
System package installation found. Review whether all packages are justified.
13WORKDIR /build
14
15RUN apt-get update && apt-get install -y --no-install-recommends \
16 gcc \
17 libpq-dev \
Dockerfile:37
low
System package installation found. Review whether all packages are justified.
35WORKDIR /app
36
37RUN apt-get update && apt-get install -y --no-install-recommends \
38 ca-certificates \
39 curl \
scripts/cloudron_image_smoke.sh:77
medium
Network-capable command found in a runtime shell script.
75wait_for_app() {
76 for _ in $(seq 1 60); do
77 curl -fsS "${BASE}/api/ready" >/dev/null 2>&1 && return 0
78 [ "$(docker inspect -f '{{.State.Running}}' "$APP" 2>/dev/null || true)" = true ] \
79 || fail "normal image exited under Cloudron constraints"
scripts/cloudron_image_smoke.sh:103
medium
Network-capable command found in a runtime shell script.
101
102login() {
103 curl -fsS -X POST "${BASE}/api/auth/login" \
104 -H 'Content-Type: application/json' \
105 -d "{\"email\":\"${ADMIN_EMAIL}\",\"password\":\"${ADMIN_PASSWORD}\"}" \
scripts/cloudron_image_smoke.sh:112
high
Privileged command or direct system-path modification detected in startup script.
110docker network create "$NET" >/dev/null
111docker run -d --name "$PG" --network "$NET" \
112 -v "${PGVOL}:/var/lib/postgresql/data" \
113 -e "POSTGRES_USER=${DB_USER}" \
114 -e "POSTGRES_PASSWORD=${DB_PASSWORD}" \
scripts/cloudron_image_smoke.sh:124
medium
Network-capable command found in a runtime shell script.
122
123log "Checking first-run setup and runtime peer link"
124[ "$(curl -fsS "${BASE}/api/setup/status" | json_field setup_required)" = True ] \
125 || fail "fresh Cloudron instance did not require setup"
126curl -fsS "${BASE}/runtime-config.js" | grep -F "$PEER_URL" >/dev/null \
scripts/cloudron_image_smoke.sh:126
medium
Network-capable command found in a runtime shell script.
124[ "$(curl -fsS "${BASE}/api/setup/status" | json_field setup_required)" = True ] \
125 || fail "fresh Cloudron instance did not require setup"
126curl -fsS "${BASE}/runtime-config.js" | grep -F "$PEER_URL" >/dev/null \
127 || fail "runtime-config.js did not contain ${PEER_ENV}"
128
scripts/cloudron_image_smoke.sh:129
medium
Network-capable command found in a runtime shell script.
127 || fail "runtime-config.js did not contain ${PEER_ENV}"
128
129curl -fsS -X POST "${BASE}/api/setup" \
130 -H 'Content-Type: application/json' \
131 -d "{\"email\":\"${ADMIN_EMAIL}\",\"password\":\"${ADMIN_PASSWORD}\",\"full_name\":\"Cloudron Owner\"}" \
scripts/cloudron_image_smoke.sh:144
medium
Network-capable command found in a runtime shell script.
142start_app
143wait_for_app
144[ "$(curl -fsS "${BASE}/api/setup/status" | json_field setup_required)" = False ] \
145 || fail "setup reopened after container recreation"
146[ -n "$(login)" ] || fail "administrator login did not survive recreation"
scripts/e2e_image_smoke.sh:43
high
Potential credential leakage pattern detected in a shell script.
41DB_PASSWORD="e2e-strong-db-password-not-a-default"
42DB_NAME="e2e_bloom"
43DATABASE_URL="postgresql+asyncpg://${DB_USER}:${DB_PASSWORD}@${PG}:5432/${DB_NAME}"
44
45ADMIN_EMAIL="e2e-admin@e2e.example.com"
scripts/e2e_image_smoke.sh:92
medium
Network-capable command found in a runtime shell script.
90
91login() {
92 curl -fsS -X POST "${BASE}/api/auth/login" \
93 -H 'Content-Type: application/json' \
94 -d "{\"email\":\"${ADMIN_EMAIL}\",\"password\":\"${ADMIN_PASSWORD}\"}" | json_field access_token
scripts/e2e_image_smoke.sh:100
medium
Network-capable command found in a runtime shell script.
98 local what="$1"
99 for _ in $(seq 1 60); do
100 if curl -fsS "${BASE}/api/ready" >/dev/null 2>&1; then return 0; fi
101 sleep 2
102 done
scripts/e2e_image_smoke.sh:109
high
Privileged command or direct system-path modification detected in startup script.
107 # Reuses the named PGVOL so data survives a container recreate.
108 docker run -d --name "$PG" --network "$NET" \
109 -v "${PGVOL}:/var/lib/postgresql/data" \
110 -e "POSTGRES_USER=${DB_USER}" \
111 -e "POSTGRES_PASSWORD=${DB_PASSWORD}" \
scripts/e2e_image_smoke.sh:134
medium
Network-capable command found in a runtime shell script.
132
133import_reqif() {
134 curl -fsS -X POST "${BASE}/api/projects/${project_id}/import/reqif" \
135 -H "Authorization: Bearer ${1}" \
136 -F "file=@${PADDED};type=application/xml;filename=e2e.reqif"
scripts/e2e_image_smoke.sh:163
medium
Network-capable command found in a runtime shell script.
161
162log "/api/health must be liveness-only (never claim database \"connected\")"
163health="$(curl -fsS "${BASE}/api/health")"
164echo " health = ${health}"
165printf '%s' "$health" | grep -q '"connected"' \
scripts/e2e_image_smoke.sh:171
medium
Network-capable command found in a runtime shell script.
169
170log "/api/ready must confirm the database"
171ready="$(curl -fsS "${BASE}/api/ready")"
172echo " ready = ${ready}"
173printf '%s' "$ready" | grep -q '"database":"connected"' \
scripts/e2e_image_smoke.sh:181
medium
Network-capable command found in a runtime shell script.
179
180log "/api/version must report the released version (${expected_version})"
181version="$(curl -fsS "${BASE}/api/version" | json_field version)"
182echo " /api/version = ${version}"
183[ "$version" = "$expected_version" ] \
scripts/e2e_image_smoke.sh:191
medium
Network-capable command found in a runtime shell script.
189
190log "Creating a project (database write)"
191project_id="$(curl -fsS -X POST "${BASE}/api/projects" \
192 -H "Authorization: Bearer ${token}" \
193 -H 'Content-Type: application/json' \
scripts/e2e_image_smoke.sh:229
medium
Network-capable command found in a runtime shell script.
227token="$(login)"
228[ -n "$token" ] || fail "admin login failed after recreation (database did not persist)"
229project_json="$(curl -fsS "${BASE}/api/projects/${project_id}" -H "Authorization: Bearer ${token}")"
230echo " project = ${project_json}"
231req_count="$(printf '%s' "$project_json" | json_field requirement_count)"
docker/start.sh:38
high
Potential credential leakage pattern detected in a shell script.
36 set +a
37
38 DATABASE_URL="$(printf '%s' "$CLOUDRON_POSTGRESQL_URL" | sed 's#^postgres://#postgresql://#')"
39 export DATABASE_URL
40 export BLOOM_DOTENV_DISABLED=1
docker/start.sh:95
high
Privileged command or direct system-path modification detected in startup script.
93chown "$APP_UID:$APP_GID" "$RUN_DIR/runtime-config.js"
94
95exec /usr/local/bin/supervisord -c /etc/supervisord.conf
96
metadata
high
Insecure HTTP link found: http://localhost:8000/api/ready
metadata
high
Insecure HTTP link found: http://localhost:8000`.
0.0.9