Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
352 commits
Select commit Hold shift + click to select a range
f203993
chore(release): bump version to 2.9.14
slapiar Apr 28, 2026
24d1191
changelog zmien
slapiar Apr 28, 2026
93510ac
fix(rendering): stabilize shared page frame for viewer and editor
slapiar Apr 28, 2026
4b9fa03
chore(release): bump version to 2.9.15
slapiar Apr 28, 2026
956a09e
fix(rendering): add navbar offset fallback for non-table pages
slapiar Apr 28, 2026
44f0f89
chore(release): bump version to 2.9.16
slapiar Apr 28, 2026
8abf006
vyhodenie nadbytočného ukončovania php v 1. riadku file.editor.php
slapiar Apr 28, 2026
3291281
chore(release): bump version to 2.9.17
slapiar Apr 28, 2026
262ce75
fix(editor): include csrf token in save request
slapiar Apr 28, 2026
c4e7a93
2.9.18 = editor token fix, basic text editor save works, advanced edi…
slapiar Apr 28, 2026
08a25cc
chore(release): bump version to 2.9.18
slapiar Apr 28, 2026
39188dc
docs(status): add stabilization checkpoint for 2.9.18
slapiar Apr 28, 2026
40861d8
docs(test): add smoke test checklist for 2.9.19
slapiar Apr 28, 2026
9c19181
The documentation audit and structure proposa
slapiar Apr 28, 2026
81a2d68
docs(cleanup): archive obsolete refactor documentation
slapiar Apr 28, 2026
79c1363
docs(roadmap): add DREMONT development roadmap
slapiar Apr 28, 2026
5e01db5
feat(admin): add integrated read-only user administration page
slapiar Apr 28, 2026
b8ee70b
chore(release): bump version to 2.9.20
slapiar Apr 28, 2026
0086fab
feat(admin): add integrated read-only user administration page
slapiar Apr 28, 2026
7486efc
Úloha: opraviť prístup k integrovanej Správe používateľov iba pre adm…
slapiar Apr 28, 2026
8fc8ddd
oprava prístupu pre admin
slapiar Apr 28, 2026
e1e9d25
chore(release): bump version to 2.9.21
slapiar Apr 28, 2026
e78ecac
docs(security): note future user storage hardening
slapiar Apr 28, 2026
b52f317
feat(admin): add user administration modal framework
slapiar Apr 28, 2026
187e603
chore(release): bump version to 2.9.22
slapiar Apr 28, 2026
b4eaeb7
fix(admin): repair user administration renderer syntax
slapiar Apr 28, 2026
fe08989
fix(admin): enable user administration modal actions
slapiar Apr 28, 2026
9b8b74c
fix(admin): enable user administration modal actions
slapiar Apr 28, 2026
f46d70b
fix(grid): make thumbnails clickable in grid view
slapiar Apr 28, 2026
310c7d1
feat(admin): add delete confirmation UI to user modal
slapiar Apr 28, 2026
d6ff721
agent
slapiar Apr 28, 2026
30fb355
chore(release): bump version to 2.9.24
slapiar Apr 28, 2026
0d38112
feat(admin): add delete confirmation UI to user edit modal
slapiar Apr 28, 2026
671c661
Revert "fix(grid): make thumbnails clickable in grid view"
slapiar Apr 28, 2026
3f73ead
Revert "agent"
slapiar Apr 28, 2026
384c892
chore(release): bump version to 2.9.25
slapiar Apr 28, 2026
03f5d19
Add protected file manager API endpoint
slapiar Jun 7, 2026
c38a672
Add API config sample
slapiar Jun 7, 2026
85ac010
Add API core loader with separate API config support
slapiar Jun 7, 2026
c359cdf
Make API endpoint load API core
slapiar Jun 7, 2026
40bcadd
Fix release script clean tree check
slapiar Jun 7, 2026
9ee49a7
Ignore RELEASE_VERSION when checking release cleanliness
slapiar Jun 7, 2026
db1e0d6
Update API configuration loading
slapiar Jun 7, 2026
615566c
joyee-bridge
slapiar Jun 7, 2026
6c3a938
Release 2.9.27
slapiar Jun 7, 2026
4ff9b6d
--include-local-config release
slapiar Jun 7, 2026
d338a11
Isolate Joyee bridge workspace
slapiar Jun 7, 2026
85787e6
Release 2.9.28
slapiar Jun 7, 2026
745332a
číslo verzie v logine a fix pre .docx view
slapiar Jun 7, 2026
04dbc65
Release 2.9.29
slapiar Jun 7, 2026
d258eb6
Zobrazovanie .docx
slapiar Jun 7, 2026
b66771e
Release 2.9.30
slapiar Jun 7, 2026
6b93ae0
fix(viewer): route Open for office files to viewer URL
slapiar Jun 7, 2026
53e6088
Release 2.9.31
slapiar Jun 7, 2026
e2948fa
Include private config files in release builds
slapiar Jun 7, 2026
75ce8d1
Release 2.9.30
slapiar Jun 7, 2026
a809543
Release 2.9.32
slapiar Jun 7, 2026
269619b
Session pre ChatGPT
slapiar Jun 7, 2026
19b3875
Release 2.9.33
slapiar Jun 7, 2026
c5b4c9e
Add Joyee machine token login and align user role mappings
slapiar Jun 7, 2026
2f201a5
Release 2.10.01
slapiar Jun 7, 2026
5979576
Oprava adresára pre Joyee
slapiar Jun 7, 2026
ddbf3d9
Pridal som generátor do generate-chatgpt-source.php:1
slapiar Jun 7, 2026
6248840
Changes
slapiar Jun 7, 2026
cfa71b7
Release 2.10.02
slapiar Jun 7, 2026
2c87b8a
joyee probe
slapiar Jun 7, 2026
12faa20
nové hash joyee
slapiar Jun 7, 2026
9dd57d5
hash joyee
slapiar Jun 7, 2026
d0f79bf
Release 2.10.03
slapiar Jun 7, 2026
a8925e4
feat: add OpenAI assistant API and in-app AI browser
slapiar Jun 7, 2026
1cb4ad9
Zápis/delete/edit AI Asistent
slapiar Jun 7, 2026
27d11c5
Release 2.10.04
slapiar Jun 7, 2026
474ca68
Merge upstream/master into master and resolve conflicts
slapiar Jun 8, 2026
782ef56
Komunikácia medzi užívateľmi
slapiar Jun 8, 2026
e4f687a
Komunikujme kolegovia
slapiar Jun 8, 2026
f87e292
Release 2.11.0
slapiar Jun 8, 2026
bf4eda7
Oprava cklick handler bootstrap
slapiar Jun 8, 2026
33f7c9b
Release 2.11.0
slapiar Jun 8, 2026
7f46a7f
Release 2.11.1
slapiar Jun 8, 2026
1ec5151
Spravil som ďalšiu opravu, aby klik na odznak reagoval aj v prípade, …
slapiar Jun 8, 2026
187bf01
Release 2.11.2
slapiar Jun 8, 2026
2419c28
Blikanie odznaku volajúceho a popup
slapiar Jun 8, 2026
f7d8827
Release 2.11.3
slapiar Jun 8, 2026
a6203d8
Blik a popup volajúceho
slapiar Jun 8, 2026
7c63a14
Stránka POMOC
slapiar Jun 8, 2026
b90c0b5
Release 2.11.4
slapiar Jun 8, 2026
3cfdd63
Oprava syntaxe
slapiar Jun 8, 2026
7eff738
Oprava smerovania Pomoc
slapiar Jun 8, 2026
6e35680
OPrava adresovania
slapiar Jun 8, 2026
87396b1
Adresovanie
slapiar Jun 8, 2026
b0269a7
Verzia 2.11.04
slapiar Jun 8, 2026
d293179
Príručka v MD prehliadači
slapiar Jun 8, 2026
993bb55
Release 2.11.5
slapiar Jun 8, 2026
ad99aeb
docs: complete Slovak translation of TinyFileManager wiki (UTF-8)
slapiar Jun 8, 2026
dc98d3e
Release 2.11.6
slapiar Jun 8, 2026
856fadd
úprava asdresovania wiki
slapiar Jun 8, 2026
f3eb5ca
Teraz sa bezpečne povoľujú aj lokálne odkazy, ktoré používa INDEX_SK.md
slapiar Jun 8, 2026
416df49
fix: make local help_doc links in markdown clickable again
slapiar Jun 8, 2026
f5482df
oto opravím tak, aby Help/Wiki niesli informáciu o aktuálnej ceste a …
slapiar Jun 8, 2026
f6d32cf
logická úprava index_sk
slapiar Jun 8, 2026
ba4aa7f
fix: improve wiki chapter navigation and help close behavior
slapiar Jun 8, 2026
3c57b07
chore: localize wiki chapter navigation labels to Slovak
slapiar Jun 8, 2026
29da4e9
Release 2.11.7
slapiar Jun 8, 2026
ae60be2
docs: add Slovak chapter for project-specific extensions
slapiar Jun 8, 2026
351bb54
Release 2.11.8
slapiar Jun 8, 2026
fe76a6a
Pridanie autora do wiki
slapiar Jun 8, 2026
9120f4e
Autori a preklady
slapiar Jun 8, 2026
4b8ead1
Index_sk preklad zoznamu kapitol
slapiar Jun 8, 2026
cf3a061
feat: implement admin user save/delete with config.php persistence
slapiar Jun 8, 2026
d1f64cf
feat: add admin user audit log for save/delete actions
slapiar Jun 8, 2026
625612b
feat: show admin user audit log in user management page
slapiar Jun 8, 2026
44b7b89
feat: add audit filters in admin user management
slapiar Jun 8, 2026
7c9cbe0
feat: add audit filter reset and CSV export
slapiar Jun 8, 2026
baf8f76
Release 2.11.9
slapiar Jun 8, 2026
db7a7b6
Správa užívateľov 1
slapiar Jun 8, 2026
0c42b47
Release 2.11.10
slapiar Jun 8, 2026
ff16c90
fix: execute injected modal scripts to prevent save redirect
slapiar Jun 8, 2026
66ed44b
Release 2.11.11
slapiar Jun 8, 2026
ebe91cf
fix: prevent admin user modal save from falling back to home submit
slapiar Jun 8, 2026
f27bac0
Release 2.11.12
slapiar Jun 8, 2026
6d8b4ab
fix: harden admin users JS handlers for broader browser compatibility
slapiar Jun 8, 2026
7dc71be
Rename admin users renderer and update include path
slapiar Jun 8, 2026
1837a71
Release 2.11.13
slapiar Jun 8, 2026
87cf785
Fix admin save flow fallback and persist note in audit
slapiar Jun 8, 2026
bbcbd8e
Release 2.11.14
slapiar Jun 8, 2026
3271b2c
Harden admin config array updates for varied config formats
slapiar Jun 8, 2026
af44107
Persist per-user admin notes independently of roles
slapiar Jun 8, 2026
4f8b48b
Enforce admin-only user management and full admin privileges
slapiar Jun 8, 2026
5344aaf
Release 2.11.15
slapiar Jun 8, 2026
fa19ab8
Load admin modal edit defaults from live config
slapiar Jun 8, 2026
a51fa07
Add login password visibility toggle
slapiar Jun 8, 2026
2cdcf71
Add CLI user password reset generator
slapiar Jun 8, 2026
21a2062
Fix reset script hash replacement and preserve config sections
slapiar Jun 8, 2026
db0f71e
Reset non-admin user passwords to initial /01 pattern
slapiar Jun 8, 2026
ef7dd18
Release 2.11.16
slapiar Jun 8, 2026
019e9d5
Fix self-service password change for all authenticated users
slapiar Jun 8, 2026
973029d
Vymazanie starých release
slapiar Jun 8, 2026
d10add7
Release 2.11.17
slapiar Jun 8, 2026
5c7b125
Fix config write path to preserve bcrypt hashes
slapiar Jun 8, 2026
cb06bae
Add explicit profile/change-password link in user menu
slapiar Jun 8, 2026
127ad20
Release 2.11.18
slapiar Jun 8, 2026
b2f46e1
Always show change-password section for logged users
slapiar Jun 8, 2026
e02c69f
Release 2.11.19
slapiar Jun 8, 2026
843eb20
Zadanie nového hesla užívateľom
slapiar Jun 8, 2026
20f032a
Release 2.11.20
slapiar Jun 8, 2026
7e46025
Store profile settings in root user config directory
slapiar Jun 8, 2026
22684f6
Release 2.11.21
slapiar Jun 8, 2026
5c99b2f
Harden profile settings storage and error reporting
slapiar Jun 8, 2026
2fb94b1
Trápenie so zmenou údajov v profile
slapiar Jun 8, 2026
f8884bd
Release 2.11.22
slapiar Jun 8, 2026
de062e5
Allow settings save for all authenticated users
slapiar Jun 8, 2026
ef42995
Release 2.11.23
slapiar Jun 8, 2026
ac3b074
Use release version for frontend asset cache busting
slapiar Jun 8, 2026
9298f19
Release 2.12.0
slapiar Jun 8, 2026
5ffee2c
Add configurable fallback logging with live settings status
slapiar Jun 9, 2026
6968ee0
Release 2.12.1
slapiar Jun 9, 2026
6ef44a3
Fix settings CSRF submission robustness
slapiar Jun 9, 2026
55cb68c
Release 2.12.2
slapiar Jun 9, 2026
06deefd
Localize fallback UI messages and add UI modernization mandate
slapiar Jun 9, 2026
c37b46e
Add modern visual baseline stylesheet for file manager UI
slapiar Jun 9, 2026
aaf5ace
modernizácia vzhľadu
slapiar Jun 9, 2026
9d19120
Refine mobile spacing and toolbar contrast for file list
slapiar Jun 9, 2026
27f42e8
Release 2.12.3
slapiar Jun 9, 2026
54d98d2
Tighten action icon spacing and render owner as compact badge
slapiar Jun 9, 2026
5c1ccc5
Release 2.12.4
slapiar Jun 9, 2026
09e6c48
Keep action icons horizontal and align owner badge with chat style
slapiar Jun 9, 2026
b72fbec
Add app-level file ownership metadata and chat unread inbox badge
slapiar Jun 9, 2026
dfdad98
Add owner source filter for app vs system ownership
slapiar Jun 9, 2026
d6a3d93
Add App/System owner count badges beside owner filter
slapiar Jun 9, 2026
5a55d53
Make owner count badges clickable filter shortcuts
slapiar Jun 9, 2026
2b76381
Release 2.12.5
slapiar Jun 9, 2026
ed54104
Fix action icon row layout and restore list-grid toggle
slapiar Jun 9, 2026
3d81ead
Release 2.12.6
slapiar Jun 9, 2026
fdd8e19
Keep System owner and show last editor badge after updates
slapiar Jun 9, 2026
cfcb673
Force horizontal action icons with tighter spacing
slapiar Jun 9, 2026
77ea77f
Use floating row action popup in list view
slapiar Jun 9, 2026
d14e46c
Add hover delay for floating list actions panel
slapiar Jun 9, 2026
5e1ecd7
Release 2.12.7
slapiar Jun 9, 2026
279a09b
Enhance floating actions with create shortcut and action notes
slapiar Jun 9, 2026
4e18f1e
Ignore local VS Code settings file
slapiar Jun 9, 2026
73f06e7
Release 2.12.8
slapiar Jun 9, 2026
a6641b7
Refine action note wording, timestamp, and typography
slapiar Jun 9, 2026
03d6dc8
Release 2.12.9
slapiar Jun 9, 2026
900aad5
modernizácia lišty hromadných akcií v pätičke zoznamu súborov
slapiar Jun 9, 2026
7947236
Release 2.12.10
slapiar Jun 9, 2026
e394f3f
Skvelé, teší ma že to prináša hodnotu.
slapiar Jun 9, 2026
5d13921
Centralize action labels with i18n and file/folder create wording
slapiar Jun 9, 2026
cf90803
Add Slovak Action* labels for owner action notes
slapiar Jun 9, 2026
15fa490
Bez zmeny
slapiar Jun 9, 2026
5e38701
Propagate owner metadata updates across file operation flows
slapiar Jun 9, 2026
958cdf1
Release 2.12.11
slapiar Jun 9, 2026
8ae71b0
Release 2.12.12
slapiar Jun 9, 2026
6f3d482
Release 2.12.13
slapiar Jun 9, 2026
e3e9790
Load app version from RELEASE_VERSION
slapiar Jun 9, 2026
c1bb8aa
Release 2.12.14
slapiar Jun 9, 2026
bae6a77
feat: persist runtime state and add admin runtime reset
slapiar Jun 9, 2026
1fa433b
Release 2.12.15
slapiar Jun 9, 2026
52b7ae3
Tlačidlo na presun súboru/priečinka
slapiar Jun 9, 2026
40ba02f
Kontrola zabezpečenia proti presunu súborov/priečinkov mimo pridelený…
slapiar Jun 9, 2026
80977cb
doplnený výber intervalov v zozname pomocou CTRL a Shift
slapiar Jun 9, 2026
a1faefb
Release 2.12.16
slapiar Jun 9, 2026
f2c9302
feat: add normal/compact list density setting
slapiar Jun 9, 2026
a777562
fix: improve mobile footer bars and list navigation UX
slapiar Jun 9, 2026
19d4c87
Release 2.12.17
slapiar Jun 9, 2026
b5a0de8
Zmenšenie riadkovania
slapiar Jun 9, 2026
d5d3ef2
Doladenie
slapiar Jun 9, 2026
efe8071
ui: dark-theme brand logo swap and navbar logo styling
slapiar Jun 9, 2026
fe2036c
Release 2.12.18
slapiar Jun 9, 2026
8aa06e2
fix(ui): isolate legacy table CSS and robust dark logo asset path
slapiar Jun 9, 2026
3b7c061
Release 2.12.19
slapiar Jun 9, 2026
1529f35
Vytvorenie celistvej triedy vzhľadu témy
slapiar Jun 9, 2026
bbe111d
Druhý krok k zjednoteniu triedy zobrazovania
slapiar Jun 9, 2026
9c14541
Release 2.12.20
slapiar Jun 9, 2026
2bc155b
refactor(ui): finalize clean listing table styling
slapiar Jun 9, 2026
2d261c0
Release 2.12.21
slapiar Jun 9, 2026
f3917ee
fix(ui): use hosted dark logo asset
slapiar Jun 9, 2026
f400af2
Release 2.12.22
slapiar Jun 9, 2026
dc260ba
style(ui): finalize navbar theme/logo and modern header polish
slapiar Jun 9, 2026
ab0ef48
Release 2.12.23
slapiar Jun 9, 2026
d22d38a
Release 2.12.24
slapiar Jun 9, 2026
2de160e
chore(css): fix syntax and reduce theme override conflicts
slapiar Jun 9, 2026
aa96705
Výmaz nepotrebných release
slapiar Jun 9, 2026
96d3001
Pred otvorením novej major release 3.0.0.
slapiar Jun 9, 2026
bd1e8f4
Release 3.0.0
slapiar Jun 9, 2026
89158d2
Oprava chyby pri ukladaní úpravy názvu súboru
slapiar Jun 9, 2026
fb56097
Zmena vizuálu header, Zmenšiť písmo, predĺžiť vyhľadávaciu lištu
slapiar Jun 9, 2026
158bd44
Zmena vizuálu hlavičky 2
slapiar Jun 9, 2026
f29938c
Release 3.0.1
slapiar Jun 9, 2026
9c12100
Úprava vyhľadávacej lišty
slapiar Jun 9, 2026
82283c4
Release 3.0.2
slapiar Jun 9, 2026
54e217e
Fix: Vyhľadávanie
slapiar Jun 9, 2026
88fea36
fix(search): make navbar search icon actionable and resilient
slapiar Jun 9, 2026
efe7ad1
Release 3.0.3
slapiar Jun 9, 2026
df5524a
Release 3.0.4
slapiar Jun 9, 2026
2ac29f3
fix(search): make navbar icon trigger recursive folder search
slapiar Jun 9, 2026
48b90a3
Release 3.0.5
slapiar Jun 9, 2026
920d146
Search scan files
slapiar Jun 9, 2026
f1d29ed
Search zobrazenie
slapiar Jun 9, 2026
be90495
feat(search): render recursive results with path-aware table
slapiar Jun 9, 2026
5314a9f
Release 3.0.6
slapiar Jun 9, 2026
b4a8945
Motanica s UI/UX
slapiar Jun 11, 2026
f8e90b5
Release 3.0.8
slapiar Jun 11, 2026
b76aa6e
Vertikálne odsadenie sekcie tabuľky
slapiar Jun 11, 2026
5a8fed7
Úprava tabuľky o stĺpec stromu priečinkov
slapiar Jun 11, 2026
598d228
Úprava štýlu stlpca priecinkov
slapiar Jun 11, 2026
1719994
Rozsiahle úpravy vo vyhľadávaní
slapiar Jun 11, 2026
70013e6
Release 3.0.9
slapiar Jun 11, 2026
2d98ab0
Vyhľadávanie Stále nič
slapiar Jun 11, 2026
ec3ef64
Toto presne ukáže, čo je alebo nie je v SQL indexe, takže vieme okamž…
slapiar Jun 11, 2026
186a0ee
Release 3.0.10
slapiar Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Quality

