165 lines
6.2 KiB
YAML
165 lines
6.2 KiB
YAML
version: '3.5'
|
|
|
|
## Continuous Integration (CI) Test Environment
|
|
services:
|
|
## App Dev Container
|
|
## Docs: https://docs.photoprism.app/developer-guide/
|
|
photoprism:
|
|
build: .
|
|
image: photoprism/photoprism:develop
|
|
security_opt:
|
|
- seccomp:unconfined
|
|
- apparmor:unconfined
|
|
depends_on:
|
|
- mariadb
|
|
- dummy-webdav
|
|
volumes:
|
|
- "~/.cache/npm:/root/.cache/npm"
|
|
- "~/.cache/go-mod:/go/pkg/mod"
|
|
environment:
|
|
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
|
|
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
|
PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
|
|
PHOTOPRISM_SITE_DESCRIPTION: "Open-Source Photo Management"
|
|
PHOTOPRISM_SITE_AUTHOR: "@photoprism_app"
|
|
PHOTOPRISM_DEBUG: "false"
|
|
PHOTOPRISM_READONLY: "false"
|
|
PHOTOPRISM_PUBLIC: "true"
|
|
PHOTOPRISM_PID_FILENAME: "photoprism.pid"
|
|
PHOTOPRISM_LOG_FILENAME: "photoprism.log"
|
|
PHOTOPRISM_DETACH_SERVER: "true"
|
|
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
|
|
PHOTOPRISM_HTTP_PORT: 2342
|
|
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
|
PHOTOPRISM_DATABASE_DRIVER: "mysql"
|
|
PHOTOPRISM_DATABASE_SERVER: "mariadb:4001"
|
|
PHOTOPRISM_DATABASE_NAME: "photoprism"
|
|
PHOTOPRISM_DATABASE_USER: "root"
|
|
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
|
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
|
PHOTOPRISM_TEST_DSN: ".test.db"
|
|
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # the initial admin password (min 4 characters)
|
|
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"
|
|
PHOTOPRISM_DISABLE_CHOWN: "true" # 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
|
|
PHOTOPRISM_DISABLE_SETTINGS: "false" # disables Settings in Web UI
|
|
PHOTOPRISM_DISABLE_PLACES: "false" # disables reverse geocoding and maps
|
|
PHOTOPRISM_DISABLE_EXIFTOOL: "false" # don't create ExifTool JSON files for improved metadata extraction
|
|
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # don't use TensorFlow for image classification
|
|
PHOTOPRISM_DETECT_NSFW: "false" # flag photos as private that MAY be offensive (requires TensorFlow)
|
|
PHOTOPRISM_UPLOAD_NSFW: "false" # allow uploads that may be offensive
|
|
PHOTOPRISM_DARKTABLE_PRESETS: "false" # enables Darktable presets and disables concurrent RAW conversion
|
|
PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear
|
|
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
|
PHOTOPRISM_THUMB_SIZE: 2048 # pre-rendered thumbnail size limit (default 2048, min 720, max 7680)
|
|
# PHOTOPRISM_THUMB_SIZE: 4096 # retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
|
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680)
|
|
PHOTOPRISM_JPEG_SIZE: 7680 # size limit for converted image files in pixels (720-30000)
|
|
PHOTOPRISM_JPEG_QUALITY: 92 # set to 95 for high-quality thumbnails (25-100)
|
|
CODECOV_TOKEN:
|
|
CODECOV_ENV:
|
|
CODECOV_URL:
|
|
CODECOV_SLUG:
|
|
VCS_COMMIT_ID:
|
|
VCS_BRANCH_NAME:
|
|
VCS_PULL_REQUEST:
|
|
VCS_SLUG:
|
|
VCS_TAG:
|
|
CI_BUILD_URL:
|
|
CI_BUILD_ID:
|
|
CI_JOB_ID:
|
|
CI:
|
|
DRONE:
|
|
DRONE_BRANCH:
|
|
DRONE_BUILD_ACTION:
|
|
DRONE_BUILD_CREATED:
|
|
DRONE_BUILD_EVENT:
|
|
DRONE_BUILD_FINISHED:
|
|
DRONE_BUILD_NUMBER:
|
|
DRONE_BUILD_PARENT:
|
|
DRONE_BUILD_STARTED:
|
|
DRONE_BUILD_STATUS:
|
|
DRONE_CALVER:
|
|
DRONE_COMMIT:
|
|
DRONE_COMMIT_AFTER:
|
|
DRONE_COMMIT_AUTHOR:
|
|
DRONE_COMMIT_AUTHOR_AVATAR:
|
|
DRONE_COMMIT_AUTHOR_EMAIL:
|
|
DRONE_COMMIT_AUTHOR_NAME:
|
|
DRONE_COMMIT_BEFORE:
|
|
DRONE_COMMIT_BRANCH:
|
|
DRONE_COMMIT_LINK:
|
|
DRONE_COMMIT_MESSAGE:
|
|
DRONE_COMMIT_REF:
|
|
DRONE_COMMIT_SHA:
|
|
DRONE_DEPLOY_TO:
|
|
DRONE_FAILED_STAGES:
|
|
DRONE_FAILED_STEPS:
|
|
DRONE_GIT_HTTP_URL:
|
|
DRONE_GIT_SSH_URL:
|
|
DRONE_PULL_REQUEST:
|
|
DRONE_REMOTE_URL:
|
|
DRONE_REPO:
|
|
DRONE_REPO_BRANCH:
|
|
DRONE_REPO_LINK:
|
|
DRONE_REPO_NAME:
|
|
DRONE_REPO_NAMESPACE:
|
|
DRONE_REPO_OWNER:
|
|
DRONE_REPO_PRIVATE:
|
|
DRONE_REPO_SCM:
|
|
DRONE_REPO_VISIBILITY:
|
|
DRONE_SEMVER:
|
|
DRONE_SEMVER_BUILD:
|
|
DRONE_SEMVER_ERROR:
|
|
DRONE_SEMVER_MAJOR:
|
|
DRONE_SEMVER_MINOR:
|
|
DRONE_SEMVER_PATCH:
|
|
DRONE_SEMVER_PRERELEASE:
|
|
DRONE_SEMVER_SHORT:
|
|
DRONE_SOURCE_BRANCH:
|
|
DRONE_STAGE_ARCH:
|
|
DRONE_STAGE_DEPENDS_ON:
|
|
DRONE_STAGE_FINISHED:
|
|
DRONE_STAGE_KIND:
|
|
DRONE_STAGE_MACHINE:
|
|
DRONE_STAGE_NAME:
|
|
DRONE_STAGE_NUMBER:
|
|
DRONE_STAGE_OS:
|
|
DRONE_STAGE_STARTED:
|
|
DRONE_STAGE_STATUS:
|
|
DRONE_STAGE_TYPE:
|
|
DRONE_STAGE_VARIANT:
|
|
DRONE_STEP_NAME:
|
|
DRONE_STEP_NUMBER:
|
|
DRONE_SYSTEM_HOST:
|
|
DRONE_SYSTEM_HOSTNAME:
|
|
DRONE_SYSTEM_PROTO:
|
|
DRONE_SYSTEM_VERSION:
|
|
DRONE_TAG:
|
|
DRONE_TARGET_BRANCH:
|
|
|
|
## MariaDB Database Server
|
|
## Docs: https://mariadb.com/docs/reference/cs10.6/
|
|
mariadb:
|
|
image: mariadb:10.6
|
|
command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
|
|
expose:
|
|
- "4001" # database port (internal)
|
|
volumes:
|
|
- "./scripts/sql/mariadb-init.sql:/docker-entrypoint-initdb.d/init.sql"
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: photoprism
|
|
MYSQL_USER: photoprism
|
|
MYSQL_PASSWORD: photoprism
|
|
MYSQL_DATABASE: photoprism
|
|
|
|
## Dummy WebDAV Server
|
|
dummy-webdav:
|
|
image: photoprism/dummy-webdav:20211109
|
|
environment:
|
|
WEBDAV_USERNAME: admin
|
|
WEBDAV_PASSWORD: photoprism
|