Self-hosting
The simplest deployment model is still a self-hosted static app.
Best use case
Use self-hosting when:
- you want complete control over the archive
- you do not want account infrastructure yet
- you are deploying a personal copy or a very small trusted audience copy
Local build flow
Inside instagram-archive-viewer:
npm install
npm run build
The output is the standard Vite dist folder.
What should be inside a good self-hosted package
- built frontend files
- trimmed
public/datacontents for selected conversations - rebuilt
inbox_index.json - rebuilt
archive.sqlite - only the media files that the selected conversations need
- any local uploaded profile images that are still referenced
What should not be inside the hosted package
- raw
messages.jsonfiles after SQLite has been rebuilt and verified - development-only scripts that are not needed at runtime
- repository housekeeping files that only make sense in source control
Deployment targets that work well
- Cloudflare Pages
- Netlify
- static Nginx hosting
- private LAN hosting
Security recommendation
If the hosted copy contains private conversations, do not leave it openly public by default. Put access control in front of it.
For Cloudflare, the strongest recommendation is:
- Cloudflare Tunnel where needed
- Cloudflare Access / Zero Trust in front of the app
See Cloudflare Pages deployment for concrete steps.