Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
18c5390
Node-RED Integration for FUXA
MatthewReed303 Oct 7, 2025
7ef0c00
Uncomment npm cache clearing step in workflow
MatthewReed303 Oct 7, 2025
a871e31
add node-red path electron build
MatthewReed303 Oct 7, 2025
fe0413a
move fuxa nodes to server directory
MatthewReed303 Oct 7, 2025
ad26fef
change nodes to use functionGlobalContext
MatthewReed303 Oct 7, 2025
7ffc3f0
Add new fuxa node get tag change
MatthewReed303 Oct 7, 2025
b0e6e79
Node-RED Integration for FUXA
MatthewReed303 Oct 7, 2025
0e129cb
New Feature: Scheduler Gauge Component
MatthewReed303 Oct 5, 2025
b535b29
FIX production build
MatthewReed303 Oct 5, 2025
e1f03b5
FIX production build github actions
MatthewReed303 Oct 6, 2025
c38ef64
Add custom elements app.modules
MatthewReed303 Oct 6, 2025
7cd4fb3
Add clear cache
MatthewReed303 Oct 6, 2025
342f2f8
Remove no-cache option from build command
MatthewReed303 Oct 6, 2025
d444df8
Remove debugging consolde.logs
MatthewReed303 Oct 6, 2025
45b9f6b
Merge pull request #1 from MatthewReed303/node-red
MatthewReed303 Oct 8, 2025
d779d65
Merge branch 'dev' into scheduler
MatthewReed303 Oct 8, 2025
5d9b97f
Merge pull request #2 from MatthewReed303/scheduler
MatthewReed303 Oct 8, 2025
7f6c805
Delete node-red/node-red-contrib-fuxa directory
MatthewReed303 Oct 8, 2025
577b276
feat: Add advanced PDF report system with PDFME integration
MatthewReed303 Oct 26, 2025
2d62732
Update pdfme dependencies
MatthewReed303 Oct 26, 2025
dfe63aa
update electron npm workflow
MatthewReed303 Oct 26, 2025
ef9b752
install cairo before building pdfme
MatthewReed303 Oct 26, 2025
d399ce5
increase build memory
MatthewReed303 Oct 26, 2025
d468a58
add pdfme to server dep
MatthewReed303 Oct 26, 2025
a8ef704
Update Paths to work with electron app
MatthewReed303 Oct 26, 2025
155558d
Update electron working path and adjust report paths
MatthewReed303 Oct 26, 2025
45a2980
update electron user dir
MatthewReed303 Oct 26, 2025
31a944c
fix report paths for electron
MatthewReed303 Oct 26, 2025
e3d6bce
Fix Template manger PNG
MatthewReed303 Oct 26, 2025
92ca07b
change to OCI
MatthewReed303 Oct 26, 2025
afff1b8
change pdfme docker install
MatthewReed303 Oct 26, 2025
6cb33b1
Don't use build scripts
MatthewReed303 Oct 26, 2025
ba67008
copy files first before building react app
MatthewReed303 Oct 26, 2025
ce2e759
allow flexiable docker build from forks
MatthewReed303 Oct 26, 2025
58cc86f
Increase Node Memory Limit
MatthewReed303 Oct 26, 2025
501f455
Increase memory for all builds
MatthewReed303 Oct 26, 2025
b8c0b86
increase workflow memory
MatthewReed303 Oct 26, 2025
a51f1bd
Increase memory to 8192
MatthewReed303 Oct 26, 2025
435f2d4
Fix JS memory issues
MatthewReed303 Oct 26, 2025
cf105b5
Set all node commands to use 8GB memory
MatthewReed303 Oct 27, 2025
2eabf5a
Change back npm config
MatthewReed303 Oct 27, 2025
f27de32
no cache for doocker test build
MatthewReed303 Oct 27, 2025
5a99ef8
Remove 32bit build
MatthewReed303 Oct 27, 2025
65f22e2
Merge origin/master into reports-pdfme, accepting master's changes
MatthewReed303 Oct 27, 2025
2e66674
Fix Node-Red and Report Paths
MatthewReed303 Oct 27, 2025
aae1122
remove unused templates
MatthewReed303 Oct 27, 2025
490598a
Update electron workflow
MatthewReed303 Oct 27, 2025
ca1c743
Fix File Viewer
MatthewReed303 Oct 27, 2025
5ec8440
Remove old node-red contrib location
MatthewReed303 Oct 27, 2025
de318c5
refactor
MatthewReed303 Oct 27, 2025
907223a
Merge upstream/master into reports-pdfme
MatthewReed303 Nov 11, 2025
66152ff
Build and push PDFme
MatthewReed303 Nov 11, 2025
68afa7c
Merge remote-tracking branch 'upstream/master' into reports-pdfme
MatthewReed303 Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/docker_test.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is it for?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@unocelli github actions workflow to build docker image and save image as an artifact, so you don't have to push to docker hub each time for testing docker images and can test different branches and saves having setup docker buildx etc on local dev machine.

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Docker Test Build

env:
app: fuxa
version: test
# for available platforms see output of a previous run -
# ie the "Setup Docker BuildX" / "Inspect Builder" section
# has eg "node_platforms": "linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6"
# but the platforms must also be included in the os image chosen -
# eg the ubuntu image doesn't include linux/arm/v6.
platforms: linux/amd64,linux/arm64

on: workflow_dispatch

jobs:
build-container:
runs-on: ubuntu-latest
env:
NODE_OPTIONS: --max-old-space-size=8192

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up QEMU emulator
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
platforms: ${{ env.platforms }}
tags: frangoteam/${{ env.app }}:${{ env.version }}
outputs: type=oci,dest=/tmp/${{ env.app }}-${{ env.version }}.tar
no-cache: true
build-args: |
REPO_URL=${{ github.server_url }}/${{ github.repository }}
BRANCH_NAME=${{ github.head_ref || github.ref_name }}
NODE_OPTIONS_ARG=--max-old-space-size=8192

- name: Upload Docker image as artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.app }}-docker-image-${{ env.version }}
path: /tmp/${{ env.app }}-${{ env.version }}.tar
retention-days: 7
40 changes: 39 additions & 1 deletion .github/workflows/electron_latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,62 @@ jobs:
with:
node-version: '18'

- name: Install system dependencies (macOS)
if: matrix.os == 'macos-latest'
run: |
brew update
brew install cairo pango pkg-config

- name: Install system dependencies (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev pkg-config

- name: Install system dependencies (Windows)
if: matrix.os == 'windows-latest'
run: |
choco install cairo --version=1.17.2.1
choco install pkgconfiglite

- name: Configure npm for reliable CI builds
run: |
npm config set registry https://registry.npmjs.org/
npm config set fetch-retries 8
npm config set fetch-retry-factor 2
npm config set fetch-retry-mintimeout 30000
npm config set fetch-retry-maxtimeout 300000
npm config set audit false
npm config set fund false
env:
NODE_OPTIONS: --max-old-space-size=4096 --dns-result-order=ipv4first

- name: Clear npm cache
run: npm cache clean --force

- name: Install server dependencies
run: npm install
run: npm install && npm run build:all
working-directory: ./server
env:
NODE_OPTIONS: --max-old-space-size=4096 --dns-result-order=ipv4first

- name: Install client dependencies
run: npm install
working-directory: ./client
env:
NODE_OPTIONS: --max-old-space-size=4096 --dns-result-order=ipv4first

- name: Build client
run: npm run build -- --configuration=production
working-directory: ./client
env:
NODE_OPTIONS: --max-old-space-size=4096 --dns-result-order=ipv4first

- name: Install app dependencies
run: npm install
working-directory: ./app/electron
env:
NODE_OPTIONS: --max-old-space-size=4096 --dns-result-order=ipv4first

- name: Copy server and client build to app/electron
run: |
Expand Down
27 changes: 19 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@ FROM node:18-bookworm

ARG NODE_SNAP=false

# Increase Node.js memory limit for all builds
ENV NODE_OPTIONS=--max-old-space-size=8192

RUN apt-get update && apt-get install -y dos2unix

# Change working directory
WORKDIR /usr/src/app

# Clone FUXA repository
RUN git clone https://github.com/frangoteam/FUXA.git
# Clone FUXA repository from the current repository and branch
ARG REPO_URL
ARG BRANCH_NAME
ARG NODE_OPTIONS_ARG
RUN git clone -b ${BRANCH_NAME:-master} ${REPO_URL:-https://github.com/frangoteam/FUXA.git}

# Install build dependencies for node-odbc
RUN apt-get update && apt-get install -y build-essential unixodbc unixodbc-dev
# Install build dependencies for node-odbc and graphics libraries
RUN apt-get update && apt-get install -y build-essential unixodbc unixodbc-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev pkg-config

# Convert the script to Unix format and make it executable
RUN dos2unix FUXA/odbc/install_odbc_drivers.sh && chmod +x FUXA/odbc/install_odbc_drivers.sh
Expand Down Expand Up @@ -42,14 +48,13 @@ RUN npm config set registry https://registry.npmjs.org/ \
RUN bash -lc '\
for i in 1 2 3 4 5 6 7 8; do \
echo "npm install - attempt $i/8"; \
npm install --no-audit --no-fund --prefer-offline --network-timeout=600000 && exit 0; \
NODE_OPTIONS="--max-old-space-size=8192" npm install --registry=https://registry.npmjs.org/ --fetch-retries=8 --fetch-retry-factor=2 --fetch-retry-mintimeout=30000 --fetch-retry-maxtimeout=300000 --no-audit --no-fund --prefer-offline --network-timeout=600000 && exit 0; \
echo "Failed, wait $((10*i))s and try again..."; \
sleep $((10*i)); \
done; \
echo "npm install failed after 8 attempts"; \
exit 1'


# Install options snap7
RUN if [ "$NODE_SNAP" = "true" ]; then \
npm install node-snap7; \
Expand All @@ -60,14 +65,20 @@ RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev && \
apt-get autoremove -yqq --purge && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
npm install --build-from-source --sqlite=/usr/bin sqlite3
NODE_OPTIONS="--max-old-space-size=8192" npm install --build-from-source --sqlite=/usr/bin sqlite3

# Add project files
# Add project files
ADD . /usr/src/app/FUXA

# Set working directory
WORKDIR /usr/src/app/FUXA/server

# Build the pdfme React app
RUN NODE_OPTIONS="--max-old-space-size=8192" npm run build:all

# Clean up react node_modules
RUN rm -rf react/pdfme/node_modules

# Expose port
EXPOSE 1881

Expand Down
Loading