First-time setup
After installing, first-time setup does three things: create the admin → set up login protection → create the primary repository. Desktop enters through the Control Panel; Docker opens the Server address directly.
Before you start
- Desktop: the Control Panel shows the Server as running and the browser has opened
http://localhost:6680. - Docker:
docker compose psshowslumiliohealthy; openhttp://<host-IP>:6680in the browser.
The “First run setup” welcome page means you can start.
Step 1: Create the admin
- Choose the interface language and region (browser preference only).
- Enter a username (3–32 chars, starting with a letter) and a password (10–72 chars, with upper case, lower case, and a digit).
- Click Create admin and continue.
Success: you are signed in and moved to the security step.
Step 2: Set up login protection (recommended)
The wizard offers TOTP, a passkey, and recovery codes.
- Enable TOTP: scan the QR code with an authenticator app (Apple Passwords, Google Authenticator, Microsoft Authenticator) and enter the 6-digit code.
- Passkey: optional; available after TOTP, only on localhost or an HTTPS address.
- Recovery codes: one-time codes shown after TOTP; store them somewhere safe, separate from the device.
You can skip, but the admin controls the whole Server — skipping means password-only protection.
Step 3: Create the primary repository
- Enter a name (display only; the directory is always
primary). - Storage layout: keep the default
date(archive by year/month). - Filename conflict handling: keep the default
rename(safe rename on conflict; originals are never replaced).
Success: the main interface opens.
Verify
- Open Manage and confirm the primary repository is available;
- Add a few photos and wait for processing;
- Open the Repository and confirm viewing works;
- Create your first database backup (see Backup and Data Integrity).
If it fails
- Desktop: check the Control Panel Server status and error logs.
- Docker:
docker compose logs lumilio. - Never create or delete the
primarydirectory manually; determine whether the problem is the missing admin, the missing primary repository, or an unwritable storage path.
