mirror of
https://github.com/ergosteur/instaarchive-viewer.git
synced 2026-07-04 11:07:15 -04:00
c0f3523a9cb0650f2c26230e9ed50b7f01722301
InstaArchive Viewer
A high-performance React PWA for browsing archived Instagram data with a native-feeling interface. Supports both official Instagram exports and Instaloader archives.
Features
- Persistent Caching: Uses IndexedDB to store parsed archives locally. Subsequent loads are near-instant.
- Glassy Scanning UI: A modern, translucent white terminal experience with a dynamic blurred background of your media.
- Local Privacy: All processing is done client-side. Even when using the self-hosted version, your media is processed locally in your browser.
- Multiple Formats: Supports official Instagram JSON exports and Instaloader regex-based naming conventions.
- Story Viewer: Native-like story experience with segmented progress bars, auto-playback, and audio controls.
- Customizable Grid: 1:1 or 3:4 aspect ratios with adjustable "bumps" for aesthetic alignment.
- Navigation Protection: Intercepts accidental browser "Back" or "Refresh" actions to protect your current session.
Deployment
Docker (Recommended)
The easiest way to run InstaArchive is using Docker.
docker run -d \
-p 3000:3000 \
-v /path/to/your/archives:/archives:ro \
ghcr.io/ergosteur/instaarchive-viewer:latest
Docker Compose
Create a compose.yml file:
services:
instaarchive:
image: ghcr.io/ergosteur/instaarchive-viewer:latest
ports:
- "3000:3000"
volumes:
- ./archives:/archives:ro
Run with:
docker compose up -d
Supported Archive Structure
Place your archive folders inside the mounted /archives directory. The directory name will be used as the account username.
Example Structure:
archives/
├── wanderlust_explorer/ # Instaloader format
│ ├── 2024-01-01_12-00-00_UTC.jpg
│ ├── 2024-01-01_12-00-00_UTC.json.xz
│ └── wanderlust_explorer_profile_pic.jpg
└── pixel_architect/ # Instagram Export format
├── 2023-12-25_pixel_architect - post_123.jpg
├── 2023-12-25_pixel_architect - post_123.json
└── pixel_architect.jpg
Local Development
Prerequisites: Node.js (LTS recommended)
- Install dependencies:
npm install - Start dev server:
npm run dev - Start local backend:
npm run server(Optional, serves./_sample-archives)
Description
Languages
TypeScript
92.7%
JavaScript
5.5%
CSS
0.9%
Dockerfile
0.6%
HTML
0.3%