Skip to content

feat: add FileBrowser app (closes ZimaOS txt/md edit gap)#929

Open
chicohaager wants to merge 4 commits intoIceWhaleTech:mainfrom
chicohaager:add-filebrowser-app
Open

feat: add FileBrowser app (closes ZimaOS txt/md edit gap)#929
chicohaager wants to merge 4 commits intoIceWhaleTech:mainfrom
chicohaager:add-filebrowser-app

Conversation

@chicohaager
Copy link
Copy Markdown

Summary

Adds File Browser (filebrowser/filebrowser) as a CasaOS / ZimaOS app, pinned to v2.63.3-s6.

The ZimaOS Files UI can preview text files (txt, md, conf, yaml, json) but cannot edit them. This app fills that gap with a lightweight web file manager that ships a built-in Monaco-style editor with Markdown live preview, syntax highlighting and inline rename / move / share / archive actions.

filebrowser is already reserved as an ID in featured-apps.json — but no Apps/FileBrowser/ entry exists yet. This PR delivers the missing piece.

Why this app

  • Real gap: ZimaOS users currently have to SSH into the box and run vi to edit a .md or a docker .env file on /DATA. That is friction the average NAS user does not want.
  • Tiny footprint: Single Go binary in a 30 MB image, suitable even on ZimaBoard-class hardware.
  • /DATA-aware: Mounts /DATA -> /srv so the app reaches every file on the NAS. Persistent state lives at /DATA/AppData/$AppID/{database,config} per the AppStore convention.
  • Multi-arch: amd64, arm64, armv7 — covers ZimaCube, ZimaCube Pro, ZimaBoard, ZimaBoard 2.

Image / config decisions

Decision Reason
Tag v2.63.3-s6 (no :latest) Per CONTRIBUTING.md. The -s6 variant honours PUID/PGID, which matches the ZimaOS host user model.
Port ${WEBUI_PORT:-8035} Lets ZimaOS auto-assign a free port; defaults to 8035 if WEBUI_PORT is unset.
Category Documents Matches the editor angle (the category description is literally "Document editing Apps").
Default credentials warning in tips.before_install File Browser ships with admin / admin and the volume reaches all of /DATA — a security note before install is mandatory.
Top-level index: / and port_map Standard pattern, opens directly into the file listing.

Draft status — what is missing

This PR is intentionally a draft until the screenshot-1.png from a verified ZimaOS deployment is added. CONTRIBUTING.md is explicit that screenshots must demonstrate the app actually running on CasaOS / ZimaOS, so a stock marketing image would not be appropriate. The screenshot will be added in a follow-up commit on the same branch and the PR marked ready for review at that point.

Test plan

  • docker-compose.yml is valid YAML and parses with python3 -m yaml
  • Image tag filebrowser/filebrowser:v2.63.3-s6 exists on Docker Hub (multi-arch manifest verified)
  • App name matches the required regex ^[a-z0-9][a-z0-9_-]*$
  • Icon (560x560 PNG, 27 KB) committed under Apps/FileBrowser/icon.png
  • Screenshot of the app running on ZimaOS — to be added before requesting review
  • First-boot sanity test on a ZimaCube Pro (v1.6.1, kernel 6.12.25)

Notes for reviewers

  • The icon comes from your own IceWhaleTech/AppIcon@main/all/filebrowser.png (560x560 PNG) — same source the IceWhale team has been using for featured branding, so the visual style is consistent.
  • The tips.before_install note explicitly tells users to change the default password — File Browser is a known case where defaults need to be hardened on first login.

File Browser is a lightweight web file manager with built-in editors
for plain text, Markdown, JSON, YAML and source code. The ZimaOS
files UI can preview text files but cannot edit them; this app fills
that gap as a Docker app pinned to v2.63.3 (s6-overlay variant for
PUID/PGID support).

filebrowser was already reserved as an ID in featured-apps.json but
no Apps/FileBrowser/ entry existed yet — this PR adds it.
- screenshot-1.png: Markdown preview of welcome.md, captured on a live
  filebrowser deployment running on ZimaOS v1.6.1 (192.168.1.143).
  Shows the breadcrumb /DATA -> Documents -> notes -> welcome.md, the
  rendered editor view with save/close/edit toolbar.

- tips.before_install: the s6 image variant generates a random initial
  password instead of the legacy admin/admin. Updated en_us + de_de
  tips to point users at 'docker logs filebrowser | grep randomly'.
@chicohaager chicohaager marked this pull request as ready for review May 8, 2026 13:00
- Remove all de_de strings (description, tagline, tips, env/volume
  descriptions). The translations were not idiomatic German and
  reviewer feedback on the PR was to keep this app English-only.
  en_us and zh_cn remain.

- Fix the password-change instruction: it is under
  'Settings -> Profile Settings -> Change Password', not
  'Settings -> User Management' (the latter is the admin's view of
  other users). Verified against a live filebrowser instance.
The validator workflow on commit d15607d failed with 'Process completed
with exit code 127' after Apps/Resilio-sync — but no specific app
emitted a fail. Locally re-running the exact CI loop:

  find . -type f \( -name docker-compose.yaml -or -name docker-compose.yml \) \
    | while read -r f; do casaos-app-management-validator "$f"; done

with the same v0.4.16-alpha1 validator binary on all 162 apps in the
repo (including this PR's Apps/FileBrowser/docker-compose.yml) returns
exit 0 for every file. The earlier two commits on this branch (c411d3c,
fe6ad4c) also passed validation — only this third synchronize was hit
by what looks like a runner-side flake. Pushing an empty commit to
trigger a fresh run.
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 8, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant