Take full control of your personal memories with a self-hosted photo gallery designed for simplicity and performance. This lightweight solution requires no complex database setup, allowing you to deploy instantly using Docker and SQLite3. Flexible storage options let you keep your images on local filesystems or S3-compatible backends. Experience your photos in a whole new way with smart geolocation features that automatically extract GPS data and plot your memories on an interactive globe. You can easily browse through your collection on any device thanks to a responsive, touch-friendly design that feels like a native app. It also offers full LivePhoto and Motion Photo support, automatically processing Apple and Google formats to preserve your dynamic moments. Whether you are managing a massive library or a curated portfolio, this open-source gallery provides a secure, private, and feature-rich environment for all your digital photography.
services:
chronoframe:
image: ghcr.io/hoshinosuzumi/chronoframe:latest
container_name: chronoframe
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- ./data:/app/data
env_file:
- .env# Admin email (required)
CFRAME_ADMIN_EMAIL=
# Admin username (optional, default Chronoframe)
CFRAME_ADMIN_NAME=
# Admin password (optional, default CF1234@!)
CFRAME_ADMIN_PASSWORD=
# Site metadata (all optional)
NUXT_PUBLIC_APP_TITLE=
NUXT_PUBLIC_APP_SLOGAN=
NUXT_PUBLIC_APP_AUTHOR=
NUXT_PUBLIC_APP_AVATAR_URL=
# Map provider (maplibre/mapbox)
NUXT_PUBLIC_MAP_PROVIDER=maplibre
# MapTiler access token for MapLibre
NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN=
# Mapbox access token for Mapbox
NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN=
# Mapbox unrestricted token (optional, reverse geocoding)
NUXT_MAPBOX_ACCESS_TOKEN=
# Storage provider (local, s3 or openlist)
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage
# Session password (32‑char random string, required)
NUXT_SESSION_PASSWORD=Auto-fetched about 21 hours ago
Auto-fetched about 21 hours ago