Commit graph

459 commits

Author SHA1 Message Date
Cathie Integra
6e9b8ccabf Develop: Add install-doctl.sh and install-hcloud.sh scripts 2026-05-09 09:49:56 +02:00
Michael Mayer
346d56bdb0 Develop: Update Makefile and scripts/dist/install-codex.sh
The current version of Codex does not have a "general_analytics" flag.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-05-08 09:05:46 +02:00
Cathie Integra
b0d6f94416 Setup: List chromium-common explicitly in install-chrome.sh package set 2026-05-05 14:56:27 +02:00
Cathie Integra
6609b709d6 Setup: Document chromium runtime dependencies in install-chrome.sh 2026-05-05 12:50:26 +02:00
Cathie Integra
369edd3556 Setup: Install chromium from PhotoPrism's internal mirror with XtraDeb fallback 2026-05-05 12:47:25 +02:00
Michael Mayer
d92d5c6739 ONNX: Upgrade runtime from v1.25.0 to v1.25.1 #5555 2026-05-04 11:48:50 +00:00
Cathie Integra
6c5095f5dc Build: Propagate docker buildx exit code from buildx-multi.sh #5553 2026-05-04 12:46:50 +02:00
Cathie Integra
84491de31b Build: Switch Ubuntu ARM64 chromium source from Bookworm to XtraDeb PPA #5553 2026-05-04 11:10:54 +02:00
Cathie Integra
597cec8e75 Build: Make Bookworm chromium lib whitelist conditional on Jammy #5553 2026-05-04 10:47:41 +02:00
Cathie Integra
a32b6da645 Build: Whitelist chromium runtime libs from Bookworm on Ubuntu ARM64 #5553 2026-05-04 10:18:14 +02:00
Cathie Integra
b8fb5374f0 HEIC: Default install-libheif.sh to v1.21.2 #5553 2026-05-04 08:49:14 +02:00
Cathie Integra
91099333b4 Build: Skip dav1d plugin on Jammy + fail libheif build loudly #5553 2026-05-04 08:39:16 +02:00
Cathie Integra
976e48796b HEIC: Keep install-libheif.sh on v1.20.2 until v1.21.2 archives ship #5553 2026-05-04 07:56:12 +02:00
Cathie Integra
88feed0d55 HEIC: Upgrade libheif from v1.20.2 to v1.21.2 #5553 2026-05-04 07:55:56 +02:00
Cathie Integra
7f4b9ad668 Scripts: Use absolute "/root/.cache/npm" path in install-nodejs.sh
When invoked as "sudo bash install-nodejs.sh" by an unprivileged user, "~"
expanded to the calling user's home before sudo elevated, so root's
".npmrc" ended up with "cache=/home/<user>/.cache/npm" and subsequent
"sudo npm install -g" runs left root-owned cache dirs inside the user's
home. Hardcode the path so the cache always lands under root.
2026-04-28 14:47:38 +02:00
Michael Mayer
6cb5684ed2 Build: Fix resolute ARM64 chromium libjpeg, use apt libheif #5543
install-chrome.sh now pins Debian Bookworm to apt priority 100 with
chromium-* elevated to 990, preventing apt from "upgrading" unrelated
Ubuntu packages like libjpeg-dev to Bookworm's higher-versioned one
(which would pull libjpeg62-turbo-dev and collide with Ubuntu's
libjpeg-turbo8-dev). The conflict affected all Ubuntu+Bookworm-
chromium ARM64 builds; Resolute happened to surface it first.

The Resolute Dockerfiles now install libheif (1.21.2) from the
Resolute apt repo and explicitly pull the codec plugins, replacing
the older 1.20.2 archive previously fetched by install-libheif.sh.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-27 09:43:29 +02:00
Michael Mayer
8d0eeb012f Build: Add install scripts for Hadolint, OSV-Scanner, Gitleaks
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-26 14:26:10 +02:00
Cathie Integra
c489ea5b0b Build: Skip "cgroupfs-mount" when not in apt index (Ubuntu 26.04)
Ubuntu 26.04 ("resolute") and Debian trixie+ no longer ship the
"cgroupfs-mount" package — modern systemd handles cgroup v2 mounting
natively. With the package gone from the index, the existing
"apt-get install" line aborted with:

  E: Package 'cgroupfs-mount' has no installation candidate

before Docker itself was installed. Probe the index via "apt-cache show"
and include the package only when it is actually available; older
distros that still ship it are unaffected.
2026-04-25 14:45:39 +02:00
Cathie Integra
79a5192cf7 Build: Make install-chrome.sh safe to run via curl | sudo bash
Two issues prevented the script from running cleanly when piped into
sudo (the most reliable invocation over SSH):

1. The header recommended `bash <(curl …)`, but with sudo the process
   substitution opens /dev/fd/63 in the unprivileged parent shell and
   the elevated bash cannot read it — the script aborted with
   `bash: /dev/fd/63: No such file or directory`. Replace with the
   `curl -fsSL … | sudo bash` pattern (and keep an explicit
   download-then-run fallback). Also call out the broken sudo + process
   substitution form so users do not retry it.

2. With stdin piped to bash, `gpg --dearmor` tried to write status to
   /dev/tty and failed with `gpg: cannot open '/dev/tty'`, breaking the
   keyring import (and silently leaving an empty keyring on a fresh
   host). Pass `--no-tty --batch --yes` to both gpg calls.

Tested end-to-end on Ubuntu 26.04 ("resolute") via
`curl -fsSL …/install-chrome.sh | sudo bash` from a clean state
(no preexisting keyring or apt list): keyring valid OpenPGP file, deb
fetched and installed, `google-chrome --version` returns 147.0.7727.116.
2026-04-25 14:44:56 +02:00
Michael Mayer
452bdde31e ONNX: Upgrade runtime from v1.24.1 to v1.25.0 and bump onnxruntime_go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-24 18:06:54 +02:00
Michael Mayer
5bda752118 Build: Add shared .telemetry file to opt out of CLI telemetry
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-24 16:42:21 +02:00
Michael Mayer
7d39b2d9fe API: Extend check-api-request-limits.sh for ServeHTTP and direct reads
- Flag <name>.ServeHTTP(<writer>, c.Request) calls without a nearby
  LimitRequestBodyBytes so SDK-delegated handlers (MCP today, future
  SDKs tomorrow) are held to the same body-cap contract as BindJSON.
- Also flag direct reads via io.ReadAll, io.LimitReader,
  json.NewDecoder, xml.NewDecoder, and yaml.NewDecoder on c.Request.Body

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-20 13:55:29 +02:00
Cathie Integra
543d43ab6a Docker: Raise BuildKit step log size/speed limits in buildx-multi.sh
Set BUILDKIT_STEP_LOG_MAX_SIZE=5 MiB and BUILDKIT_STEP_LOG_MAX_SPEED=10 MiB/s
on both the local and remote ssh://arm multibuilder nodes so long apt-get
transcripts on unstable Ubuntu bases aren't truncated during preview builds.
2026-04-18 11:45:28 +02:00
Cathie Integra
8e5ece95a3 Scripts: Install Mermaid CLI and Chromium for ARM64 in dev images 2026-04-17 09:38:37 +02:00
Michael Mayer
ca4f063052 Frontend: Pin "axios" to v1.14.0 to mitigate supply chain attack
see https://socket.dev/blog/axios-npm-package-compromised

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-31 08:52:23 +02:00
Michael Mayer
e9a714098d Security: Add API request-limit regression check script
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-08 15:12:32 +01:00
Michael Mayer
bed7ca2285 WebDAV: Fall Back to Depth-1 Directory Discovery #3541
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-07 09:32:07 +01:00
Michael Mayer
7b96a768d5 WebDAV: Harden response headers for interoperability #5472
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-04 15:23:10 +01:00
Michael Mayer
f58335cb4b Build: Backport libvips in Jammy images and document 8.14+
- add scripts/dist/install-libvips.sh for Jammy backport installs
- switch jammy and jammy-slim Dockerfiles to use the new installer
- document libvips 8.14+ requirement in setup/pkg/linux docs
- update thumb/README.md and regenerate setup/pkg/linux/README.html

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-03 11:43:28 +01:00
Michael Mayer
d86812c0cb Makefile: Add gh install target and explicit issue-editing rule
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-28 16:30:18 +01:00
Michael Mayer
d5ecab8827 Proxy: Define /i/ as DefaultPathPrefix for shared-domain deployments
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-24 01:15:23 +01:00
Michael Mayer
9932df5a32 Frontend: Add scripts/gettext-extract.sh, update translations.pot
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-22 16:35:42 +01:00
Michael Mayer
5fb0356305 Frontend: Upgrade NodeJS from 22 to 24 in scripts/dist/install-nodejs.sh
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-21 05:50:37 +01:00
Michael Mayer
270b3d1683 Frontend: Update TestCafe from v3.7.2 to v3.7.4
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-21 05:11:52 +01:00
Michael Mayer
a2b7615c93 Go: Apply go fix modernizations across backend packages
Run `go fix ./...` and keep mechanical modernization updates.

- Replace `interface{}` with `any` in signatures and local types
- Apply formatter/style cleanups from go1.26 tooling
- Keep `omitempty` behavior-preserving simplifications suggested by fix
- No functional feature changes intended

Validation:
- go test ./... -run '^$' -count=1 (Go 1.26.0)
- GOTOOLCHAIN=go1.24.10 go test ./... -run '^$' -count=1

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-20 03:54:33 +01:00
Michael Mayer
273aa53ad0 Backend: Upgrade github.com/yalue/onnxruntime_go from v1.25.0 to v1.26.0
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-20 02:38:48 +01:00
Michael Mayer
49b8948341 Develop: Add "postgres:18-alpine" database service to compose.yaml #4831
Removes compose.postgres.yaml because it isn't needed anymore.

Related Issue:
- #47

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-13 23:31:59 +01:00
Michael Mayer
2dd6a1a333 MariaDB: Drop legacy "preview" user in scripts/sql/mariadb-init.sql
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-10 12:49:04 +01:00
Michael Mayer
1463c98f3c OIDC: Update Keycloak schema dump in scripts/sql/mariadb-init.sql
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-10 12:42:09 +01:00
Michael Mayer
c6c16c5355 OIDC: Update Keycloak client settings in scripts/sql/mariadb-init.sql
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-10 12:34:42 +01:00
Michael Mayer
2ed5fc185c Scripts: Update FFmpeg installation script #5303 #5439
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-09 14:06:31 +01:00
Michael Mayer
3ea307405f CI: Add "mariadb-init" target to Makefile and update mariadb-init.sql
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-06 15:11:33 +01:00
Michael Mayer
8400dda02b Download: Add script flags to install "yt-dlp" nightly and master builds
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-01-28 11:10:12 +01:00
Michael Mayer
de3f871e62 Scripts: Fix MODEL_21K_LABELS_URL in download-nasnet.sh
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-01-24 13:13:08 +01:00
Fox Silver
6a15b564cf Update Makefile for latest Ubuntu
Latest Docker build is using Ubuntu 25.10, the darkfile init is failing due to using older ubuntu version repos and incompatible dependencies.
2026-01-13 08:07:27 +01:00
Michael Mayer
b381012a01 ONNX: Upgrade runtime from v1.22.0 to v1.23.2 #5394
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-12-23 12:31:09 +01:00
Michael Mayer
e4c571fa5b Setup: Change Ubuntu base image version from 24.04.2 to 24.04.3 #4414
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-12-05 14:02:12 +01:00
Michael Mayer
83c644df68 Scripts: Update dist/install-go-tools.sh #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-21 10:29:06 +01:00
Michael Mayer
8fc9f807de Develop: Add .golangci.yml and update install-go-tools.sh script
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-21 08:56:25 +01:00
Michael Mayer
5afb634edf Scripts: Update install-proxysql-admin.sh and install-devops-tools.sh
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-04 11:24:30 +01:00