mirror of
https://github.com/photoprism/photoprism.git
synced 2026-07-17 16:49:04 +00:00
Develop: Make compose working_dir and paths configurable via WORKING_DIR
This commit is contained in:
parent
8ee2d47673
commit
7b0d64bef9
6 changed files with 51 additions and 40 deletions
|
|
@ -16,6 +16,12 @@
|
|||
# read by Docker Compose itself (so no --profile flag is required).
|
||||
# COMPOSE_PROFILES=postgres
|
||||
|
||||
# In-container working directory and bind mount target for the repo checkout.
|
||||
# Override when the host clone lives outside the default GOPATH layout; the
|
||||
# value is reused for working_dir, the source bind mount, and every PhotoPrism
|
||||
# path env var so they stay in sync.
|
||||
# WORKING_DIR=/go/src/github.com/photoprism/photoprism
|
||||
|
||||
# Network interfaces to which Traefik and other services bind on the host.
|
||||
# Defaults expose Traefik on every interface (so *.localssl.dev is reachable
|
||||
# from the LAN) and keep direct service ports on loopback only.
|
||||
|
|
|
|||
9
Makefile
9
Makefile
|
|
@ -39,6 +39,7 @@ BUILD_ARCH ?= $(shell ./scripts/dist/arch.sh)
|
|||
export BUILD_ARCH
|
||||
JS_BUILD_PATH ?= $(shell realpath "./assets/static/build")
|
||||
TF_VERSION ?= 2.18.0
|
||||
WORKING_DIR ?= /go/src/github.com/photoprism/photoprism
|
||||
|
||||
# Install parameters.
|
||||
INSTALL_PATH ?= $(BUILD_PATH)/photoprism-ce_$(BUILD_TAG)-$(shell echo $(BUILD_OS) | tr '[:upper:]' '[:lower:]')-$(BUILD_ARCH)
|
||||
|
|
@ -163,10 +164,10 @@ notice:
|
|||
fix-permissions:
|
||||
$(info Updating filesystem permissions...)
|
||||
@if [ $(UID) != 0 ]; then\
|
||||
echo "Running \"chown --preserve-root -Rcf $(UID):$(GID) /go /photoprism /opt/photoprism /tmp/photoprism\". Please wait."; \
|
||||
sudo chown --preserve-root -Rcf $(UID):$(GID) /go /photoprism /opt/photoprism /tmp/photoprism || true;\
|
||||
echo "Running \"chmod --preserve-root -Rcf u+rwX /go/src/github.com/photoprism/* /photoprism /opt/photoprism /tmp/photoprism\". Please wait.";\
|
||||
sudo chmod --preserve-root -Rcf u+rwX /go/src/github.com/photoprism/photoprism/* /photoprism /opt/photoprism /tmp/photoprism || true;\
|
||||
echo "Running \"chown --preserve-root -Rcf $(UID):$(GID) /go $(WORKING_DIR) /photoprism /opt/photoprism /tmp/photoprism\". Please wait."; \
|
||||
sudo chown --preserve-root -Rcf $(UID):$(GID) /go $(WORKING_DIR) /photoprism /opt/photoprism /tmp/photoprism || true;\
|
||||
echo "Running \"chmod --preserve-root -Rcf u+rwX $(WORKING_DIR)/* /photoprism /opt/photoprism /tmp/photoprism\". Please wait.";\
|
||||
sudo chmod --preserve-root -Rcf u+rwX $(WORKING_DIR)/* /photoprism /opt/photoprism /tmp/photoprism || true;\
|
||||
echo "Done."; \
|
||||
else\
|
||||
echo "Running as root. Nothing to do."; \
|
||||
|
|
|
|||
|
|
@ -43,10 +43,11 @@ services:
|
|||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
PHOTOPRISM_TEST_DSN: ".test.db"
|
||||
# PHOTOPRISM_TEST_DSN_MYSQL8: "root:photoprism@tcp(mysql:${MARIADB_PORT:-4001})/photoprism?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true&timeout=15s"
|
||||
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/storage/originals"
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/storage/import"
|
||||
WORKING_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
PHOTOPRISM_ASSETS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/originals"
|
||||
PHOTOPRISM_IMPORT_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/import"
|
||||
PHOTOPRISM_DISABLE_CHOWN: "false" # Disables storage permission updates on startup
|
||||
PHOTOPRISM_DISABLE_BACKUPS: "false" # Don't backup photo and album metadata to YAML files
|
||||
PHOTOPRISM_DISABLE_WEBDAV: "false" # Disables built-in WebDAV server
|
||||
|
|
@ -79,9 +80,9 @@ services:
|
|||
# - "/dev/video11:/dev/video11" # Video4Linux (h264_v4l2m2m)
|
||||
# - "/dev/dri/renderD128:/dev/dri/renderD128" # Intel GPU
|
||||
# - "/dev/dri/card0:/dev/dri/card0"
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
working_dir: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- ".:${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
|
||||
## MariaDB Database Server
|
||||
|
|
|
|||
|
|
@ -103,11 +103,12 @@ services:
|
|||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
# PHOTOPRISM_TEST_DSN_MYSQL8: "root:photoprism@tcp(mysql:${MARIADB_PORT:-4001})/photoprism?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true&timeout=15s"
|
||||
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/storage/originals"
|
||||
WORKING_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
PHOTOPRISM_ASSETS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/originals"
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 128000 # sets originals file size limit to 128 GB
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/storage/import"
|
||||
PHOTOPRISM_IMPORT_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/import"
|
||||
PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
|
||||
PHOTOPRISM_DISABLE_BACKUPS: "false" # disables backing up albums and photo metadata to YAML files
|
||||
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
|
||||
|
|
@ -132,17 +133,17 @@ services:
|
|||
PHOTOPRISM_INIT: "https intel tensorflow"
|
||||
## Additional dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/claude"
|
||||
GOCACHE: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gocache"
|
||||
CODEX_HOME: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/claude"
|
||||
GH_REPO: "photoprism/photoprism"
|
||||
GH_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/gh"
|
||||
GH_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gh"
|
||||
## Share hardware devices with FFmpeg for hardware video transcoding:
|
||||
devices:
|
||||
- "/dev/dri:/dev/dri"
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
working_dir: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- ".:${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
- "./storage:/photoprism"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
|
||||
|
|
|
|||
|
|
@ -106,11 +106,12 @@ services:
|
|||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
# PHOTOPRISM_TEST_DSN_MYSQL8: "root:photoprism@tcp(mysql:${MARIADB_PORT:-4001})/photoprism?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true&timeout=15s"
|
||||
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/storage/originals"
|
||||
WORKING_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
PHOTOPRISM_ASSETS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/originals"
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 128000 # sets originals file size limit to 128 GB
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/storage/import"
|
||||
PHOTOPRISM_IMPORT_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/import"
|
||||
PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
|
||||
PHOTOPRISM_DISABLE_BACKUPS: "false" # disables backing up albums and photo metadata to YAML files
|
||||
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
|
||||
|
|
@ -141,18 +142,18 @@ services:
|
|||
PHOTOPRISM_FFMPEG_BITRATE: "64" # video bitrate limit in Mbps (default: 60)
|
||||
## Additional dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/claude"
|
||||
GOCACHE: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gocache"
|
||||
CODEX_HOME: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/claude"
|
||||
GH_REPO: "photoprism/photoprism"
|
||||
GH_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/gh"
|
||||
GH_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gh"
|
||||
## Shared devices for video hardware transcoding (optional):
|
||||
# devices:
|
||||
# - "/dev/dri:/dev/dri" # Required Intel QSV or VAAPI hardware transcoding
|
||||
# - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m)
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
working_dir: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- ".:${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
- "./storage:/photoprism"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
|
||||
|
|
|
|||
21
compose.yaml
21
compose.yaml
|
|
@ -110,11 +110,12 @@ services:
|
|||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
# PHOTOPRISM_TEST_DSN_MYSQL8: "root:photoprism@tcp(mysql:${MARIADB_PORT:-4001})/photoprism?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true&timeout=15s"
|
||||
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/storage/originals"
|
||||
WORKING_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
PHOTOPRISM_ASSETS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/originals"
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 128000 # sets originals file size limit to 128 GB
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/storage/import"
|
||||
PHOTOPRISM_IMPORT_PATH: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/storage/import"
|
||||
PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
|
||||
PHOTOPRISM_DISABLE_BACKUPS: "false" # disables backing up albums and photo metadata to YAML files
|
||||
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
|
||||
|
|
@ -146,18 +147,18 @@ services:
|
|||
OLLAMA_API_KEY: "" # API key required to access Ollama (optional)
|
||||
## Additional dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/claude"
|
||||
GOCACHE: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gocache"
|
||||
CODEX_HOME: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/codex"
|
||||
CLAUDE_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/claude"
|
||||
GH_REPO: "photoprism/photoprism"
|
||||
GH_CONFIG_DIR: "/go/src/github.com/photoprism/photoprism/.local/gh"
|
||||
GH_CONFIG_DIR: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}/.local/gh"
|
||||
## Shared devices for video hardware transcoding (optional):
|
||||
# devices:
|
||||
# - "/dev/dri:/dev/dri" # Required Intel QSV or VAAPI hardware transcoding
|
||||
# - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m)
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
working_dir: "${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- ".:${WORKING_DIR:-/go/src/github.com/photoprism/photoprism}"
|
||||
- "./storage:/photoprism"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue