Simplify configuration #66
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
|
@ -1,13 +1,10 @@
|
|||
/assets/photos/*
|
||||
/assets/cache/*
|
||||
/photos/*
|
||||
/frontend/node_modules/*
|
||||
/node_modules
|
||||
/assets/resources/database/*
|
||||
/assets/resources/static/build/*
|
||||
/assets/resources/nasnet
|
||||
/assets/resources/nsfw
|
||||
/assets/testdata
|
||||
/assets/backups
|
||||
/assets/static/build/*
|
||||
/assets/nasnet
|
||||
/assets/nsfw
|
||||
/storage
|
||||
/photoprism
|
||||
/coverage.*
|
||||
/frontend/tests/acceptance/screenshots
|
||||
|
|
14
.gitignore
vendored
|
@ -1,20 +1,16 @@
|
|||
# Application files and directories
|
||||
/photoprism
|
||||
/assets/photos/originals/*
|
||||
/assets/photos/import/*
|
||||
/assets/photos/export/*
|
||||
/assets/resources/database/*
|
||||
!/assets/resources/database/.gitignore
|
||||
/photos/originals/*
|
||||
/photos/import/*
|
||||
/storage/*
|
||||
/node_modules
|
||||
/frontend/.eslintcache
|
||||
/frontend/node_modules/*
|
||||
/frontend/tests/*.html
|
||||
/frontend/tests/*.log
|
||||
/frontend/tests/screenshots
|
||||
/assets/testdata
|
||||
/assets/backups
|
||||
/assets/resources/nasnet
|
||||
/assets/resources/nsfw
|
||||
/assets/nasnet
|
||||
/assets/nsfw
|
||||
/package-lock.json
|
||||
*.log
|
||||
*.db
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM photoprism/development:20200519
|
||||
FROM photoprism/development:20200530
|
||||
|
||||
# Set up project directory
|
||||
WORKDIR "/go/src/github.com/photoprism/photoprism"
|
||||
|
|
29
Makefile
|
@ -38,20 +38,20 @@ install-bin:
|
|||
scripts/build.sh prod ~/.local/bin/$(BINARY_NAME)
|
||||
install-assets:
|
||||
$(info Installing assets)
|
||||
mkdir -p ~/.config/photoprism
|
||||
mkdir -p ~/.cache/photoprism
|
||||
mkdir -p ~/.photoprism/storage/settings
|
||||
mkdir -p ~/.photoprism/storage/cache
|
||||
mkdir -p ~/.photoprism/storage
|
||||
mkdir -p ~/.photoprism/assets
|
||||
mkdir -p ~/Pictures/Originals
|
||||
mkdir -p ~/Pictures/Import
|
||||
mkdir -p ~/.local/share/photoprism/resources/database
|
||||
cp -r assets/resources/static assets/resources/templates assets/resources/nasnet assets/resources/nsfw ~/.local/share/photoprism/resources
|
||||
rsync -a -v --ignore-existing assets/config/*.yml ~/.config/photoprism
|
||||
find ~/.local/share/photoprism -name '.*' -type f -delete
|
||||
clean-local-share:
|
||||
rm -rf ~/.local/share/photoprism
|
||||
cp -r assets/static assets/templates assets/nasnet assets/nsfw ~/.photoprism/assets
|
||||
find ~/.photoprism/assets -name '.*' -type f -delete
|
||||
clean-local-assets:
|
||||
rm -rf ~/.photoprism/assets/*
|
||||
clean-local-cache:
|
||||
rm -rf ~/.cache/photoprism
|
||||
rm -rf ~/.photoprism/storage/cache/*
|
||||
clean-local-config:
|
||||
rm -f ~/.config/photoprism/*
|
||||
rm -f ~/.photoprism/storage/settings/*
|
||||
dep-js:
|
||||
(cd frontend && npm install --silent)
|
||||
dep-go:
|
||||
|
@ -64,9 +64,9 @@ dep-tensorflow:
|
|||
scripts/download-nasnet.sh
|
||||
scripts/download-nsfw.sh
|
||||
zip-nasnet:
|
||||
(cd assets/resources && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
|
||||
(cd assets && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
|
||||
zip-nsfw:
|
||||
(cd assets/resources && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
|
||||
(cd assets && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
|
||||
build-js:
|
||||
(cd frontend && env NODE_ENV=production npm run build)
|
||||
build-go:
|
||||
|
@ -126,8 +126,9 @@ clean:
|
|||
rm -f $(BINARY_NAME)
|
||||
rm -f *.log
|
||||
rm -rf node_modules
|
||||
rm -rf assets/testdata
|
||||
rm -rf assets/backups
|
||||
rm -rf storage/testdata
|
||||
rm -rf storage/backups
|
||||
rm -rf storage/cache
|
||||
rm -rf frontend/node_modules
|
||||
docker-development:
|
||||
scripts/docker-build.sh development $(DOCKER_TAG)
|
||||
|
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 866 B |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 822 B After Width: | Height: | Size: 822 B |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 510 KiB After Width: | Height: | Size: 510 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
@ -5,20 +5,20 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>{{ .config.Title }}</title>
|
||||
<title>{{ .config.SiteTitle }}</title>
|
||||
|
||||
<meta property="og:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
|
||||
<meta property="og:image" content="{{ .config.URL }}api/v1/preview"/>
|
||||
<meta property="og:url" content="{{ .config.URL }}"/>
|
||||
<meta property="og:description" content="{{ .config.Description }}"/>
|
||||
<meta property="og:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
|
||||
<meta property="og:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
|
||||
<meta property="og:url" content="{{ .config.SiteUrl }}"/>
|
||||
<meta property="og:description" content="{{ .config.SiteDescription }}"/>
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image"/>
|
||||
<meta name="twitter:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
|
||||
<meta name="twitter:description" content="{{ .config.Description }}"/>
|
||||
<meta name="twitter:image" content="{{ .config.URL }}api/v1/preview"/>
|
||||
<meta name="twitter:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
|
||||
<meta name="twitter:description" content="{{ .config.SiteDescription }}"/>
|
||||
<meta name="twitter:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
|
||||
|
||||
<meta name="author" content="{{ .config.Author }}">
|
||||
<meta name="description" content="{{ .config.Description }}"/>
|
||||
<meta name="author" content="{{ .config.SiteAuthor }}">
|
||||
<meta name="description" content="{{ .config.SiteDescription }}"/>
|
||||
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>{{ .config.Title }}</title>
|
||||
<title>{{ .config.SiteTitle }}</title>
|
||||
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">
|
|
@ -11,7 +11,11 @@ services:
|
|||
- "~/.cache/npm:/root/.cache/npm"
|
||||
- "~/.cache/go-mod:/go/pkg/mod"
|
||||
environment:
|
||||
PHOTOPRISM_URL: "http://localhost:2342/"
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SITE_CAPTION: "Browse your life"
|
||||
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_DEBUG: "false"
|
||||
PHOTOPRISM_READONLY: "false"
|
||||
PHOTOPRISM_PUBLIC: "true"
|
||||
|
@ -24,11 +28,12 @@ services:
|
|||
PHOTOPRISM_HTTP_PORT: 2342
|
||||
PHOTOPRISM_DATABASE_DRIVER: "mysql"
|
||||
PHOTOPRISM_DATABASE_DSN: "root:photoprism@tcp(photoprism-db:4001)/photoprism?parseTime=true"
|
||||
PHOTOPRISM_TEST_DRIVER: "test"
|
||||
PHOTOPRISM_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SUBTITLE: "Browse your life"
|
||||
PHOTOPRISM_DESCRIPTION: "Personal Photo Management tested by Travis CI."
|
||||
PHOTOPRISM_AUTHOR: "PhotoPrism.org"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
PHOTOPRISM_TEST_DSN: ".test.db"
|
||||
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/photos/originals"
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/photos/import"
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # On-demand rendering of default thumbnails (high memory and cpu usage)
|
||||
PHOTOPRISM_THUMB_SIZE: 2048 # Default thumbnail size limit (default 2048, min 720, max 3840)
|
||||
|
|
|
@ -14,7 +14,11 @@ services:
|
|||
shm_size: "2gb"
|
||||
environment:
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # Show TensorFlow log messages for development
|
||||
PHOTOPRISM_URL: "http://localhost:2342/"
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SITE_CAPTION: "Browse your life"
|
||||
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_DEBUG: "true"
|
||||
PHOTOPRISM_READONLY: "false"
|
||||
PHOTOPRISM_PUBLIC: "true"
|
||||
|
@ -26,17 +30,12 @@ services:
|
|||
PHOTOPRISM_HTTP_PORT: 2342
|
||||
PHOTOPRISM_DATABASE_DRIVER: "mysql"
|
||||
PHOTOPRISM_DATABASE_DSN: "root:photoprism@tcp(photoprism-db:4001)/photoprism?parseTime=true"
|
||||
PHOTOPRISM_TEST_DRIVER: "test"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
PHOTOPRISM_TEST_DSN: ".test.db"
|
||||
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
|
||||
PHOTOPRISM_CACHE_PATH: "/go/src/github.com/photoprism/photoprism/assets/cache"
|
||||
PHOTOPRISM_RESOURCES_PATH: "/go/src/github.com/photoprism/photoprism/assets/resources"
|
||||
PHOTOPRISM_CONFIG_PATH: "/go/src/github.com/photoprism/photoprism/assets/config"
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/import"
|
||||
PHOTOPRISM_TEMP_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/temp"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/assets/photos/originals"
|
||||
PHOTOPRISM_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SUBTITLE: "Browse your life"
|
||||
PHOTOPRISM_AUTHOR: "PhotoPrism.org"
|
||||
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/photos/originals"
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/photos/import"
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # On-demand rendering of default thumbnails (high memory and cpu usage)
|
||||
PHOTOPRISM_THUMB_SIZE: 2048 # Default thumbnail size limit (default 2048, min 720, max 3840)
|
||||
|
|
|
@ -4,18 +4,19 @@ FROM photoprism/photoprism:latest as build
|
|||
ENV TF_CPP_MIN_LOG_LEVEL 2
|
||||
|
||||
# Copy assets
|
||||
COPY /docker/demo/index.tmpl /photoprism/assets/resources/templates
|
||||
COPY /docker/demo/index.tmpl /photoprism/assets/templates
|
||||
|
||||
# Download example photos
|
||||
RUN wget -qO- https://dl.photoprism.org/fixtures/demo.tar.gz | tar xvz -C /photoprism/import
|
||||
|
||||
# Configure PhotoPrism
|
||||
ENV PHOTOPRISM_STORAGE_PATH /photoprism/storage
|
||||
ENV PHOTOPRISM_DEBUG false
|
||||
ENV PHOTOPRISM_READONLY false
|
||||
ENV PHOTOPRISM_PUBLIC true
|
||||
ENV PHOTOPRISM_EXPERIMENTAL true
|
||||
ENV PHOTOPRISM_UPLOAD_NSFW false
|
||||
ENV PHOTOPRISM_DETECT_NSFW true
|
||||
ENV PHOTOPRISM_DETECT_NSFW false
|
||||
ENV PHOTOPRISM_SIDECAR_JSON true
|
||||
ENV PHOTOPRISM_SIDECAR_YAML false
|
||||
ENV PHOTOPRISM_SIDECAR_HIDDEN true
|
||||
|
|
|
@ -5,21 +5,21 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>{{ .config.Title }}</title>
|
||||
<title>{{ .config.SiteTitle }}</title>
|
||||
|
||||
<meta property="og:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
|
||||
<meta property="og:image" content="{{ .config.URL }}api/v1/preview"/>
|
||||
<meta property="og:url" content="{{ .config.URL }}"/>
|
||||
<meta property="og:description" content="{{ .config.Description }}"/>
|
||||
<meta property="og:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
|
||||
<meta property="og:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
|
||||
<meta property="og:url" content="{{ .config.SiteUrl }}"/>
|
||||
<meta property="og:description" content="{{ .config.SiteDescription }}"/>
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image"/>
|
||||
<meta name="twitter:title" content="{{ .config.Title }}: {{ .config.Subtitle }}"/>
|
||||
<meta name="twitter:description" content="{{ .config.Description }}"/>
|
||||
<meta name="twitter:image" content="{{ .config.URL }}api/v1/preview"/>
|
||||
<meta name="twitter:title" content="{{ .config.SiteTitle }}: {{ .config.SiteCaption }}"/>
|
||||
<meta name="twitter:description" content="{{ .config.SiteDescription }}"/>
|
||||
<meta name="twitter:image" content="{{ .config.SiteUrl }}api/v1/preview"/>
|
||||
<meta name="twitter:site" content="@browseyourlife"/>
|
||||
|
||||
<meta name="author" content="{{ .config.Author }}">
|
||||
<meta name="description" content="{{ .config.Description }}"/>
|
||||
<meta name="author" content="{{ .config.SiteAuthor }}">
|
||||
<meta name="description" content="{{ .config.SiteDescription }}"/>
|
||||
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="/static/favicons/favicon.png">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM photoprism/development:20200519 as build
|
||||
FROM photoprism/development:20200530 as build
|
||||
|
||||
# Set up project directory
|
||||
WORKDIR "/go/src/github.com/photoprism/photoprism"
|
||||
|
@ -54,29 +54,22 @@ ENV TF_CPP_MIN_LOG_LEVEL 2
|
|||
|
||||
ENV PATH /photoprism/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
|
||||
ENV PHOTOPRISM_ORIGINALS_PATH /photoprism/originals
|
||||
ENV PHOTOPRISM_IMPORT_PATH /photoprism/import
|
||||
ENV PHOTOPRISM_TEMP_PATH /photoprism/temp
|
||||
ENV PHOTOPRISM_CACHE_PATH /photoprism/cache
|
||||
ENV PHOTOPRISM_CONFIG_PATH /photoprism/config
|
||||
ENV PHOTOPRISM_CONFIG_FILE /photoprism/config/photoprism.yml
|
||||
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
|
||||
ENV PHOTOPRISM_RESOURCES_PATH /photoprism/assets/resources
|
||||
ENV PHOTOPRISM_LOG_FILENAME /photoprism/photoprism.log
|
||||
ENV PHOTOPRISM_PID_FILENAME /photoprism/photoprism.pid
|
||||
|
||||
# Copy files to /photoprism
|
||||
COPY --from=build /root/.local/bin/photoprism /photoprism/bin/photoprism
|
||||
COPY --from=build /root/.local/share/photoprism /photoprism/assets
|
||||
COPY --from=build /root/.config/photoprism /photoprism/config
|
||||
COPY --from=build /root/.photoprism/assets /photoprism/assets
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p \
|
||||
/photoprism/originals \
|
||||
/photoprism/import \
|
||||
/photoprism/database \
|
||||
/photoprism/temp \
|
||||
/photoprism/cache
|
||||
/photoprism/storage/settings \
|
||||
/photoprism/storage/cache
|
||||
|
||||
RUN chmod -R 777 /photoprism
|
||||
|
||||
|
|
|
@ -138,29 +138,22 @@ ENV TF_CPP_MIN_LOG_LEVEL 2
|
|||
|
||||
ENV PATH /photoprism/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
|
||||
ENV PHOTOPRISM_ORIGINALS_PATH /photoprism/originals
|
||||
ENV PHOTOPRISM_IMPORT_PATH /photoprism/import
|
||||
ENV PHOTOPRISM_TEMP_PATH /photoprism/temp
|
||||
ENV PHOTOPRISM_CACHE_PATH /photoprism/cache
|
||||
ENV PHOTOPRISM_CONFIG_PATH /photoprism/config
|
||||
ENV PHOTOPRISM_CONFIG_FILE /photoprism/config/photoprism.yml
|
||||
ENV PHOTOPRISM_ASSETS_PATH /photoprism/assets
|
||||
ENV PHOTOPRISM_RESOURCES_PATH /photoprism/assets/resources
|
||||
ENV PHOTOPRISM_LOG_FILENAME /photoprism/photoprism.log
|
||||
ENV PHOTOPRISM_PID_FILENAME /photoprism/photoprism.pid
|
||||
|
||||
# Copy files to /photoprism
|
||||
COPY --from=build /root/.local/bin/photoprism /photoprism/bin/photoprism
|
||||
COPY --from=build /root/.local/share/photoprism /photoprism/assets
|
||||
COPY --from=build /root/.config/photoprism /photoprism/config
|
||||
COPY --from=build /root/.photoprism/assets /photoprism/assets
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p \
|
||||
/photoprism/originals \
|
||||
/photoprism/import \
|
||||
/photoprism/database \
|
||||
/photoprism/temp \
|
||||
/photoprism/cache
|
||||
/photoprism/storage/settings \
|
||||
/photoprism/storage/cache
|
||||
|
||||
RUN chmod -R 777 /photoprism
|
||||
|
||||
|
|
|
@ -19,20 +19,20 @@ services:
|
|||
timeout: 15s
|
||||
retries: 5
|
||||
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
|
||||
PHOTOPRISM_URL: "https://demo.photoprism.org/"
|
||||
PHOTOPRISM_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SUBTITLE: "Browse your life"
|
||||
PHOTOPRISM_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_UPLOAD_NSFW: "true"
|
||||
PHOTOPRISM_DETECT_NSFW: "false"
|
||||
PHOTOPRISM_EXPERIMENTAL: "false"
|
||||
PHOTOPRISM_DEBUG: "false"
|
||||
PHOTOPRISM_READONLY: "false"
|
||||
PHOTOPRISM_PUBLIC: "false"
|
||||
PHOTOPRISM_DISABLE_SETTINGS: "false"
|
||||
PHOTOPRISM_DEBUG: "false" # Run in debug mode
|
||||
PHOTOPRISM_PUBLIC: "false" # No authentication / password required
|
||||
PHOTOPRISM_READONLY: "false" # Don't add files or modify originals directory in any way
|
||||
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that may be offensive
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive
|
||||
PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SITE_CAPTION: "Browse your life"
|
||||
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
|
||||
PHOTOPRISM_HTTP_PORT: 2342
|
||||
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Plain text or bcrypt hash (escape "$" with "$$")
|
||||
PHOTOPRISM_WEBDAV_PASSWORD: "photoprism" # Plain text only (username "photoprism")
|
||||
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
|
||||
|
@ -48,14 +48,12 @@ services:
|
|||
PHOTOPRISM_THUMB_LIMIT: 3840 # On-demand thumbnail size limit (default 2048, min 720, max 3840)
|
||||
PHOTOPRISM_JPEG_QUALITY: 90 # Use 95 for high-quality thumbnails (requires more storage)
|
||||
PHOTOPRISM_JPEG_HIDDEN: "true" # Create JPEG files in .photoprism (when converting other file types)
|
||||
PHOTOPRISM_STORAGE_PATH: "/photoprism/storage"
|
||||
volumes:
|
||||
- "~/Pictures/Originals:/photoprism/originals" # [local path]:[container path]
|
||||
- "~/Pictures/Import:/photoprism/import" # [local path]:[container path] (optional)
|
||||
- "photoprism-config:/photoprism/config" # keep settings
|
||||
- "photoprism-cache:/photoprism/cache" # keep thumbnail cache
|
||||
- "photoprism-storage:/photoprism/storage" # Keep cache, settings and database
|
||||
|
||||
volumes: # keep this
|
||||
photoprism-config:
|
||||
driver: local
|
||||
photoprism-cache:
|
||||
photoprism-storage:
|
||||
driver: local
|
||||
|
|
|
@ -18,20 +18,20 @@ services:
|
|||
timeout: 15s
|
||||
retries: 5
|
||||
environment: # Run "photoprism help" and "photoprism config" too see all config options and current values
|
||||
PHOTOPRISM_URL: "http://localhost:2342/"
|
||||
PHOTOPRISM_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SUBTITLE: "Browse your life"
|
||||
PHOTOPRISM_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_UPLOAD_NSFW: "true"
|
||||
PHOTOPRISM_DETECT_NSFW: "false"
|
||||
PHOTOPRISM_EXPERIMENTAL: "false"
|
||||
PHOTOPRISM_DEBUG: "false"
|
||||
PHOTOPRISM_READONLY: "false"
|
||||
PHOTOPRISM_PUBLIC: "false"
|
||||
PHOTOPRISM_DISABLE_SETTINGS: "false"
|
||||
PHOTOPRISM_DEBUG: "false" # Run in debug mode
|
||||
PHOTOPRISM_PUBLIC: "false" # No authentication / password required
|
||||
PHOTOPRISM_READONLY: "false" # Don't add files or modify originals directory in any way
|
||||
PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that may be offensive
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive
|
||||
PHOTOPRISM_EXPERIMENTAL: "false" # Enable experimental features
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # Canonical / public site URL
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
PHOTOPRISM_SITE_CAPTION: "Browse your life"
|
||||
PHOTOPRISM_SITE_DESCRIPTION: "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source."
|
||||
PHOTOPRISM_SITE_AUTHOR: "Anonymous"
|
||||
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
|
||||
PHOTOPRISM_HTTP_PORT: 2342
|
||||
PHOTOPRISM_SETTINGS_HIDDEN: "false" # Users can not view or change settings
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # Plain text or bcrypt hash (escape "$" with "$$")
|
||||
PHOTOPRISM_WEBDAV_PASSWORD: "photoprism" # Plain text only (username "photoprism")
|
||||
PHOTOPRISM_DATABASE_DRIVER: "sqlite" # Change to "mysql" for external MySQL or MariaDB
|
||||
|
@ -47,11 +47,11 @@ services:
|
|||
PHOTOPRISM_THUMB_LIMIT: 3840 # On-demand thumbnail size limit (default 2048, min 720, max 3840)
|
||||
PHOTOPRISM_JPEG_QUALITY: 90 # Use 95 for high-quality thumbnails (requires more storage)
|
||||
PHOTOPRISM_JPEG_HIDDEN: "true" # Create JPEG files in .photoprism (when converting other file types)
|
||||
PHOTOPRISM_STORAGE_PATH: "/photoprism/storage"
|
||||
volumes:
|
||||
- "~/Pictures/Originals:/photoprism/originals" # [local path]:[container path]
|
||||
- "~/Pictures/Import:/photoprism/import" # [local path]:[container path] (optional)
|
||||
- "photoprism-config:/photoprism/config" # keep settings
|
||||
- "photoprism-cache:/photoprism/cache" # keep thumbnail cache
|
||||
- "photoprism-storage:/photoprism/storage" # Keep cache, settings and database
|
||||
|
||||
# photoprism-db: # Uncomment, if you want to use MariaDB instead of SQLite
|
||||
# image: mariadb:10.5 # Alternatively mysql:8.0
|
||||
|
@ -66,9 +66,7 @@ services:
|
|||
# MYSQL_DATABASE: photoprism
|
||||
|
||||
volumes: # keep this
|
||||
photoprism-config:
|
||||
driver: local
|
||||
photoprism-cache:
|
||||
photoprism-storage:
|
||||
driver: local
|
||||
# photoprism-database:
|
||||
# driver: local
|
||||
|
|
12
frontend/package-lock.json
generated
|
@ -1798,7 +1798,8 @@
|
|||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -11237,7 +11238,8 @@
|
|||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.21",
|
||||
|
@ -13030,7 +13032,8 @@
|
|||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"parse-json": {
|
||||
"version": "2.2.0",
|
||||
|
@ -13441,7 +13444,8 @@
|
|||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": ""
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"string-width": {
|
||||
"version": "3.1.0",
|
||||
|
|
|
@ -100,10 +100,10 @@ router.beforeEach((to, from, next) => {
|
|||
router.afterEach((to) => {
|
||||
if (to.meta.title) {
|
||||
config.page.title = to.meta.title;
|
||||
window.document.title = "PhotoPrism: " + to.meta.title;
|
||||
window.document.title = config.values.siteTitle + ": " + to.meta.title;
|
||||
} else {
|
||||
config.page.title = "";
|
||||
window.document.title = "PhotoPrism";
|
||||
window.document.title = config.values.siteTitle;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ import Event from "pubsub-js";
|
|||
import themes from "../resources/themes.json";
|
||||
import translations from "../resources/translations.json";
|
||||
import Api from "./api";
|
||||
import {config} from "../session";
|
||||
|
||||
class Config {
|
||||
/**
|
||||
|
@ -14,9 +15,7 @@ class Config {
|
|||
|
||||
this.$vuetify = null;
|
||||
this.translations = translations;
|
||||
this.page = {
|
||||
title: "PhotoPrism",
|
||||
};
|
||||
this.page = {};
|
||||
|
||||
if (!values) {
|
||||
console.warn("config: values are empty");
|
||||
|
@ -25,6 +24,7 @@ class Config {
|
|||
return;
|
||||
}
|
||||
|
||||
this.page.title = values.siteTitle;
|
||||
this.values = values;
|
||||
this.debug = !!values.debug;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
@click.stop="showNavigation()">
|
||||
<v-toolbar-side-icon class="p-navigation-show"></v-toolbar-side-icon>
|
||||
|
||||
<v-toolbar-title class="p-navigation-title">{{ page.title }}</v-toolbar-title>
|
||||
<v-toolbar-title class="p-navigation-title">{{ config.siteTitle }}</v-toolbar-title>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
|
|
|
@ -297,7 +297,7 @@
|
|||
this.model = m;
|
||||
|
||||
this.filter.order = m.Order;
|
||||
window.document.title = `PhotoPrism: ${this.model.Title}`;
|
||||
window.document.title = `${this.$config.get("siteTitle")}: ${this.model.Title}`;
|
||||
|
||||
return Promise.resolve(this.model)
|
||||
});
|
||||
|
@ -319,7 +319,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
window.document.title = `PhotoPrism: ${this.model.Title}`
|
||||
window.document.title = `${this.$config.get("siteTitle")}: ${this.model.Title}`
|
||||
|
||||
this.dirty = true;
|
||||
this.scrollDisabled = false;
|
||||
|
|
|
@ -30,7 +30,7 @@ export default [
|
|||
name: "photos",
|
||||
path: "/photos",
|
||||
component: Photos,
|
||||
meta: {title: c.subtitle, auth: true},
|
||||
meta: {title: c.siteCaption, auth: true},
|
||||
props: {staticFilter: {photo: "true"}},
|
||||
},
|
||||
{
|
||||
|
|