Skip to content

EdwinZhanCN/Lumilio-Photos

Repository files navigation

Lumilio Photos

logo

Go React PostgreSQL License: GPL v3

Warning

🚧 This Project is Under Active Development. 🚧

Tech Stack

Web

React TypeScript Vite TailwindCSS DaisyUI React Query Rust WebAssembly

Server

Go Gin pgvector River LibRaw

Quick Start

Production (Docker)

git clone https://github.com/EdwinZhanCN/Lumilio-Photos.git
cd Lumilio-Photos
docker compose up -d

Access:

Security key behavior:

  • LUMILIO_SECRET_KEY is treated as a key file path (not raw key text).
  • If the file does not exist, server auto-generates and persists it.
  • The same key file is used to derive JWT signing key and settings encryption key.

Development

Prerequisites: Go 1.24+, Node.js 23+, Docker, Make

# Clone and setup
git clone https://github.com/EdwinZhanCN/Lumilio-Photos.git
cd Lumilio-Photos
make setup

# Start everything (database + server + web)
make dev

Access:

Note: Database runs on port 5433 Development database uses the standalone image defined in server/db.Dockerfile; it is not started via docker compose. LUMILIO_SECRET_KEY defaults to ./data/storage/.secrets/lumilio_secret_key in local dev templates.

Make Commands

make dev            # Start database, server, and web (recommended)
make server-dev     # Start API server only
make web-dev        # Start web dev server only
make server-test    # Run Go tests
make db-logs        # View database logs
make db-shell       # PostgreSQL shell
make db-reset       # Reset database (⚠️ deletes all data)
make dto            # Generate DTO schemas for both backend and frontend
make clean          # Clean generated files

Manual Setup

If make dev doesn't work for you:

# Terminal 1: Database
make db-wait

# Terminal 2: Server
cd server
SERVER_ENV=development go run ./cmd

# Terminal 3: Web
cd web
npm run dev -- --host --port 6657

About

Photo Manage Web App

Resources

License

Stars

Watchers

Forks

Contributors