Repository navigation
Files
The Files page (Content in the navigation, admins only) is a file browser for the channel file repositories of a virtual server. Every channel has a file area of its own in TeamSpeak, the place the clients' Channel Files window shows. Here you browse it, upload to it, download from it, make folders, preview pictures, move files between channels and delete.
TeamSpeak's WebQuery has no file-transfer commands, so this page works over two other connections:
- The server connection's SSH ServerQuery credentials. Without them the page says so instead of listing anything — see Getting Started.
-
The server's file-transfer port (
30033by default), which has to be open to the backend. The listing travels over SSH, but the bytes of every upload and download go over this separate port. Listing can work while this port is closed; the transfers then fail with "Could not reach the file-transfer port" — see Deployment.
Pick a channel in the list on the left; its files appear on the right. Folders are listed first, then files alphabetically, with their size and the time they were last modified. The path above the list is clickable (/ is the top of the channel's area), the arrow goes one level up, and the counter shows how many items the folder holds. The listing is always fetched fresh, so an upload that finished while you were on another page shows up when you come back.
Point at a row and its buttons appear:
| Button | What it does |
|---|---|
| Preview (eye) | Shows a picture in a window; only on pictures, see below. |
| Download | Starts a download in your browser. On a folder it reads Download as ZIP. |
| Move to another channel | Files only. Pick the target channel; the file is moved on the TeamSpeak server itself, its bytes never pass through the manager. |
| Delete | After a confirmation. A folder is deleted with everything in it, and there is no undo. |
New Folder in the header makes a folder in the folder you are looking at. A name that TeamSpeak cannot store (empty, containing / or a backslash, . or .., longer than 255 bytes) is flagged before you can press Create.
Upload files opens the upload window, and so does dropping files or folders onto the file list. In the window you choose files, choose a folder, or drop more, and you look the list over before anything is sent: remove what you don't want, see how many files and how much data it is, and see empty folders marked. A folder keeps its structure when it is uploaded, and an empty folder is only taken along when the folder is dropped — the browser's folder picker reports files only.
- Names with umlauts or other non-ASCII characters are flagged. A TeamSpeak client may not be able to download such a file afterwards ("file not found"). The window offers to upload it under a plain ASCII name instead (ä becomes ae, ö oe, ü ue, ß ss), per file or for all at once, or to keep the name as it is. For a folder the choice covers the folder's own name and everything inside it. The background is in Troubleshooting.
-
The largest file is set by the
FILES_MAX_UPLOAD_MBenvironment variable (100 MB by default); the page prints the current limit under the list, and a file above it is not uploaded — it is reported as larger than the maximum upload size. See Configuration. - At most 2000 files and folders per upload. Upload a bigger tree in parts, or pack many tiny files into one archive.
- If the name already exists, you are asked to Overwrite or Skip, with a tick to do the same for all the remaining files of that upload. Overwriting replaces the old file only once the new one has arrived completely; if the upload fails, the old file stays as it is.
The uploads are listed in a panel under the file list: waiting, making folders, uploading with a progress bar, finished, skipped, failed (with the reason) or canceled. They go up two at a time, because a TeamSpeak server hands out only a few transfer slots, and each one can be canceled. Clear finished tidies the list. The uploads belong to your browser tab and not to the page: they carry on while you look at other pages of the app. Reloading or closing the tab ends them, and the browser asks first for as long as something is still going.
A download is a link that your browser opens itself, so the file streams straight to disk and the browser's own download list shows the progress. A folder comes as one ZIP, packed while it downloads. A folder that cannot be a ZIP (too many files, nested too deeply, or over 4 GiB) is refused before anything starts; the figures are in Troubleshooting.
The eye button, or a click on the picture's name, opens it in a window; the arrow keys (and the buttons) go to the previous and next picture of the folder, and the window offers a download too.
- PNG, JPEG, GIF, BMP and WebP, from 1 byte up to 10 MB (and up to 64 megapixels), are previewed. The button appears for names that end like one of those.
-
The backend decides again by looking at the bytes, not at the name: a file called
.pngthat is something else is refused with "not a picture the preview can show". SVG is never shown, whatever it is called, because it can carry scripts. - At most four previews run at once so that they cannot use up the server's few transfer slots; if one says the server is busy, press Try again.
The page's own messages (SSH missing, port unreachable, name refused by the server, HTTP 413 from a reverse proxy) and what to do about each are collected in Troubleshooting → The Files page. A reverse proxy of your own in front of the app needs a larger request-size limit for the upload route; the directives are sketched under Deployment.
The server's icon pool is a different thing and has its own page: Icons.
v0.1, last edited 09.10.2026
Getting started
Using the app
Running it
When something is odd
Contributing