Skip to content

Commit a06457b

Browse files
committed
v2026.4.3-beta
1 parent 98525e9 commit a06457b

140 files changed

Lines changed: 1161 additions & 929 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/npm-publish.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Publish to npm
2+
3+
on:
4+
push:
5+
tags:
6+
- v*
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-24.04
11+
permissions:
12+
id-token: write # Required for OIDC trusted publishing
13+
contents: read
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
17+
18+
# setup-node with registry-url is required for OIDC trusted publishing
19+
- name: Setup Node.js
20+
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
21+
with:
22+
node-version: 22
23+
cache: "npm"
24+
registry-url: "https://registry.npmjs.org"
25+
26+
- name: Update npm for provenance support
27+
run: |
28+
npm install -g npm@latest
29+
npm --version
30+
31+
- name: Install dependencies
32+
run: npm ci
33+
34+
- name: Publish to npm with OIDC provenance
35+
run: |
36+
VERSION=$(node -p "require('./package.json').version")
37+
if echo "$VERSION" | grep -qE '(alpha|beta)'; then
38+
TAG=$(echo "$VERSION" | grep -oE '(alpha|beta)')
39+
echo "Pre-release detected: publishing with --tag $TAG"
40+
npm publish --provenance --tag "$TAG"
41+
else
42+
echo "Stable release: publishing with default (latest) tag"
43+
npm publish --provenance
44+
fi

.npmignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.DS_Store
2+
.dockerignore
3+
.env
4+
.github/
5+
.history
6+
.npm
7+
*.js.map
8+
*.log*
9+
*.tgz
10+
Dockerfile*
11+
docker-entrypoint.sh
12+
node_modules/
13+
start.sh

CHANGELOG.md

Lines changed: 0 additions & 384 deletions
This file was deleted.

Dockerfile

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,7 @@ FROM node:24-bookworm-slim
2929
# libglib2.0-0 is required by @photostructure/fs-metadata (GIO volume metadata)
3030
#
3131
# External tool runtime dependencies:
32-
# libheif-examples provides "heif-convert"
3332
# libjpeg-turbo-progs includes `jpegtran` for lossless rotation and JPEG file validation
34-
# libjpeg62-turbo is the JPEG runtime used by heif-convert
35-
# liblcms2-2 supports color management (used by heif-convert)
36-
# liborc-0.4-0 is used by heif-convert
3733
# libreadline8 is for the static sqlite3 CLI tool
3834
# passwd provides `usermod` and `groupmod` (used by docker-entrypoint.sh)
3935
# perl is required for exiftool
@@ -45,13 +41,8 @@ RUN apt-get update \
4541
&& apt-get upgrade -y \
4642
&& apt-get install -y --no-install-recommends \
4743
ca-certificates \
48-
heif-thumbnailer \
4944
libglib2.0-0 \
50-
libheif-examples \
5145
libjpeg-turbo-progs \
52-
libjpeg62-turbo \
53-
liblcms2-2 \
54-
liborc-0.4-0 \
5546
libreadline8 \
5647
locales-all \
5748
passwd \
@@ -72,17 +63,6 @@ COPY --chown=node:node . ./
7263
# Overwrite source with builder results (/opt/photostructure/tools):
7364
COPY --from=builder --chown=node:node /opt/photostructure ./
7465

75-
# FFmpeg 8.0.1 static binaries (Debian bookworm has 5.1.6)
76-
# https://github.com/wader/static-ffmpeg - pinned to digest for supply chain security
77-
78-
COPY --from=mwader/static-ffmpeg@sha256:252705ff88532fa338e7065c21792756552f8fe7c212f84bc503d3c340689594 \
79-
/ffmpeg /ffprobe /opt/photostructure/tools/
80-
81-
82-
# To update the digest in the future when a new version releases, visit
83-
# https://hub.docker.com/r/mwader/static-ffmpeg/tags, click the latest version
84-
# tag, and copy the "Index digest"
85-
8666
# ---
8767

