photoprism/compose.ci.yaml

174 lines
6.8 KiB
YAML

## FOR TEST AND DEVELOPMENT ONLY, DO NOT USE IN PRODUCTION ##
## Setup: https://docs.photoprism.app/developer-guide/setup/ ##
services:
## Continuous Integration (CI) Environment
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_INIT: "https"
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial admin password (8-72 characters)
PHOTOPRISM_AUTH_MODE: "public" # authentication mode (public, password)
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: "Open-Source Photo Management"
PHOTOPRISM_SITE_AUTHOR: "@photoprism_app"
PHOTOPRISM_DEBUG: "false"
PHOTOPRISM_READONLY: "false"
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_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 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
PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API
PHOTOPRISM_DISABLE_PLACES: "false" # disables reverse geocoding and maps
PHOTOPRISM_DISABLE_EXIFTOOL: "false" # disables creating JSON metadata sidecar files with ExifTool
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
PHOTOPRISM_UPLOAD_NSFW: "false" # allow uploads that may be offensive
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
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: 85 # a higher value increases the quality and file size of JPEG images and 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/
mariadb:
image: mariadb:11
security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
- seccomp:unconfined
- apparmor:unconfined
command: --port=4001 --innodb-buffer-pool-size=256M --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:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "photoprism"
MARIADB_ROOT_PASSWORD: "photoprism"
## Dummy OpenID Connect Provider
dummy-oidc:
image: photoprism/dummy-oidc:231015
## Dummy WebDAV Server
dummy-webdav:
image: photoprism/dummy-webdav:231015
environment:
WEBDAV_USERNAME: admin
WEBDAV_PASSWORD: photoprism