Favicon of ChronoFrame

ChronoFrame

Host your personal photo collection with flexible storage options. Easily view images on an interactive map, play motion photos, and deploy quickly via Docker.

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.

Directory Structure

chronoframe
data
.env
docker-compose.yml

docker-compose.yml

services:
  chronoframe:
    image: ghcr.io/hoshinosuzumi/chronoframe:latest
    container_name: chronoframe
    restart: unless-stopped
    ports:
      - '3000:3000'
    volumes:
      - ./data:/app/data
    env_file:
      - .env

.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=
Categories:

Share:

Ad
Favicon

 

  
 

Similar to ChronoFrame

Favicon

 

  
  
Favicon

 

  
  
Favicon