← All posts
Jun 6, 2026

Your Files Stay on Your Server: File & Photo Storage in Weavestream

Weavestream stores network diagrams, rack photos, scripts, and any other client file directly on your own infrastructure — never in a third-party cloud.

Every MSP technician has experienced some version of this: you’re onsite at a client, trying to remember which patch panel port maps to which switch uplink, and somewhere in your documentation platform there’s a photo of the rack cabinet you took during the last visit. But finding it means digging through a shared drive, a Teams channel, someone’s phone camera roll, or — if you’re lucky — an attachment buried inside a ticket from eight months ago.

The problem isn’t that people aren’t documenting. It’s that there’s no natural home for visual and file-based documentation inside the system that holds everything else. Weavestream’s built-in file and photo storage is designed to fix that.


Files Live Inside the Tenant, Not Alongside It

In Weavestream, file uploads are first-class objects attached directly to a company (tenant) record. When you upload a network diagram, a PDF of a switch configuration export, a PowerShell script used to onboard new workstations, or a photo of a server rack — it lands inside that client’s record, associated with that client’s data, accessible from that client’s context.

There’s no separate folder structure to maintain, no external drive to sync, no shared storage that doesn’t know which file belongs to which client. The file is simply part of the client’s documentation.


What You Can Store

Weavestream accepts a wide range of file types out of the box:

CategoryExamples
ImagesJPEG, PNG, GIF, WebP, SVG
DocumentsPDF, DOCX, XLSX, PPTX
ArchivesZIP, TAR, GZ
ScriptsSH, PS1, PY
DataJSON, YAML, CSV
TextTXT, MD, LOG

For MSPs, that covers the full range of things that tend to accumulate around a client: topology diagrams, signed SOW PDFs, exported configuration files, onboarding scripts, vendor quotes. The allowed MIME type list is also configurable via your .env if you need to add or restrict types.

The default upload limit is 25 MB per file, also configurable.


Images aren’t just stored — they’re organised. Weavestream automatically generates thumbnails for every uploaded image using Sharp (libvips), and each tenant has a dedicated Photo Gallery view that displays all images in a grid with thumbnail previews. Click any thumbnail to view the full-size original.

For MSPs who document physical infrastructure, this turns out to be genuinely useful. A gallery of rack photos, cable runs, UPS labels, and equipment nameplates is a lot more navigable than a flat list of filenames. When a junior technician needs to know what the server room looks like before going onsite, they can pull it up in seconds.


Attach Files Directly to Asset Records

Beyond the per-tenant file store, Weavestream also supports attaching files directly to individual asset records. If your asset layouts include a FILE field, uploaded documents appear inline on the asset detail page — not as a link out to somewhere else, but embedded in the record itself.

The practical cases are obvious: attach a warranty certificate to the server asset it covers. Attach a vendor datasheet to the firewall. Attach a signed handover document to the client site record. The file travels with the asset, so anyone looking at the asset record sees the relevant documentation without having to know where to look for it.


Integrity, Not Just Storage

Each uploaded file gets a SHA-256 hash computed and stored at upload time. This gives you a cryptographic fingerprint of every file in the system — useful for verifying that a stored script or configuration export hasn’t been altered since it was uploaded, and relevant for any compliance workflow that requires demonstrable file integrity.

Uploads are also written atomically: the API writes to a temporary path and renames into place, so a running rsync backup of the file storage directory never sees a partial file. For self-hosted setups where the underlying storage is backed up by standard filesystem tools, that’s the kind of detail that matters.


Your Files Never Leave Your Server

This is the part that matters most for a lot of MSPs.

In Weavestream, uploaded files live on your own host filesystem. Each tenant gets an isolated directory under your configured FILE_STORAGE_DIR. The application API streams files through its own origin — browsers never access the storage directory directly, and every request is authorised against the requesting user’s tenant membership before the file is opened.

Compared to documentation platforms that store client files in a vendor-managed cloud, this means your client data stays under your control. You control where the storage directory lives — local disk, NAS mount, network-attached storage. You control the backup schedule. You decide what encryption-at-rest policy applies. If a client asks where their files are stored, the answer is simple: on your server, under your retention policy.

For MSPs who’ve had the conversation about data sovereignty with a healthcare or legal client, or who’ve sat through a vendor security review asking where sensitive documents are stored, this simplicity is worth something.


Getting Started

If you’re already running Weavestream, file uploads are available on any company page — look for the Files tab in the tenant navigation. To attach a file to an asset record, add a FILE field type to the relevant asset layout in Admin → Asset Layouts.

New to Weavestream? The quickstart guide gets a full stack running with Docker Compose in a few minutes. Self-hosted IT documentation, with files that stay where you put them.

← All posts