Skip to content

Commit 69ec103

Browse files
authored
docs: refresh README + wiki links (install, security, backups, env vars)
1 parent 7d2cb98 commit 69ec103

1 file changed

Lines changed: 76 additions & 8 deletions

File tree

README.md

Lines changed: 76 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@
1414
**FileRise** is a self-hosted web file manager with WebDAV, sharing, and per-folder ACLs.
1515
Drag & drop uploads, OnlyOffice integration, and **optional folder-level encryption at rest** — all in one PHP app you control.
1616

17+
Built for homelabs, teams, and client portals that need fast browsing, strict ACLs, and zero-database simplicity.
18+
19+
## Table of contents
20+
21+
- [Quick links](#quick-links)
22+
- [Install (Docker – recommended)](#install-docker--recommended)
23+
- [Manual install (PHP web server)](#manual-install-php-web-server)
24+
- [Data & backups](#data--backups)
25+
- [First-run security checklist](#first-run-security-checklist)
26+
- [Optional dependencies](#optional-dependencies)
27+
- [WebDAV & ONLYOFFICE (optional)](#webdav--onlyoffice-optional)
28+
- [Security & updates](#security--updates)
29+
- [Community, support & contributing](#community-support--contributing)
30+
- [AI Disclosure](#ai-disclosure)
31+
- [License & third-party code](#license--third-party-code)
32+
- [Press](#press)
33+
1734
- 💾 **Self-hosted “cloud drive”** – Runs anywhere with PHP (or via Docker). No external database required.
1835
- 🔐 **Granular per-folder ACLs** – Manage View (all/own), Upload, Create, Edit, Rename, Move, Copy, Delete, Extract, Share, and more — all enforced consistently across the UI, API, and WebDAV.
1936
- 🔐 **Folder-level encryption at rest (optional)** – Encrypt entire folders (and all descendants) on disk using modern authenticated encryption.
@@ -30,7 +47,7 @@ Drag & drop uploads, OnlyOffice integration, and **optional folder-level encrypt
3047
- 🧩 **OnlyOffice support (optional)** – Edit DOCX/XLSX/PPTX using your own Document Server; ODT/ODS/ODP supported as well. PDFs can be viewed inline.
3148
- 🌍 **WebDAV (ACL-aware)** – Mount FileRise as a drive from macOS, Windows, Linux, or Cyberduck/WinSCP. Listings, uploads, overwrites, deletes, and folder creation all honor the same ACLs as the web UI.
3249
- 🏷️ **Tags, search & trash** – Tag files, search by name/tag/uploader/content via fuzzy search, and recover mistakes using a Trash with time-based retention.
33-
- 📚 **API + live docs** – OpenAPI spec (`openapi.json`) plus an embedded Redoc viewer (`api.html`) for exploring endpoints.
50+
- 📚 **API + live docs** – OpenAPI spec served at `api.php?spec=1` (from `openapi.json.dist`) with a Redoc UI at `api.php` (login required).
3451
- 📊 **Storage / disk usage summary** – CLI scanner with snapshots, total usage, and per-volume breakdowns surfaced in the admin panel.
3552
- 🎨 **Polished, responsive UI** – Dark/light mode, mobile-friendly layout, in-browser previews, and a built-in code editor powered by CodeMirror.
3653
- 🌐 **Internationalization** – English, Spanish, French, German, Polish, Russian, Japanese and Simplified Chinese included; community translations welcome.
@@ -39,6 +56,7 @@ Drag & drop uploads, OnlyOffice integration, and **optional folder-level encrypt
3956
- 🌐 **Reverse proxy & subpath aware** – Designed to run cleanly behind Nginx, Traefik, Caddy, or Apache:
4057
- Supports installs under a subpath (e.g. `https://example.com/files`)
4158
- Correct URL generation for assets, APIs, portals, PWA, and share links
59+
- If the proxy strips the prefix, set `FR_BASE_PATH` or send `X-Forwarded-Prefix`
4260
- Explicit “Published URL” setting for proxy / firewall environments
4361
- Works with `X-Forwarded-*` headers and Kubernetes ingress setups
4462
- 👥 **Pro: user groups, client portals, global search, storage explorer & audit logs**
@@ -66,10 +84,20 @@ Full list of features: [Full Feature Wiki](https://github.com/error311/FileRise/
6684
## Quick links
6785

6886
- 🚀 **Live demo:** [Demo](https://demo.filerise.net) (username: `demo` / password: `demo`)
87+
- 🧩 **FileRise Pro:** [filerise.net](https://filerise.net)
6988
- 📚 **Docs & Wiki:** [Wiki](https://github.com/error311/FileRise/wiki)
7089
- [Features overview](https://github.com/error311/FileRise/wiki/Features)
71-
- [WebDAV](https://github.com/error311/FileRise/wiki/WebDAV)
90+
- [Installation & setup](https://github.com/error311/FileRise/wiki/Installation-Setup)
91+
- [Common env vars](https://github.com/error311/FileRise/wiki/Common-Env-Variables)
92+
- [Env vars (full reference)](https://github.com/error311/FileRise/wiki/Environment-Variables-Full-Reference)
93+
- [WebDAV (mount)](https://github.com/error311/FileRise/wiki/WebDAV)
94+
- [WebDAV via curl](https://github.com/error311/FileRise/wiki/Accessing-FileRise-via-curl%C2%A0(WebDAV))
7295
- [ONLYOFFICE](https://github.com/error311/FileRise/wiki/ONLYOFFICE)
96+
- [OIDC & SSO](https://github.com/error311/FileRise/wiki/OIDC-and-SSO)
97+
- [Nginx setup](https://github.com/error311/FileRise/wiki/Nginx-Setup)
98+
- [Kubernetes / k8s](https://github.com/error311/FileRise/wiki/Kubernetes---k8s-deployment)
99+
- [Backup & restore](https://github.com/error311/FileRise/wiki/Backup-and-Restore)
100+
- [Reverse proxy & subpath](https://github.com/error311/FileRise/wiki/Reverse-Proxy-and-Subpath)
73101
- 🐳 **Docker image:**
74102
- Docker Hub: [Docker](https://hub.docker.com/r/error311/filerise-docker)
75103
- Build pipeline / tags: [Workflow](https://github.com/error311/filerise-docker)
@@ -91,7 +119,7 @@ If you open an issue/discussion, please include:
91119

92120
The easiest way to run FileRise is the official Docker image.
93121

94-
> **Tip:** For stability, pin a version tag (example: `error311/filerise-docker:v2.10.5`) instead of `:latest`.
122+
> **Tip:** For stability, pin a version tag (example: `error311/filerise-docker:vX.Y.Z`) instead of `:latest`. See [Releases](https://github.com/error311/FileRise/releases) for current versions.
95123
96124
### Option A – Quick start (docker run)
97125

@@ -119,7 +147,7 @@ http://your-server-ip:8080
119147

120148
On first launch you’ll be guided through creating the **initial admin user**.
121149

122-
> 💡 After the first run, you can set `CHOWN_ON_START="false"` if permissions are already correct and you don’t want a recursive `chown` on every start.
150+
> 💡 After the first run, you can set `CHOWN_ON_START="false"` if permissions are already correct and you don’t want a recursive `chown` on uploads/metadata on every start.
123151
>
124152
> ⚠️ **Uploads folder recommendation**
125153
>
@@ -146,7 +174,7 @@ services:
146174
SECURE: "false"
147175
PERSISTENT_TOKENS_KEY: "default_please_change_this_key"
148176
SCAN_ON_START: "true" # auto-index existing files on startup
149-
CHOWN_ON_START: "true" # fix permissions on uploads/users/metadata on startup
177+
CHOWN_ON_START: "true" # fix permissions on uploads/metadata on startup
150178
volumes:
151179
- ./uploads:/var/www/uploads
152180
- ./users:/var/www/users
@@ -166,16 +194,26 @@ docker compose up -d
166194
| `TIMEZONE` || `America/New_York` | PHP / container timezone. |
167195
| `TOTAL_UPLOAD_SIZE` || `10G` | Max total upload size per request; also used to set PHP/Apache upload limits. |
168196
| `SECURE` || `false` | `true` when running behind HTTPS / a reverse proxy, else `false`. |
169-
| `PERSISTENT_TOKENS_KEY` || `change_me_super_secret` | Secret used to sign “remember me” tokens. **Do not leave this at the default.** |
197+
| `PERSISTENT_TOKENS_KEY` || `change_me_super_secret` | Secret used to encrypt stored secrets (tokens, permissions, admin config). **Do not leave this at the default.** |
170198
| `SCAN_ON_START` | Optional | `true` | If `true`, runs a scan once on container start to index existing files. |
171-
| `CHOWN_ON_START` | Optional | `true` | If `true`, recursively `chown`s `uploads/`, `users/`, `metadata/` to `www-data`. |
199+
| `CHOWN_ON_START` | Optional | `true` | If `true`, recursively normalizes ownership/permissions on `uploads/` + `metadata/`. |
172200
| `PUID` | Optional | `99` | If running as root, remap `www-data` user to this UID (e.g. Unraid’s 99). |
173201
| `PGID` | Optional | `100` | If running as root, remap `www-data` group to this GID (e.g. Unraid’s 100). |
174202
| `FR_PUBLISHED_URL` | Optional | `https://example.com/files` | Public URL when behind proxies/subpaths (share links, portals, redirects). |
203+
| `FR_BASE_PATH` | Optional | `/files` | Force a subpath when the proxy strips the prefix (overrides auto-detect). |
175204
| `FR_TRUSTED_PROXIES` | Optional | `127.0.0.1,10.0.0.0/8` | Comma-separated IPs/CIDRs for trusted proxies; only these can supply the client IP header. |
176205
| `FR_IP_HEADER` | Optional | `X-Forwarded-For` | Header to trust for the real client IP when the proxy is trusted. |
177206

178207
> Full list of common env variables: [Common Environment variables](https://github.com/error311/FileRise/wiki/Common-Env-Variables)
208+
> Full reference: [Environment Variables (Full Reference)](https://github.com/error311/FileRise/wiki/Environment-Variables-Full-Reference)
209+
>
210+
> Other useful env vars (optional):
211+
> `FR_WEBDAV_MAX_UPLOAD_BYTES` (WebDAV upload cap in bytes; `0` = unlimited),
212+
> `FR_ENCRYPTION_MASTER_KEY` (32-byte key: hex or `base64:...`),
213+
> `VIRUS_SCAN_ENABLED` / `VIRUS_SCAN_CMD` / `CLAMAV_AUTO_UPDATE`,
214+
> `LOG_STREAM` (`error`/`access`/`both`/`none`),
215+
> `HTTP_PORT` / `HTTPS_PORT` / `SERVER_NAME`,
216+
> `SHARE_URL` (override share endpoint; `FR_PUBLISHED_URL` preferred).
179217
>
180218
> 🧩 **Traefik + subpath note (Kubernetes):** use `StripPrefix` and rely on `X-Forwarded-Prefix` + `FR_PUBLISHED_URL`.
181219
> See: [Deployments Wiki](https://github.com/error311/FileRise/wiki/Kubernetes---k8s-deployment)
@@ -238,13 +276,15 @@ sudo -u www-data touch /var/www/users/.write_test && echo OK
238276

239277
### Install from release ZIP (recommended)
240278

279+
Get the latest tag from [Releases](https://github.com/error311/FileRise/releases).
280+
241281
```bash
242282
cd /var/www
243283
sudo mkdir -p filerise
244284
sudo chown -R $USER:$USER /var/www/filerise
245285
cd /var/www/filerise
246286

247-
VERSION="v2.10.5" # replace with the tag you want
287+
VERSION="vX.Y.Z" # replace with the tag you want
248288
ASSET="FileRise-${VERSION}.zip"
249289

250290
curl -fsSL "https://github.com/error311/FileRise/releases/download/${VERSION}/${ASSET}" -o "${ASSET}"
@@ -283,6 +323,34 @@ composer install
283323

284324
---
285325

326+
## Data & backups
327+
328+
Back up these paths (Docker volumes or host directories):
329+
330+
- `/var/www/uploads` (file data)
331+
- `/var/www/users` (users, ACLs, admin config, Pro license)
332+
- `/var/www/metadata` (indexes, tags, logs)
333+
334+
Notes:
335+
- Logs live in `/var/www/metadata/log` and can be rotated or pruned.
336+
- Keep your `PERSISTENT_TOKENS_KEY` consistent when restoring backups.
337+
338+
## First-run security checklist
339+
340+
- Set a strong `PERSISTENT_TOKENS_KEY` (encrypts tokens, permissions, admin config).
341+
- Use HTTPS and set `SECURE="true"` when behind TLS/reverse proxy.
342+
- If behind a proxy, set `FR_TRUSTED_PROXIES` and `FR_IP_HEADER`.
343+
- Set `FR_PUBLISHED_URL` (and `FR_BASE_PATH` if needed) so share links are correct.
344+
345+
## Optional dependencies
346+
347+
- **FFmpeg** – video thumbnails (set `FR_FFMPEG_PATH` if not on PATH).
348+
- **ClamAV** – upload scanning (`VIRUS_SCAN_ENABLED=true`).
349+
- **PHP sodium (libsodium)** – required for encryption-at-rest.
350+
- **ONLYOFFICE Document Server** – document editing in the browser.
351+
352+
---
353+
286354
## WebDAV & ONLYOFFICE (optional)
287355

288356
### WebDAV

0 commit comments

Comments
 (0)