8868
# The node docker image sets NODE_VERSION and YARN_VERSION environment

Dockerfile.nonfree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# syntax=docker/dockerfile:1
2+
3+
# This image adds patent-encumbered media codecs (FFmpeg, HEIF) to the base
4+
# PhotoStructure image. By building this image, you accept responsibility for
5+
# any applicable patent licensing requirements.
6+
#
7+
# Build: docker build -f server/Dockerfile.nonfree -t photostructure-nonfree .
8+
# Run: docker run ... photostructure-nonfree
9+
#
10+
# Or use the Docker Setup configurator to generate a compose.yaml:
11+
# https://photostructure.com/server/docker-setup/
12+
13+
FROM photostructure/server:beta
14+
15+
# FFmpeg static binaries (includes H.264, H.265/HEVC, AAC codecs)
16+
# https://github.com/wader/static-ffmpeg
17+
COPY --from=mwader/static-ffmpeg:8.0.1 /ffmpeg /ffprobe /opt/photostructure/tools/
18+
19+
# HEIF/HEIC support (libheif with HEVC decoder)
20+
# Bookworm stable ships libheif 1.15.1 which can't parse iPhone 16 Pro HEIC files.
21+
# Backports provides 1.19.7 which handles the newer HEIF features correctly.
22+
RUN echo 'deb http://deb.debian.org/debian bookworm-backports main' \
23+
> /etc/apt/sources.list.d/backports.list \
24+
&& apt-get update \
25+
&& apt-get install -y --no-install-recommends \
26+
-t bookworm-backports heif-thumbnailer libheif-examples \
27+
&& rm -rf /var/lib/apt/lists/*

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@ Welcome to your new home for all your photos and videos!
77
PhotoStructure for Servers requires:
88

99
- a 64-bit Intel or AMD CPU
10-
- either Ubuntu LTS (18.04) or macOS (Mojave or later)
10+
- At least Ubuntu LTS 22.04, macOS Sequoia (15), or Windows 10
1111

12-
## Installation instructions
12+
## Instructions
1313

14-
1. Read and accept the [**end-user license agreement**](https://photostructure.com/eula), then
14+
1. Read and accept the [end-user license agreement](https://photostructure.com/eula), then
1515

16-
2. check out instructions for [**docker**](https://photostructure.com/server/photostructure-for-docker/) or [**docker-compose**](https://photostructure.com/server/photostructure-for-docker-compose/).
16+
2. Follow the instructions for [Docker](https://photostructure.com/server/photostructure-for-docker/) or [Node.js](https://photostructure.com/server/photostructure-for-node/).
17+
18+
3. Check out the [user guide](https://photostructure.com/user-guide/) for tips on how to use PhotoStructure and get the most out of it.
19+
20+
4. Check out the [release notes](https://photostructure.com/release-notes/) to see what's new in each version.
1721

1822
## Join us!
1923

20-
Visit the [**official PhotoStructure forum**](https://forum.photostructure.com) for product support, release announcements, and discuss new features.
24+
Visit the [PhotoStructure forum](https://forum.photostructure.com) and [Discord](https://photostructure.com/go/discord) for product support, release announcements, and discuss new features.

VERSION.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
2-
"version": "2026.2.0-beta",
2+
"version": "2026.4.3-beta",
33
"versionMajor": 2026,
4-
"versionMinor": 2,
5-
"versionPatch": 0,
4+
"versionMinor": 4,
5+
"versionPatch": 3,
66
"versionPrerelease": [
77
"beta"
88
],
9-
"release": "2026.2.0-beta+20260221211453",
10-
"gitSha": "127575965e8e1c29a16a16360fa2d184bc5879e3",
11-
"gitDate": "2026-02-22T05:14:53.000Z"
9+
"release": "2026.4.3-beta+20260402212223",
10+
"gitSha": "807e0ddb1be8dace9c081696d52384734cb58290",
11+
"gitDate": "2026-04-03T04:22:23.000Z"
1212
}

bin/bootstrap.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/fix.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/info.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)