Personal gallery application with online photo management, supporting Live Photos, EXIF parsing.
10K+
A smooth photo display and management application, supporting multiple image formats and large-size image rendering.
Useful links: Live Demo | Documention | GitHub Repository
We recommend deploying with the prebuilt Docker image. View the image on ghcr
Before deployment, create a .env file and configure environment variables. Refer to .env.example.
# Admin user email (required)
CFRAME_ADMIN_EMAIL=
# Admin user name (default to Chronoframe, optional)
CFRAME_ADMIN_NAME=
# Admin user password (default to CF1234@!, optional)
CFRAME_ADMIN_PASSWORD=
# App info
NUXT_PUBLIC_APP_TITLE=
NUXT_PUBLIC_APP_SLOGAN=
NUXT_PUBLIC_APP_AUTHOR=
NUXT_PUBLIC_APP_AVATAR_URL=
# Mapbox access token for map features, Mapbox GL JS (Client-side, public)
NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN=
# Mapbox secret access token for server-side, Mapbox Search API (Reverse Geocoding)
NUXT_MAPBOX_ACCESS_TOKEN=
# Storage provider (s3/github/local)
NUXT_STORAGE_PROVIDER=s3
# S3 storage config
NUXT_PROVIDER_S3_ENDPOINT=
NUXT_PROVIDER_S3_BUCKET=chronoframe
NUXT_PROVIDER_S3_REGION=auto
NUXT_PROVIDER_S3_ACCESS_KEY_ID=
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=
NUXT_PROVIDER_S3_PREFIX=photos/
NUXT_PROVIDER_S3_CDN_URL=
# Session password (32 chars, required)
NUXT_SESSION_PASSWORD=
# GitHub OAuth
NUXT_OAUTH_GITHUB_CLIENT_ID=
NUXT_OAUTH_GITHUB_CLIENT_SECRET=
Run with customized environment variables:
docker run -d --name chronoframe -p 3000:3000 -v $(pwd)/data:/app/data --env-file .env ghcr.io/hoshinosuzumi/chronoframe:latest
Create 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
Start:
docker-compose up -d
| Variable | Description | Default | Required |
|---|---|---|---|
| CFRAME_ADMIN_EMAIL | Email of the initial admin user | None | Yes, must be the GitHub account email used for login |
| CFRAME_ADMIN_NAME | Username of the initial admin | Chronoframe | No |
| CFRAME_ADMIN_PASSWORD | Password of the initial admin | CF1234@! | No |
| NUXT_PUBLIC_APP_TITLE | Application title | ChronoFrame | No |
| NUXT_PUBLIC_APP_SLOGAN | Application slogan | None | No |
| NUXT_PUBLIC_APP_AUTHOR | Application author | None | No |
| NUXT_PUBLIC_APP_AVATAR_URL | Application avatar URL | None | No |
| NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN | Mapbox access token for map service | None | Yes |
| NUXT_MAPBOX_ACCESS_TOKEN | Mapbox access token for location info | None | No |
| NUXT_STORAGE_PROVIDER | Storage provider (s3, github, local) | s3 | Yes |
| NUXT_PROVIDER_S3_ENDPOINT | S3 endpoint | None | Required if provider is s3 |
| NUXT_PROVIDER_S3_BUCKET | S3 bucket name | chronoframe | Required if provider is s3 |
| NUXT_PROVIDER_S3_REGION | S3 bucket region | auto | Required if provider is s3 |
| NUXT_PROVIDER_S3_ACCESS_KEY_ID | S3 access key ID | None | Required if provider is s3 |
| NUXT_PROVIDER_S3_SECRET_ACCESS_KEY | S3 secret access key | None | Required if provider is s3 |
| NUXT_PROVIDER_S3_PREFIX | S3 object prefix | photos/ | No |
| NUXT_PROVIDER_S3_CDN_URL | S3 CDN URL | None | No |
| NUXT_OAUTH_GITHUB_CLIENT_ID | GitHub OAuth app Client ID | None | Yes |
| NUXT_OAUTH_GITHUB_CLIENT_SECRET | GitHub OAuth app Client Secret | None | Yes |
| NUXT_SESSION_PASSWORD | Session encryption password (32 chars) | None | Yes |
If
CFRAME_ADMIN_EMAILandCFRAME_ADMIN_PASSWORDare not set, the default admin account is:
- Email:
[email protected]- Password:
CF1234@!
Content type
Image
Digest
sha256:2edf0ef29…
Size
143.4 MB
Last updated
about 2 months ago
docker pull hoshinosuzumi/chronoframe:nightly