Skip to content

dadastory/lumamemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

631 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LumaMemo

Self-hosted, multi-user AI photo management platform.

License

Languages: English | 中文

LumaMemo is a private photo platform for families, teams, and creators, built on the original ChronoFrame project. It extends the upstream foundation with stronger security controls, multi-user administration, AI-assisted photo understanding, face albums, storage quota management, and enhanced RAW/Live Photo workflows.

Status

Completed

  • Photo management - Albums, metadata, map views, RAW assets, Live Photo, and Motion Photo support.
  • Security and multi-user administration - User isolation, permission-aware APIs, role management, and safe user deletion.
  • AI photo understanding - Tags, descriptions, face albums, text-to-image search, and photography critique.
  • Storage management - Local/S3/OpenList storage, per-user quotas, upload limits, and stale upload cleanup.
  • Local deployment stack - PostgreSQL, Qdrant, optional AI services, and Docker Compose based setup.

In Progress

  • AI photo restoration integration - Add AI-powered photo repair and enhancement workflows.

Deployment

Copy the environment template, review the required values, then start the Compose stack. The default compose file uses the published Docker image dadastory/lumamemo:latest.

cp .env.example .env
docker compose pull
docker compose up -d

At minimum, set a strong NUXT_SESSION_PASSWORD before exposing the service. Review administrator, storage, authentication, and map settings in .env for your environment.

For optional AI and middleware services, review:

Optional services are started explicitly:

# AI sidecars: Qdrant and LocalAI
docker compose -f docker-compose.yml -f third-party/ai/docker-compose.yml up -d

# Local maps and reverse geocoding
docker compose -f docker-compose.yml -f third-party/middleware/docker-compose.yml up -d

User Guide

If LUMAMEMO_ADMIN_EMAIL and LUMAMEMO_ADMIN_PASSWORD are not set, the default admin account is:

After signing in, use the dashboard to upload photos, manage users, configure storage quotas, enable AI features, and review queue results.

AI features are optional. When the AI switch is disabled, face albums and AI analysis sections are hidden from the user interface.

Screenshots

Gallery Photo Detail Map Explore Dashboard

Star History

Star history

Development

For local development setup, including source-built Docker usage, see CONTRIBUTING.md.

Common Commands

pnpm install
cp .env.example .env
pnpm dev
pnpm build        # Production build
pnpm lint         # Static lint check
pnpm docs:build   # Build documentation
pnpm db:generate  # Generate migration files
pnpm db:migrate   # Run migrations

Project Structure

lumamemo/
├── app/                    # Nuxt app, pages, components, composables
├── packages/
│   └── webgl-image/        # WebGL image viewer package
├── server/
│   ├── api/                # API routes
│   ├── database/           # Database schema and migrations
│   └── services/           # Storage, AI, queue, image, and domain services
├── shared/                 # Shared types and utilities
├── docs/                   # VitePress documentation
└── third-party/            # Optional AI and middleware Compose stacks

Acknowledgements

LumaMemo builds on the original ChronoFrame project by Timothy Yin. Thanks to the original author and contributors for the foundation this project extends.

This project also depends on many open-source projects and ecosystems, including Nuxt, Vue, TypeScript, Drizzle ORM, Nuxt UI, Tailwind CSS, Sharp, ExifTool, Qdrant, LocalAI, MapLibre GL, Mapbox GL, AWS SDK and S3-compatible storage, OpenList, OpenStreetMap, and Nominatim.

License

This project is distributed under the MIT License.

About

Self-hosted, multi-user AI photo management platform.

Resources

License

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors