Browse Source

Merge ce0032c974 into c5c822ed6e

pull/7609/merge
Thomas Kaul 3 weeks ago
committed by GitHub
parent
commit
51eda8a6e0
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      .github/workflows/build-code.yml
  2. 2
      .github/workflows/docker-image.yml
  3. 2
      .nvmrc
  4. 12
      CHANGELOG.md
  5. 2
      DEVELOPMENT.md
  6. 10
      Dockerfile
  7. 2
      README.md
  8. 59
      package-lock.json
  9. 4
      package.json
  10. 2
      tsconfig.base.json

2
.github/workflows/build-code.yml

@ -13,7 +13,7 @@ jobs:
strategy:
matrix:
node_version:
- 22.22.1
- 24.19.0
steps:
- name: Checkout code
uses: actions/checkout@v4

2
.github/workflows/docker-image.yml

@ -42,7 +42,7 @@ jobs:
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64,linux/arm/v7,linux/arm64
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.output.labels }}

2
.nvmrc

@ -1 +1 @@
v22
v24

12
CHANGELOG.md

@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Changed
- Removed the support for the `linux/arm/v7` platform of the _Docker_ image
- Upgraded `Node.js` from version `22` to `24` (`Dockerfile`)
- Upgraded the `Node.js` engine from version `>=22.18.0` to `>=24.19.0` (`package.json`)
### Todo
- **Breaking Change**: The `linux/arm/v7` (32-bit `ARM`) platform of the _Docker_ image is no longer supported, since `Node.js` version `24` does not provide builds for it. Please switch to a 64-bit operating system (`linux/arm64`) to keep using _Ghostfolio_ on `ARM` devices.
## 3.49.0 - 2026-08-12
### Changed

2
DEVELOPMENT.md

@ -5,7 +5,7 @@
### Prerequisites
- [Docker](https://www.docker.com/products/docker-desktop)
- [Node.js](https://nodejs.org/en/download) (version `>=22.18.0`)
- [Node.js](https://nodejs.org/en/download) (version `>=24.19.0`)
- Create a local copy of this Git repository (clone)
- Copy the file `.env.dev` to `.env` and populate it with your data (`cp .env.dev .env`)

10
Dockerfile

@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM node:22-slim AS builder
FROM --platform=$BUILDPLATFORM node:24-slim AS builder
# Build application and add additional files
WORKDIR /ghostfolio
@ -40,6 +40,12 @@ WORKDIR /ghostfolio/dist/apps/api
COPY ./package-lock.json /ghostfolio/dist/apps/api/
RUN npm install
# The Prisma CLI is a dev dependency and therefore not part of the generated
# package.json, but prisma generate needs to resolve it from the same
# node_modules directory as @prisma/client
RUN npm install prisma@$(node -p "require('/ghostfolio/package.json').devDependencies.prisma")
COPY .config /ghostfolio/dist/apps/api/.config/
COPY prisma /ghostfolio/dist/apps/api/prisma/
@ -49,7 +55,7 @@ COPY package.json /ghostfolio/dist/apps/api/
RUN npm run database:generate-typings
# Image to run, copy everything needed from builder
FROM node:22-slim
FROM node:24-slim
LABEL org.opencontainers.image.source="https://github.com/ghostfolio/ghostfolio"
ENV NODE_ENV=production

2
README.md

@ -75,7 +75,7 @@ The frontend is built with [Angular](https://angular.dev) and uses [Angular Mate
## Self-hosting
We provide official container images hosted on [Docker Hub](https://hub.docker.com/r/ghostfolio/ghostfolio) for `linux/amd64`, `linux/arm/v7` and `linux/arm64`.
We provide official container images hosted on [Docker Hub](https://hub.docker.com/r/ghostfolio/ghostfolio) for `linux/amd64` and `linux/arm64`.
Find answers to commonly asked questions about self-hosting Ghostfolio in our [Frequently Asked Questions (FAQ)](https://ghostfol.io/en/faq/self-hosting) section.

59
package-lock.json

@ -141,7 +141,7 @@
"@types/jest": "30.0.0",
"@types/jsonpath": "0.2.4",
"@types/lodash": "4.17.24",
"@types/node": "22.15.17",
"@types/node": "24.13.3",
"@types/papaparse": "5.5.2",
"@types/passport-google-oauth20": "2.0.17",
"@types/passport-openidconnect": "0.1.3",
@ -171,7 +171,7 @@
"webpack-cli": "7.1.0"
},
"engines": {
"node": ">=22.18.0"
"node": ">=24.19.0"
}
},
"node_modules/@adobe/css-tools": {
@ -6246,7 +6246,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6260,7 +6259,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6274,7 +6272,6 @@
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6288,7 +6285,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6302,7 +6298,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6316,7 +6311,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -6330,7 +6324,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -7206,24 +7199,6 @@
"yarn": ">= 1.13.0"
}
},
"node_modules/@nestjs/schematics/node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"readdirp": "^4.0.1"
},
"engines": {
"node": ">= 14.16.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@nestjs/schematics/node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@ -7311,22 +7286,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@nestjs/schematics/node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"engines": {
"node": ">= 14.18.0"
},
"funding": {
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@nestjs/schematics/node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@ -12257,12 +12216,12 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.15.17",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
"integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
"version": "24.13.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz",
"integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
"undici-types": "~7.18.0"
}
},
"node_modules/@types/oauth": {
@ -32871,9 +32830,9 @@
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {

4
package.json

@ -185,7 +185,7 @@
"@types/jest": "30.0.0",
"@types/jsonpath": "0.2.4",
"@types/lodash": "4.17.24",
"@types/node": "22.15.17",
"@types/node": "24.13.3",
"@types/papaparse": "5.5.2",
"@types/passport-google-oauth20": "2.0.17",
"@types/passport-openidconnect": "0.1.3",
@ -215,6 +215,6 @@
"webpack-cli": "7.1.0"
},
"engines": {
"node": ">=22.18.0"
"node": ">=24.19.0"
}
}

2
tsconfig.base.json

@ -12,7 +12,7 @@
"target": "es2015",
"module": "esnext",
"typeRoots": ["node_modules/@types"],
"lib": ["es2017", "dom"],
"lib": ["dom", "es2022"],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"baseUrl": ".",

Loading…
Cancel
Save