How to add Jitsi whiteboard, notes and file sharing safely
Each of these add-ons is optional, is enabled through the Docker configuration, and creates data outside the video path that your team must secure and back up. The video and audio stream is protected by DTLS-SRTP, and the videobridge decrypts packets in memory while routing them and does not store them, so anything persistent comes from the add-ons. The three options are the Excalidraw whiteboard, Etherpad shared notes and a file sharing service. Each one needs its own decision about access, retention and recovery before it goes into a production meeting room.
A plain video call is enough for most stand-up meetings, one-to-one check-ins and briefings where the discussion ends when the call does. Teams usually need a shared artifact when the output must outlive the meeting: a design review that produces a diagram, an incident bridge where responders keep a running timeline, a training session where participants need the handout, or a candidate interview that generates notes. Ask whether the content must be kept after the room closes, and whether it may contain customer, employee or regulated data. If the answer to both is yes, plan the add-on as a system with an owner, not as a convenience setting.
The three add-ons store different things in different places, so do not assume they behave alike. The whiteboard is enabled with WHITEBOARD_ENABLED and the whiteboard.yml compose file, and the Etherpad notes are enabled with ETHERPAD_URL_BASE and the etherpad.yml compose file, both described in the Jitsi Docker guide. Confirm in that guide and in your own test deployment where drawings and pad content persist, how long they remain, and whether they are removed when a room is no longer used. File sharing is a separate service. The example service in the Jitsi handbook stores uploads on the local filesystem and authenticates requests with short-lived tokens issued by Prosody, so the upload directory becomes a data store you must protect.
Before go-live, set the file sharing service up as the handbook describes, with config.fileSharing pointing at the service apiUrl and an nginx location that sets client_max_body_size to 50M. Treat that size as the example default and decide your own limit based on the files your teams actually exchange. Put the upload directory and the Etherpad and whiteboard data locations into your backup scope, then run one restore test to confirm the data comes back. Serve everything over HTTPS with a valid certificate, since the handbook notes that self-signed certificates cause problems. Finally, record who can create and delete content, and review that list whenever you change the authentication method.
Jitsi whiteboard, Etherpad and file sharing options compared
This table compares the three collaboration add-ons for a self-hosted Jitsi Meet: what participants get, how each one is switched on, which extra component it adds, and where its data sits. Read each column as a separate option, since each can be enabled on its own. The main takeaway is that file sharing runs as a separate service with its own storage, so it usually adds the most to secure and back up.
| Option | Whiteboard | Shared notes | File sharing |
|---|---|---|---|
| What participants get | A shared Excalidraw whiteboard inside the meeting for sketching and annotation | Shared documents that participants edit together during the meeting | Uploading and sharing files during a meeting through a separate service |
| How it is enabled | Set WHITEBOARD_ENABLED and include the whiteboard.yml compose file | Set ETHERPAD_URL_BASE and include the etherpad.yml compose file | Configure config.fileSharing with the service apiUrl and add an nginx location with client_max_body_size 50M |
| Extra component added | An Excalidraw container added to the Docker deployment | An Etherpad container added to the Docker deployment | A separate file sharing service, plus an nginx location in front of the Jitsi web app |
| Where data sits | Confirm with your Excalidraw setup whether drawings persist and where they are kept | Confirm with your Etherpad setup where pad content is stored and how long it is retained | The example service stores uploads on the local filesystem and authenticates with short-lived tokens issued by Prosody |
| Best fit | Teams that sketch or annotate diagrams during calls | Teams that take meeting notes or draft text that several people edit live | Teams that share files in meetings and can plan storage, backup and access controls for uploads |
How the whiteboard, Etherpad and file service connect to Jitsi
The three add-ons attach to the Jitsi stack in different ways, and the difference determines what you configure and where you troubleshoot. The Excalidraw whiteboard and Etherpad document editing are switched on through settings in the .env file: WHITEBOARD_ENABLED enables the whiteboard, and ETHERPAD_URL_BASE tells the web app where Etherpad is reachable. Each feature also has its own compose file (whiteboard.yml and etherpad.yml) that you add to the deployment. The web container is the only part participants load in their browser, so the web app is the component that must know where the whiteboard and Etherpad live. File sharing is different because it is a separate service that the browser calls directly.
For Etherpad, the key value is ETHERPAD_URL_BASE, which is the address the browser opens when someone starts a shared document. Decide early whether Etherpad sits under the same domain as the meeting, behind the same reverse proxy, or on its own host name. Each choice changes certificate scope, DNS records and firewall rules. Participants' browsers must be able to reach that address over HTTPS, and the Jitsi handbook states that HTTPS with a proper domain certificate is necessary for working audio and video, so a self-signed certificate is not an acceptable shortcut here. Confirm the exact service names and proxy routes in the Docker guide for the release you run, because the layout can change between releases.
File sharing uses the config.fileSharing setting in the web configuration, which points the browser at the file service apiUrl. When a participant uploads or downloads a file, the browser sends the request to that service. The service does not trust the browser alone. It checks a short-lived token that Prosody issues for the meeting session, so the file service must be able to verify tokens from Prosody. Ask your team to confirm how the handbook example validates these tokens, how long they last and which secret or key the two services share, since those details decide whether the service rejects expired sessions and how you rotate credentials.
The handbook's file sharing example stores uploads on the local filesystem of the file service host, and the reverse proxy sets a client_max_body_size of 50M on the upload location. That limit is a proxy decision with a direct effect on users, so change it only when you have agreed the largest file the meeting should accept. The local disk is also the only copy of uploaded files in the example, which makes that host a data store you must back up, encrypt at rest and include in retention rules. Before go-live, test an upload and download from a real browser session, confirm the token check rejects an expired session, and restore a test file from backup.
Jitsi whiteboard and Etherpad setup sequence
This sequence adds the Excalidraw whiteboard, Etherpad shared documents and file sharing to a self-hosted Jitsi Meet deployment. Each step ends with a check, so any fault can be traced to the feature that was just changed. The result is a meeting room with three collaboration tools, each of which stores data on infrastructure you must secure and back up.
Confirm the base Docker deployment and HTTPS
The engineer running the Jitsi Docker stack confirms that the web, prosody, jicofo and jvb containers are running and that the site loads over HTTPS with a certificate issued for your domain. The add-ons depend on this base, and the Jitsi handbook warns that self-signed certificates cause audio and video problems, especially on mobile clients, so resolve that first. This step is done when two participants join a test room from separate networks and exchange audio and video.
Enable the Excalidraw whiteboard
The platform engineer sets WHITEBOARD_ENABLED in the .env file, adds the whiteboard.yml compose file to the stack and recreates the containers. Confirm the exact compose file list in the Jitsi Docker guide for the release you run. Check by opening a room in one browser, starting the whiteboard from the meeting toolbar, drawing a shape and confirming the second browser in the same room shows it. Also confirm whether drawings persist after the meeting ends, because that decides what you back up.
Enable Etherpad shared documents
Set ETHERPAD_URL_BASE in the .env file to the address Etherpad will be served from, add etherpad.yml to the compose stack and recreate the containers. The URL base must match the public hostname users reach, or document links will fail for participants. Check by starting a shared document from the meeting toolbar in one browser, typing text and confirming it appears in a second browser in the same meeting. Record where Etherpad stores document content, since those notes exist outside the video session and need their own backup and retention rules.
Deploy the file sharing service
Deploy the example file sharing service described in the Jitsi handbook on a host inside your network, with HTTPS in front of it. The example stores uploads on the local filesystem and checks short-lived tokens issued by Prosody, so the service must be reachable from browsers and trust the same Prosody setup as the rest of the stack. Check that the service starts without errors and answers requests from a browser over HTTPS at the address you plan to configure. Confirm disk sizing and the backup scope for the upload directory before users receive access.
Set config.fileSharing and its API URL
In the web configuration, set config.fileSharing with the apiUrl of the file sharing service, then restart the web container so the client loads the change. The configuration file location differs between deployment layouts, so confirm it against the handbook for your release. Check by opening a room and confirming the file sharing control appears in the toolbar. If it does not appear, reload the page and check the browser console for requests sent to the wrong address.
Set the nginx upload limit to 50M
Add a location block for the file sharing path in the nginx configuration that proxies to the service, and set client_max_body_size to 50M inside that block so the proxy accepts uploads of that size. Reload nginx and confirm the file sharing service is still reachable. Check by uploading a file just under 50M, which should succeed, and then a larger file, which nginx should reject with a 413 error. That confirms the limit is enforced at the proxy.
Test all three features from two browsers
Join two browsers to the same room, one as a moderator and one as a guest if your authentication model separates them. Open the whiteboard, start a shared document and upload a test file from each browser in turn. Confirm every item appears on both sides. Then have a third participant join late and confirm whether they see the current whiteboard state, document text and file list. Record the test results and the stack versions as a baseline for later upgrades.
Where whiteboard, document and uploaded file data lives
Before you enable any of these add-ons, map where each one keeps its content. The answer differs by component, and none of it falls under the protection Jitsi applies to the video stream. Jitsi states that audio and video are encrypted on the network with DTLS-SRTP and that the videobridge decrypts packets in memory while routing and never stores them. Whiteboard drawings, shared document text and uploaded files are created outside that stream. Their protection depends on the storage, access controls and transport settings you choose for each service, so they need their own entries in your data inventory and your backup and retention policies.
Uploaded files are the easiest of the three to locate. Jitsi's file sharing uses a separate file sharing service. The example service in the Jitsi handbook stores uploads on the local filesystem and authenticates requests with short-lived tokens issued by Prosody. Identify the host and the exact directory or volume that receives uploads, confirm it sits on storage you back up, and include it in your backup scope. The handbook's example also sets client_max_body_size to 50M in the nginx location for the service, which caps what can reach that directory. Confirm the value you use, because it determines the largest file your users can place on your storage.
Etherpad and Excalidraw need a different kind of check. Jitsi enables Etherpad with ETHERPAD_URL_BASE and the etherpad.yml compose file, and enables the Excalidraw whiteboard with WHITEBOARD_ENABLED and the whiteboard.yml compose file. The supplied Jitsi material does not describe where either tool persists content, which database or volume it uses, or whether content remains after a meeting ends. Confirm these points in the current Etherpad and Excalidraw documentation and in the compose files you deploy. Identify which container holds state, which volume or database it writes to, and whether an export or deletion path exists. Until you have confirmed these answers, treat the location of this content as unknown.
Use those answers to set your backup and retention scope. Back up the upload directory and the file service configuration, the Etherpad and whiteboard data locations you confirmed, and the .env file and compose files that define them. Since the official Docker containers run rootless with read-only filesystems, check which paths are writable volumes, because content written elsewhere will not persist. Write a retention rule for each data type and assign an owner who can delete content on request. Test a restore of all three data sets, not only the video configuration, before you rely on the backups.
Meeting notes and uploads often contain personal or regulated information, so ask your privacy and compliance leads whether this content falls under existing records or data retention rules. Ask the vendors or community maintainers for written confirmation of storage behavior for the versions you deploy. Ask your own team who can access each volume, how access is logged, and how long old copies remain in backups after content is deleted from the live service. Those answers, not the video encryption settings, determine how well these three features fit your regulated meetings.
Securing uploads, shared documents and whiteboard content
Whiteboards, shared notes and file uploads each handle content outside the audio and video path, so each needs its own access, storage and encryption checks. The cards below cover the decisions to make and the settings to verify before these features reach users.
File service token model
The example file sharing service authenticates requests with short-lived tokens issued by Prosody, the XMPP server in your Jitsi deployment. Decide which participants can request those tokens, and whether guests on the anonymous domain should be able to obtain one at all. Confirm the token lifetime with the vendor documentation or your own configuration, then test an expired token to verify that the service rejects it.
Upload size limits
The handbook's file sharing setup raises the nginx body limit with client_max_body_size set to 50M. Treat that value as an example to review before you set a policy. Base the limit on the largest file your meetings actually need, and confirm that the reverse proxy, the file service and any client-side checks all enforce the same number. Mismatched limits produce uploads that fail partway through with unclear errors for users.
Malware handling for uploads
Files uploaded during meetings are untrusted content that your staff may later open or download. Confirm with the vendor or your own build whether the file service includes malware scanning. If it does not, plan scanning as a separate component in the upload path. Decide whether files are scanned on arrival, whether they stay unavailable until the scan completes, and who receives alerts when a scan flags a file.
Room and document access through links
Anyone who holds a room link can attempt to join unless authentication is configured. Etherpad pads and Excalidraw whiteboards have their own URLs, so confirm whether they inherit room membership or can be opened by anyone with the address. The handbook recommends JWT token authentication, so review which entry points it covers. Test each link type in a private browser window that has no active session.
HTTPS for every hosted service
The Jitsi handbook states that HTTPS with a certificate for a proper domain is necessary for working audio and video. It warns that self-signed certificates cause problems, especially with mobile clients. Apply the same rule to the file sharing service, Etherpad and the whiteboard host, and confirm that each one is served over HTTPS with a certificate that your users' devices trust. Test from a mobile client before you announce the feature.
Encryption scope for documents and whiteboards
Jitsi's security page describes end-to-end encryption as covering audio, video and screen sharing, and it excludes chat and polls. Whiteboard and document content is not named in that description, so do not assume it falls under end-to-end encryption. Ask the vendor or test your build to confirm the answer, and keep sensitive material out of these tools until you have that confirmation in writing.
What drives the cost and effort of collaboration add-ons
Most of the one-time cost for these add-ons comes from deploying and configuring each one as a separate service beside the core Jitsi stack. Whiteboard is enabled with WHITEBOARD_ENABLED and the whiteboard.yml compose file, Etherpad with ETHERPAD_URL_BASE and the etherpad.yml compose file, and file sharing needs its own service, an apiUrl entry in config.fileSharing, and an nginx location with client_max_body_size set to 50M. Each one adds configuration, hostnames, reverse proxy routes and testing across browser and mobile clients. Ask for each add-on as its own line item so you can drop one later without reopening the others.
Storage and backup work is where these add-ons differ most from the base install. Whiteboards, shared notes and uploaded files all create data you must keep, secure and restore. The example file sharing service stores uploads on the local filesystem, so the work includes sizing that volume, choosing where it lives, setting retention and deciding what restoring one meeting's files looks like. Confirm where Etherpad and the whiteboard persist their content in the versions you plan to run, because that sets the backup scope. Each store needs a documented, tested restore, not only a scheduled copy.
Each new service also adds an access path, and the security review grows with the number of paths. The file sharing service authenticates with short-lived tokens issued by Prosody, so the review should trace how those tokens are validated, who can upload, which file types and sizes are accepted, and whether the upload endpoint is reachable from the public internet or only from the meeting domain. Documents opened from a room URL raise the question of who can read or edit them without signing in. Check which new containers run with the rootless, read-only settings the Docker setup uses and document every place an add-on departs from them.
Recurring work grows with each container. Every add-on is another image to track against Jitsi's stable release tags, another set of environment variables to carry through upgrades, and another service to retest after a platform update. Plan recurring effort for patching, confirming that upload limits and proxy routes survive each upgrade, restoring a backup into a test environment on a schedule you set, and reviewing logs for file sharing errors. These tasks continue after go-live, so the support terms matter as much as the build price.
A quote should list each component by name and version, the environments it covers (test, staging and production), the storage volumes and backup scope for every stateful add-on, the access paths and the review you expect, and the testing approach, including restore tests and browser checks on desktop and mobile. It should also include handover documentation and the support terms for updates after go-live, and state whether the figures cover retesting after platform upgrades. A quote that names only Jitsi itself is missing most of the work described above.
Limits to confirm before enabling collaboration add-ons
Whiteboard, shared notes and file sharing each depend on the Jitsi release, container layout, authentication method and deployment shape you run. The handbook examples are starting points that you need to verify for your own environment before any user relies on them.
Release and container layout
Confirm the Jitsi release you run and the compose file each add-on needs for it. The Docker guide enables the Excalidraw whiteboard through the whiteboard.yml compose file and Etherpad through the etherpad.yml compose file, and containers have run rootless with read-only filesystems since stable-11146. Check the release notes for your build and ask the handbook or your test environment whether file names and variables have changed in your version.
File service and authentication
The file sharing service accepts short-lived tokens that Prosody issues, so it depends on how users join meetings. Internal XMPP accounts, JWT tokens, LDAP and Matrix verification can each change what Prosody signs and how guests receive tokens. Test a signed-in user, a guest and an expired token against the file service before go-live, and confirm the token flow for each method you enable with the handbook and your own team.
Maximum file sizes
The handbook's file sharing setup sets client_max_body_size to 50M in nginx, which is an example and not a ceiling for your deployment. Your effective limit depends on every layer an upload passes through: the nginx location, the file service, free space on the filesystem where uploads land, and any proxy or load balancer in front. Ask the vendor or handbook which settings apply to your version, then test uploads just below and just above the limit you choose.
Browser and client support
The whiteboard and shared documents render inside the meeting page, so every browser and the Jitsi Electron client your staff use must display and edit them correctly. Jitsi's documented end-to-end encryption covers audio, video and screen sharing in Chromium 83+ browsers and the Electron client, but not chat or polls, so confirm how collaboration content is protected. Build a matrix of the browsers, operating systems and devices in use and test joining, drawing, editing and uploading on each.
Multi-bridge and scaled deployments
The scalable setup guide adds videobridges horizontally and notes that the default install is already configured for this. It does not establish that the whiteboard, Etherpad and file service behave correctly when meetings land on different bridges, so treat that as unconfirmed. Decide whether each add-on runs once per deployment, how users reach it from every bridge, and whether a single-node test is enough evidence before you scale out.
Can our team add Jitsi whiteboards and file sharing without outside help?
Can our in-house team set up Excalidraw, Etherpad and file sharing on Jitsi?
Yes, if your team already runs Jitsi Meet on Docker and is comfortable editing compose files and nginx configuration. The core switches are documented: WHITEBOARD_ENABLED with the whiteboard.yml compose file enables Excalidraw, and ETHERPAD_URL_BASE with the etherpad.yml compose file enables shared documents. File sharing is a separate service that the handbook describes. It is wired in through config.fileSharing, which points at the service API, and an nginx location with a 50M upload limit. The harder work is around those steps: certificates, token trust with Prosody, storage, backups and testing. Ask whether anyone on your team has completed a Jitsi Docker deployment and whether they have time to own the upkeep after go-live.
What sets how long adding these features to Jitsi takes?
The duration depends on the drivers below, so compare quotes by their written milestones rather than by a single headline number. The main drivers are how many of the three features you need, whether the base Jitsi deployment is already stable and documented, whether storage and backup targets already exist, how many environments you need (for example, a test copy and production), whether single sign-on or other authentication must be integrated, and how much test coverage you require before release. Each added feature adds configuration, testing and an extra component to maintain. Ask the provider to show which tasks depend on your team's responses, such as approving certificates or granting firewall changes, because those waits often drive the calendar more than the technical work does.
What does the work need from our side before the project starts?
Before work starts, your team should have a running Docker deployment of Jitsi Meet that the provider can reach, and access to its configuration files and host. You also need a valid domain certificate. The Jitsi handbook says HTTPS with a proper certificate is necessary for working audio and video, and it warns that self-signed certificates cause problems, especially with mobile clients. Plan a storage target for uploaded files and a separate backup target with a defined retention period. Identify a test plan with named users, browsers and devices, and agree on the acceptance checks. Finally, confirm who holds DNS, firewall and administrator accounts, since those approvals often sit outside the project team.
Where do whiteboard, shared notes and uploaded files get stored?
The answer depends on each component, so confirm it for your version before you design backups. The example file sharing service in the Jitsi handbook stores uploads on the local filesystem and authenticates requests with short-lived tokens issued by Prosody. That means the upload directory is data you must secure, back up and retain on purpose. For Etherpad and Excalidraw, the setup documentation covers enabling each one, but your team should verify where document content and drawings are kept in your configuration, who can reach that storage, and how it is restored. Treat each location as a separate data store with its own owner, access rules and restore test.
What changes for our team after Jitsi whiteboards and file sharing go live?
Your team takes on more moving parts. Etherpad, the whiteboard and the file sharing service each add containers or services that need updates, monitoring and log review. Jitsi Docker releases also change how the platform runs: since stable-11146, the containers run rootless with read-only filesystems, so any custom path or write location must be checked during each upgrade. Uploads grow over time, so storage capacity, retention and deletion rules need an owner. Backups must be restored in a test environment on a schedule, not just taken. Token secrets and certificates need renewal and rotation. Before work begins, ask the provider which of these tasks it will handle after go-live, under what support terms, and who approves changes.
How are uploaded files and tokens secured in a self-hosted Jitsi setup?
Start with the transport and the trust relationships, then the stored data. The Jitsi security material says all audio and video is encrypted on the network with DTLS-SRTP, and that the videobridge decrypts packets in memory and does not store them. That protection covers media, not every feature. Jitsi's end-to-end encryption is limited to audio, video and screen sharing, and does not cover chat or polls, so confirm in writing whether whiteboards, shared notes and uploads fall inside any encryption you plan to rely on. For file sharing, check the token lifetime and validation between Prosody and the service, the access controls on the upload directory, encryption at rest for the storage you choose, and the logs that record uploads and downloads.
What should we request in a written scope for this work?
A written scope should make the work checkable before it starts. Ask for the list of features to enable, with the exact versions of Jitsi Meet and each added component pinned. Require the target hosts, the certificate source, the storage locations and expected capacity, and the backup targets with a restore test. Specify the authentication mode, the test plan with acceptance criteria, and the documentation delivered at handover, including the configuration files and runbooks. Include the post go-live support terms, and state who is responsible for upgrades. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ongoing support, upgrades and continuous testing are available as retainers, and those terms should be stated separately.
Testing the add-ons before users rely on them
Test the whiteboard, shared notes and file sharing in staging before any user depends on them, and write the test plan first so that everyone agrees on what counts as a pass. Start with enablement. Confirm that WHITEBOARD_ENABLED is set for the whiteboard, that the whiteboard.yml compose file is included in the deployment, that ETHERPAD_URL_BASE points at the Etherpad instance and that etherpad.yml is in use. Check the running web client as well as the .env file, because a setting that is written but not picked up by the containers is a common cause of a feature that appears missing to users.
Next, run a meeting with two or more participants on separate browsers or devices. One participant should open the Excalidraw whiteboard and draw, a second should edit the Etherpad document, and a third should upload a file during the call. Confirm that every participant sees the same whiteboard content and document text, that an edit made by one person appears for the others without a page reload, and that the uploaded file can be opened by everyone in the room. Repeat the run from at least one mobile client, since certificate problems often show up there first.
Then test persistence and limits. Restart the containers that serve each add-on, reopen the meeting and confirm that the whiteboard scene, the Etherpad document and the file list all load with their previous content. Next, check upload limits. The Jitsi handbook's file sharing example sets client_max_body_size to 50M in nginx, so upload one file just under your configured limit and one just over it, and confirm that the large file is refused with a message users can understand. Confirm your own limit with your configuration, since the example is not a recommendation for your environment. For token expiry, confirm the lifetime of the short-lived tokens Prosody issues to the file sharing service in your setup, wait until a token has expired, and check that the expired token is refused and that a fresh session obtains a new one.
The last check is recoverability. Back up the file sharing upload storage, the Etherpad data and the whiteboard data, restore them to a separate staging host and confirm that the restored files download with the same contents, and that the restored documents and whiteboards open with their last saved state. Confirm with your deployment team where each add-on keeps its data, because the uploads sit on the local filesystem in the example service and the storage for the other two depends on how they are deployed. Record every test with the date, the Jitsi build in use, the configuration values tested, the tester, the result and the evidence, such as screenshots or logs. Agree the full scope, the test cases, the environments and the acceptance criteria in the written plan before testing starts, so that a failed case has a clear owner and a clear decision attached to it.
How DeployOpen scopes and delivers Jitsi collaboration add-ons
DeployOpen plans, builds and hands over Jitsi whiteboard, shared notes and file sharing inside infrastructure you control. Each add-on is scoped in writing before work starts, because Etherpad and file uploads hold data that needs securing and backing up. Most engagements are fixed-scope, and ongoing support is available as a retainer.
How we scope
- Which add-ons you need: Excalidraw whiteboards, Etherpad documents, the file sharing service, or a combination
- Where each add-on stores data, which hosts hold it, and who can access it
- Written scope before work starts, covering deliverables, acceptance checks and backup responsibilities
How we build
- Enable Excalidraw with WHITEBOARD_ENABLED and the whiteboard.yml compose file in the Docker deployment
- Point Etherpad at its base URL with ETHERPAD_URL_BASE and the etherpad.yml compose file, tested end to end
- Configure the file sharing service, nginx upload size limit and Prosody-issued short-lived tokens, then test uploads
How we hand over
- Configuration files, compose changes and a runbook covering each add-on's data locations and restore steps
- Backup scope for Etherpad data and uploaded files, with restore tests you can repeat
- Access and secrets notes covering who can reach each service and where its credentials are kept
How we support
- Retainers for ongoing support, Jitsi upgrades and continuous testing of add-on services
- Ask whether an upgrade release changes add-on compose files or data paths before you schedule the change
- Repeat restore tests after each Jitsi or add-on upgrade, and again at each scheduled review

