Media
Store your team's images and files, organize them with folders and tags, share them publicly via CDN, and upload them through the API.
Media
Media keeps your team's images and other files in one place – for example screenshots from your game server, evidence images for support cases, or graphics for announcements. Public files get a link on our CDN, private files are only visible to your team.
Files get in two ways:
- Dashboard – upload directly in the web app (images and videos)
- API – game servers, bots, launchers, or your own scripts upload with a team API key (images, video, audio, documents). See Media API and FiveM screenshots.
Open the module
You find it in the sidebar under Media (route /media). The entry is shown if you have the View media permission (team.media.view).
Open Media
The page has two tabs:
| Tab | Content |
|---|---|
| Overview | Files, folders, search, filters, bulk selection, files from other modules, and the usage line |
| API & Integrations | Team ID, upload URL, upload parameters, and examples (curl, FiveM, JavaScript) |
Upload files
- Click Upload.
- Optionally pick a target folder and enter tags for all files.
- Select or drop your files and upload them.
New files use the default visibility of the target folder (see folder rules). Without a rule, dashboard uploads are private and API uploads (multipart) are public.
Allowed file types
| Channel | Allowed |
|---|---|
| Dashboard | Images (JPEG, PNG, GIF, WebP, AVIF, BMP, HEIC) and videos (MP4, WebM, MOV) |
| API | Images, video, audio, and documents (e.g. PDF) |
Blocked file types
HTML, JavaScript, executables, shell scripts, and SVG are always rejected – in the dashboard and
via the API (HTTP 415).
Overview, search & filters
- View: grid view or list view (with folder, tags, and uploader)
- Items per page: 24, 48, or 96 – with pagination below
- Search: by file name
- File type: all types, images, videos, audio, documents
- Tags: pick one or more tags. With several tags, only files that have all selected tags are shown (AND). Clicking a tag on a file filters by it directly.
Files from other modules
In the Overview, the Source switcher lets you switch between your own Media and files from other modules. These sources are read-only – they are only collected here in one place:
| Source | Content | Requirement | Go to source opens |
|---|---|---|---|
| Member files | Files uploaded to members | View member files permission (team.member.file.view) | the member |
| To-do attachments | Task attachments – only from boards you can access | View todo files permission (module.todo.file.view) | the task in its board |
| Logo & website | Team logo and website builder images | – | the team logo in Administration |
Sources you lack the permission for are not shown.
For files from other modules you can preview them, open them, and jump straight to where they came from with Go to source. Editing and deleting stays in the respective module – folders, tags, visibility, and bulk actions are only available for your own media. For these sources, the search only filters the current page.
Shared storage
All sources use the same team storage. The storage badge shows how it is split.
Folders
Folders help you keep files apart – e.g. screenshots, evidence, or branding.
- All shows every file, No folder only files without a folder
- Subfolders can be nested up to 5 levels; use the breadcrumb navigation to jump back to parent folders
- From the folder menu: Rename, Move, Rules, and Delete (Edit media permission)
- Folder names are 1–100 characters, contain no
/, and must be unique within the same parent folder
Deleting a folder
Deleting a folder keeps its files: files and subfolders move to the parent folder – or to No folder if there is none.
Folder rules
Use Rules in a folder's menu to automate it. Rules only apply to files directly in that folder (not to subfolders). Folders with rules show a small icon.
| Rule | Effect |
|---|---|
| Auto-delete after (days) | Files older than N days are deleted (retentionDays). Empty = off. |
| Keep only the newest files | Only the newest N files are kept, older ones are deleted (maxFiles) |
| Default visibility for uploads | Default, Public, or Private for uploads that don't set it (defaultPublic) |
Deletion rules are enforced hourly; Keep only the newest files also right after every upload. When you add or tighten a deletion rule, TeamPanel asks for confirmation before saving. Useful e.g. for a screenshots folder that should only keep the last 30 days.
Permanent
Files deleted by folder rules cannot be restored. Double-check the values before applying a rule to an existing folder.
Tags
Tags link files to players, sources, or categories. We recommend the key:value convention:
| Example | Meaning |
|---|---|
license:abc123 | FiveM / Rockstar license |
steam:110000100000000 | Steam ID (hex) |
discord:123456789 | Discord ID |
type:screenshot | Kind of file |
Rules:
- 1–64 characters, allowed are
a-z,0-9, and_ . : @ -(starting with a letter or digit) - Upper case is converted to lower case automatically
- At most 20 tags per file
Details, sharing & deleting
From a file's action menu:
- Details – file name, size, type, upload date, uploader, and visibility. This is where you change the folder and tags. Videos play directly in the dialog; in the grid a thumbnail with a play icon shows the video's first frame.
- Share – switch between public and private and copy the link.
- Open – show the file in a new tab.
- Delete – remove the file permanently.
Public vs. private
| Visibility | Access |
|---|---|
| Public | Permanent link on our CDN: https://cdn.team-panel.com/media/team/<teamId>/<file> |
| Private | Team members only – via short-lived signed links (valid for 1 hour) |
Switching visibility moves the file. When a file is made private or deleted, we also remove it from the CDN cache – the old public link stops working.
Bulk selection
Select several files using the checkboxes (or Select page). For up to 100 files at once you can:
| Action | Required permission |
|---|---|
| Move (to a folder) | Edit media |
| Make public / private | Edit media |
| Add / remove tag | Edit media |
| Delete | Delete media |
Storage & usage
Next to the Media title, a badge shows the used team storage compared to your plan limit (e.g. 25.69 MB / 50.00 GB) – in the same format as backups. Hover it to see how the shared team storage is split: Media, Member files, To-do attachments, and Backups.
In the overview, one line below shows:
- number and size of your own files in media
- your plan's max file size per file
- uploads in the last 30 days, including those via the API
- CDN traffic in the last 30 days (bandwidth and requests), when enabled
Storage limits after a downgrade
If team storage exceeds the limit, a 30-day grace period applies, with several email warnings to the owner. After that period, permanent cleanup can remove files from all modules that use storage until usage is within the current limit. An existing file above the lower upload file-size limit is not a reason for deletion by itself.
Owners and superadmins can open Manage storage to see usage by source, the current deadline, and planned deletions. You can upgrade your plan again at any time, or remove files yourself. Once enough storage is available, no further files are deleted for the overage. In simulation mode, this cleanup does not delete files. Folder rules remain independent.
See Storage after a downgrade for the deletion order, warnings, and grace periods.
Logs
Media actions appear in the team logs: uploading, editing, changing visibility and deleting files, creating, editing and deleting folders, bulk actions, and deletions by folder rules (with the number of deleted files).
Team permissions
Under Groups:
| Permission | Key | Meaning |
|---|---|---|
| View media | team.media.view | Open media, view and open files |
| Upload media | team.media.upload | Upload files (dashboard and API) |
| Edit media | team.media.edit | Folders, folder rules, tags, visibility, bulk actions (except delete) |
| Delete media | team.media.delete | Delete files – individually and via bulk selection |
Plan limits
Media count against your plan's shared team storage – the same storage used by member files, to-do attachments, and backups. There is no separate limit on the number of files.
The maximum file size per file grows with your plan:
| Plan | Max. file size |
|---|---|
| Free | 10 MB |
| Starter | 25 MB |
| Pro | 50 MB |
| Expert | 100 MB |
| Enterprise | 250 MB |
Your plan's current values are shown in the storage badge and the usage line under Media and on the pricing page.
Limit reached?
When a limit is reached, uploads fail (via the API with HTTP 402). Delete files you no longer
need – e.g. automatically with a folder rule – or upgrade your plan.
Automation
Every upload (dashboard and API) fires the Media uploaded event. Use it, for example, to post new screenshots to a Discord channel automatically. Details: Automation.
See also
- Media API – upload and manage files via the API
- FiveM screenshots – upload screenshots from your game server
- API keys – create a key with the
media:uploadscope