Home›Hosting your virtual tour
Hosting your virtual tour yourself: what you need, and the one trap
A virtual tour delivered as static files can be hosted anywhere you can drop a folder: shared hosting, Netlify, GitHub Pages, a NAS. It needs no PHP, no database and no Node.
Updated 2026-08-17
What the delivered folder contains
You receive a ZIP archive. Unzipped, it is an ordinary folder:
index.html— the tour itself, the file to open.app.jsandvendor/— the 3D engine, bundled in. No remote resource whatsoever: no CDN, no Google font, no analytics script.tours/tour/— your panoramas, the depth maps, the floor plan, the 3D model and the configuration file.start-windows.bat,start-macos.command,start-linux.sh— the launchers to open the tour locally.edit.html,edit.js,serve.py,serve.php— the owner-only editor and its small local server (see below: delete them before publishing if you would rather not ship them).README.txt— the same instructions, inside the folder.
The one real trap: double-clicking does not work
If you double-click index.html you will get a blank or frozen
page. That is not a fault in the tour. Browsers forbid pages
opened from disk (file://) from loading the neighbouring files a
3D application needs. It is a security rule and it applies to everyone.
There are two ways to open the tour, and both work:
- Locally: double-click the launcher for your system
(
start-windows.bat,start-macos.command— right-click then "Open" the first time on macOS — orstart-linux.sh). It starts a small local server and opens the tour athttp://localhost:8724/. Nothing to install: it uses Python or PHP, already present on most machines. - Online: copy the folder as-is to your hosting and open the matching address. There everything behaves normally — it is the intended use.
If you are testing several tours
Every local tour opens at the same address
(localhost:8724). Close the previous server window before
launching another, and force a reload
(Ctrl+Shift+R, Cmd+Shift+R
on Mac): otherwise the browser may show images cached from
another tour.
Where to host it
The tour needs nothing: no PHP, no database, no Node, no server-side rendering. Anywhere that can serve files will do — which means just about anywhere.
| Where | How | Worth knowing |
|---|---|---|
| Shared hosting (cPanel, Plesk…) | FTP or the file manager, in a subfolder of your site | Simplest if you already have a site. Check your disk quota. |
| Netlify, Vercel, Cloudflare Pages | Drag and drop the folder, or connect a repository | HTTPS and global delivery included. Mind the free-tier size limits. |
| GitHub Pages | Push the folder to a repository, enable Pages | Free, but repository size is capped: better for smaller tours. |
| NAS (Synology, QNAP) or a local server | Shared folder of the built-in web server | Ideal for internal use or an on-site kiosk, with no internet at all. |
| Object storage (S3, Backblaze…) | Upload the folder, enable static website mode | Economical for large tours, provided you serve over HTTPS. |
| USB stick or drive, offline | Copy the folder, use the launcher | Works with no connection at all: trade show, client meeting, kiosk. |
The size to expect
This is the only real constraint, and it depends on the source format — a tour built from a full survey carries a richer 3D model than one built from photos alone.
| Source format | Per viewpoint | 30 viewpoints | 130 viewpoints |
|---|---|---|---|
| 360° panoramas only | ≈ 1.3 MB | ≈ 40 MB | ≈ 170 MB |
| Visites-virtuelles backup | ≈ 1.8 MB | ≈ 55 MB | ≈ 235 MB |
| Visites-virtuelles link or hybrid | ≈ 5.4 MB | ≈ 160 MB | ≈ 700 MB |
Orders of magnitude measured on real tours. Visitors do not download all of it: panoramas load as they move through the tour.
Embedding it in a page of your site
Upload the folder, then call it in a frame. The tour is an ordinary web page:
<iframe src="/virtual-tour/index.html"
style="width:100%; aspect-ratio:16/9; border:0"
allowfullscreen
title="3D virtual tour"></iframe>
Serve the container page and the tour both over HTTPS: an
http:// frame inside an https:// page is blocked by
the browser. And give the frame a real height — a 3D tour in a 200-pixel-tall
frame is unusable.
Removing the editor before publishing
The folder contains an owner-only edit mode: it lets you show or hide the
dollhouse view, the floor plan and the colour controls, choose the starting
view, and move the exterior panoramas. It only runs locally, through the
launcher, at http://localhost:8724/edit.html.
A visitor can never change anything: on a web host the
editor cannot save at all, it only offers the modified files as downloads. If
you would rather it were not published, delete edit.html,
edit.js, serve.py and serve.php before
uploading: the tour keeps working without them.
Set the tour up before publishing it
The choices made in the editor (starting view, which features are shown) are stored inside the folder and follow the tour once copied online. Make them locally, once, then publish.
Download it, and keep a copy
The service is not a storage space. The files of an unpaid project are deleted 7 days after the quote is issued, and a delivered tour stays downloadable for a few days only — the exact terms are in the retention policy. A reminder email goes out the day before the deadline, but do not rely on it: download your archive on arrival and file it like any other deliverable. It is your master copy.
Once the archive is in your hands, nothing depends on us any more. That is the whole point of the method — and it is also why backing it up is on you.
Frequently asked questions
Do I need a special server to host a virtual tour?
No. A tour delivered as static files needs no PHP, no database and no Node: any hosting able to serve files will do, including entry-level shared hosting, GitHub Pages or a NAS.
Why is the tour black when I open index.html?
Because the file was opened by double-clicking, from disk. Browsers
forbid file:// pages from loading the neighbouring files a 3D
application needs. Use the launcher provided to open it locally, or upload
the folder to a host.
How big is a 3D virtual tour?
About 1.3 MB per viewpoint for a tour built from 360° panoramas alone, 1.8 MB from a Visites-virtuelles backup, and up to 5.4 MB in link or hybrid mode. That is roughly 40 to 160 MB for thirty viewpoints.
Can it be embedded in a WordPress site?
Yes: upload the folder to the same hosting, then call
index.html in an iframe from any page or post. No
plugin is needed, and both the container page and the tour must be served
over HTTPS.
Does the tour work without an internet connection?
Yes, entirely. It contains no remote resource and no tracker: opened from a drive or a USB stick with the launcher provided, it behaves exactly as it does online.
See what a delivered tour looks like
The demos run on the same engine as delivered tours, down to the same files. What you see is what you get.