on:
push:
branches:
- master
pull_request:
workflow_dispatch:

jobs:
test-and-scan:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: none
tools: composer:v2

- name: Validate Composer configuration
run: composer validate --strict

- name: Install dependencies
run: composer install --no-interaction --prefer-dist

- name: Run dependency audit
run: composer audit

- name: PHP syntax check
run: find src tests -name '*.php' -print0 | xargs -0 -n1 php -l

- name: Run unit tests
run: composer test:unit

- name: Run integration tests
run: composer test:integration

- name: Run static analysis
run: composer analyze

- name: Run coding standards
run: composer lint

- name: Run performance benchmark
run: php tests/performance/benchmark.php --format=github

- name: Build Docker image
run: docker build -t tinyfilemanager:test .

- name: Run smoke checks in container
run: |
docker run -d --rm --name tinyfilemanager-ci -p 8080:8080 tinyfilemanager:test
./tests/smoke-tests.sh http://127.0.0.1:8080

- name: Stop test container
if: always()
run: docker stop tinyfilemanager-ci || true
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated release archives
releases/tinyfilemanager-*.zip

# Runtime uploads and ad-hoc local test files
uploads/
.fm_usercfg/*.json
.fm_usercfg/*.sqlite
!.fm_usercfg/.htaccess

# Local Joyee bridge secrets (server-only)
joyee-bridge.config.php

# Generated ChatGPT source manifest with live machine token
chatgpt-source-joyee.md

# Local VS Code user settings (machine-specific)
.vscode/settings.json
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Changelog

## [Unreleased]

### Added
- Added integrated read-only user administration page via `?admin_users=1`.
- Added admin-only modal framework for future New/Edit user actions.
- Added one-time migration helper `scripts/migrate-legacy-state.php` with `dry-run` and `--apply` modes.

### Changed
- User overview now lists access type, auth status, assigned directories and configuration notes.
- Access to the user administration page and navigation link is now restricted to the `admin` user only (not `manager_users`).
- Runtime state storage is now configurable via `$state_storage_path` in `config.php`.
- Internal runtime records (online users, chat DB, owner metadata, audit and fallback log, per-user settings) now use a persistent state directory.
- Authentication and online-user tracking were hardened to remove stale user markers when a session account changes.
- Documentation updated for release/deploy flow to include runtime-state migration and verification.

### Removed
- Removed operational dependency on app-local `.fm_usercfg` as the primary runtime state location.

### Breaking changes
- Visual baseline is now aligned with the modern theme layer.
- Some legacy CSS override rules were narrowed or removed to reduce cascade conflicts.
- Custom theme overrides may need revalidation after deploy.

### Migration notes
- Back up `config.php`, `api.config.php`, custom assets, and local patches before deploy.
- Deploy the new release package and verify file ownership/permissions in the target environment.
- Clear browser cache and any reverse proxy or CDN cache.
- Run smoke tests for login/logout, theme switch, listing density, selection/bulk move, upload, rename, copy/move, delete, and file preview/editor.
- Verify path-boundary behavior for move/copy operations and confirm readonly/upload-only modes.
- Review PHP and web server logs after deploy and check browser console for front-end regressions.

### Notes
- User listing remains read-only; modal content is loaded only on admin action.
- No `config.php` write is performed in user administration phase.
63 changes: 63 additions & 0 deletions DEPLOYMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Deployment Guide

This project now includes a complete Phase 5 delivery set: integration tests, performance benchmark, CI quality workflow, container smoke checks, and deployment runbooks.

## Deployment Targets

- Docker container on Linux host
- Linux VPS with PHP 8.0+
- Shared hosting with PHP 8.0+

## Local Validation

Run the full quality gate before deployment:

```bash
composer install
composer test:unit
composer test:integration
composer analyze
composer lint
php tests/performance/benchmark.php
docker build -t tinyfilemanager:test .
docker run -d --rm --name tinyfilemanager-test -p 8080:8080 tinyfilemanager:test
./tests/smoke-tests.sh http://127.0.0.1:8080
./tests/health-check.sh http://127.0.0.1:8080
docker stop tinyfilemanager-test
```

## Docker Deployment

```bash
docker build -t tinyfilemanager:latest .
docker compose up -d --build
./tests/health-check.sh http://127.0.0.1:8080
```

Notes:
- The container runs as a non-root user.
- The application listens on port 8080 inside the container.
- Persist data with a bind mount or named volume.

## Rollback

```bash
docker compose down
git checkout <last-known-good-tag>
docker compose up -d --build
./tests/health-check.sh http://127.0.0.1:8080
```

## Release Checklist

- Unit and integration suites pass
- Benchmark stays within targets
- Docker image builds successfully
- Smoke and health checks pass
- Configured credentials are not defaults
- Data backup completed before rollout
- Runtime state path is persistent (`$state_storage_path` in `config.php`)
- Legacy runtime data migration script executed when needed:
- `php scripts/migrate-legacy-state.php`
- `php scripts/migrate-legacy-state.php --apply`
- Runtime state files verified in target directory (`uploads/.tfm-state`)
76 changes: 76 additions & 0 deletions DOCS_AUDIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Documentation Audit and Structure Proposal

## 1. Audit of All Markdown Files

| File | Purpose / Content Summary | Status | Recommendation |
|-----------------------------|----------------------------------------------------------------------------------------|----------------|-----------------------|
| README.md | Main project overview, usage, requirements, demo links. | Active | KEEP (root) |
| PROJECT_STATUS.md | High-level project status, phase summary, quick start, links to phase docs. | Active | KEEP (root) |
| CHANGELOG.md | Changelog, recent removals, and changes. | Active | KEEP (root) |
| DEPLOYMENT.md | Deployment guide, validation, Docker, and CI instructions. | Active | KEEP (root) |
| SECURITY.md | Security policy and vulnerability disclosure process. | Active | KEEP (root) |
| SMOKE_TEST_2.9.19.md | Manual smoke test checklist for version 2.9.19. | Active | KEEP (root) |
| TEST_RESULTS.md | Phase 4 security test results, coverage, and summary. | Historical | ARCHIVE |
| Structure.md | Repository structure overview (tree format). | Historical | ARCHIVE |
| REFACTORING.md | Security refactoring project summary, phase completion, and code/test stats. | Historical | ARCHIVE |
| PHASE2_README.md | Phase 2: Modularization, new structure, and bootstrap details. | Historical | ARCHIVE |
| PHASE3_README.md | Phase 3: Router & Middleware, architecture, and router features. | Historical | ARCHIVE |
| PHASE4_PLAN.md | Phase 4: Security testing plan, objectives, and test categories. | Historical | ARCHIVE |
| PHASE4_PROGRESS.md | Phase 4: Security testing progress, completed infrastructure, and test coverage. | Historical | ARCHIVE |
| PHASE4_COMPLETE.md | Phase 4: Completion summary, delivered components, and test suite overview. | Historical | ARCHIVE |
| PHASE5_PLAN.md | Phase 5: Integration testing, deployment, and CI/CD plan. | Historical | ARCHIVE |

## 2. Classification
- **Active Docs (should remain in root):**
- README.md
- PROJECT_STATUS.md
- CHANGELOG.md
- DEPLOYMENT.md
- SECURITY.md
- SMOKE_TEST_2.9.19.md
- **Historical/Phase/Refactor Docs (should be archived):**
- TEST_RESULTS.md
- Structure.md
- REFACTORING.md
- PHASE2_README.md
- PHASE3_README.md
- PHASE4_PLAN.md
- PHASE4_PROGRESS.md
- PHASE4_COMPLETE.md
- PHASE5_PLAN.md

## 3. Proposed Documentation Structure

```
/ (root)
├── README.md
├── PROJECT_STATUS.md
├── CHANGELOG.md
├── DEPLOYMENT.md
├── SECURITY.md
├── SMOKE_TEST_2.9.19.md
└── docs/
└── archive/
└── refactor-history/
├── TEST_RESULTS.md
├── Structure.md
├── REFACTORING.md
├── PHASE2_README.md
├── PHASE3_README.md
├── PHASE4_PLAN.md
├── PHASE4_PROGRESS.md
├── PHASE4_COMPLETE.md
└── PHASE5_PLAN.md
```

- **Active docs**: Only current, user-facing, and operational documentation in the root.
- **Archive**: All phase, refactoring, and historical docs in `docs/archive/refactor-history/`.

## 4. Notes
- No files have been moved, deleted, or modified yet. This is an audit and proposal only.
- All phase and refactoring docs are valuable for historical reference but should not clutter the root.
- The archive structure allows for easy access to project history while keeping the main directory clean.

---

*Prepared by GitHub Copilot — Documentation Audit, [date auto-inserted on save]*
37 changes: 20 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
# how to build?
# docker login
## .....input your docker id and password
#docker build . -t tinyfilemanager/tinyfilemanager:master
#docker push tinyfilemanager/tinyfilemanager:master
# docker build -t tinyfilemanager/tinyfilemanager:master .

# how to use?
# docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
FROM php:8.3-cli-alpine AS runtime

FROM php:7.4-cli-alpine
RUN apk add --no-cache curl libzip-dev oniguruma-dev \
&& docker-php-ext-install zip

# if run in China
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
WORKDIR /var/www/html

RUN apk add --no-cache \
libzip-dev \
oniguruma-dev
COPY tinyfilemanager.php ./tinyfilemanager.php
COPY index.php ./index.php
COPY config.php ./config.php
COPY src ./src
COPY translation.json ./translation.json
COPY KatalogMD.webp ./KatalogMD.webp

RUN docker-php-ext-install \
zip
RUN addgroup -S tfm && adduser -S -G tfm tfm \
&& mkdir -p /var/www/html/data /var/www/html/uploads \
&& chown -R tfm:tfm /var/www/html

WORKDIR /var/www/html
USER tfm

EXPOSE 8080

COPY tinyfilemanager.php index.php
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD curl -fsS http://127.0.0.1:8080/ >/dev/null || exit 1

CMD ["sh", "-c", "php -S 0.0.0.0:80"]
CMD ["php", "-S", "0.0.0.0:8080", "-t", "/var/www/html"]
1 change: 1 addition & 0 deletions Joyee/ai-write-test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
assistant_apply works
1 change: 1 addition & 0 deletions Joyee/ops-demo/confirm2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
two
1 change: 1 addition & 0 deletions Joyee/ops-demo/nested/deeper/a.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hello
Binary file added KatalogMD.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading