Compare commits

..

16 Commits

Author SHA1 Message Date
9 Technology Group LTD
1f6f58360f Merge pull request #235 from PatchMon/release/1-3-1
fix: Remove --ignore-scripts to allow trianglify/canvas to install
2025-10-28 18:12:04 +00:00
9 Technology Group LTD
203a065479 Merge pull request #234 from PatchMon/release/1-3-1
fix: Add npm fetch retries to handle transient network errors
2025-10-28 17:18:12 +00:00
9 Technology Group LTD
96aedbe761 Merge pull request #233 from PatchMon/release/1-3-1
Release/1 3 1
2025-10-28 17:06:02 +00:00
9 Technology Group LTD
8d372411be Merge pull request #208 from PatchMon/post1-3-0
Fixed some ratelimits that were hardcoded and ammended docker compose…
2025-10-22 15:37:50 +01:00
9 Technology Group LTD
cd03f0e66a Merge pull request #206 from PatchMon/post1-3-0
Made the setup.sh regenerate the .env variables
2025-10-22 14:33:18 +01:00
9 Technology Group LTD
deb6bed1a6 Merge pull request #204 from PatchMon/post1-3-0
Improving the setup.sh script to handle the nginx configuration changes on bare-metal type instances.

Also amended the env.example files to suit.
2025-10-22 13:47:03 +01:00
9 Technology Group LTD
0189a307ef Merge pull request #194 from PatchMon/feature/go-agent
I think we are ready now for 1.3.0 :)
2025-10-21 21:40:15 +01:00
9 Technology Group LTD
00abbc8c62 Merge pull request #191 from PatchMon/feature/go-agent
Feature/go agent
2025-10-20 23:06:35 +01:00
9 Technology Group LTD
c9aef78912 Merge pull request #190 from PatchMon/feature/go-agent
Remove /bullboard from caching
2025-10-20 20:26:58 +01:00
9 Technology Group LTD
fd2df0729e Merge pull request #189 from PatchMon/feature/go-agent
added bullboard url for docker nginx template
2025-10-20 19:46:50 +01:00
9 Technology Group LTD
d7f7b24f8f Merge pull request #188 from PatchMon/feature/go-agent
Added axios in package.json
2025-10-20 19:21:07 +01:00
9 Technology Group LTD
1ef2308d56 Agent version detection and added nginx template 2025-10-20 18:55:43 +01:00
9 Technology Group LTD
fcd1b52e0e Merge pull request #186 from PatchMon/feature/go-agent
Bull Board
2025-10-19 20:58:03 +01:00
9 Technology Group LTD
5be8e01aa3 Merge pull request #185 from PatchMon/feature/go-agent
Modified the proxmox_auto-enroll.sh script to suit the new method
2025-10-19 19:03:17 +01:00
9 Technology Group LTD
293733dc0b Merge pull request #183 from PatchMon/feature/go-agent
Improved detection logic and upgrade mechanism using intermeditary sc…
2025-10-19 18:01:34 +01:00
9 Technology Group LTD
c7ab40e4a2 Merge pull request #182 from PatchMon/feature/go-agent
Fixed upgrade detection logic
2025-10-18 21:59:48 +01:00
4 changed files with 37 additions and 94 deletions

View File

@@ -36,24 +36,9 @@ COPY frontend/ ./
RUN npm run build
# Production stage - use temporary stage to install packages as root, then copy to unprivileged
FROM nginx:alpine AS runtime-builder
# Install runtime dependencies for canvas
RUN apk add --no-cache cairo pango jpeg libpng giflib
# Final production stage - unprivileged
# Production stage
FROM nginxinc/nginx-unprivileged:alpine
# Copy runtime libraries from runtime-builder
COPY --from=runtime-builder /usr/lib/libcairo.so.2 /usr/lib/
COPY --from=runtime-builder /usr/lib/libpango-1.0.so.0 /usr/lib/
COPY --from=runtime-builder /usr/lib/libpangocairo-1.0.so.0 /usr/lib/
COPY --from=runtime-builder /usr/lib/libpangoft2-1.0.so.0 /usr/lib/
COPY --from=runtime-builder /usr/lib/libpng16.so.16 /usr/lib/
COPY --from=runtime-builder /usr/lib/libgif.so.7 /usr/lib/
COPY --from=runtime-builder /usr/lib/libjpeg.so.8 /usr/lib/
ENV BACKEND_HOST=backend \
BACKEND_PORT=3001

View File

@@ -240,48 +240,28 @@ const Layout = ({ children }) => {
// Generate Trianglify background for dark mode
useEffect(() => {
const generateBackground = () => {
try {
if (
bgCanvasRef.current &&
themeConfig?.login &&
document.documentElement.classList.contains("dark")
) {
// Get current date as seed for daily variation
const today = new Date();
const dateSeed = `${today.getFullYear()}-${today.getMonth()}-${today.getDate()}`;
if (
bgCanvasRef.current &&
themeConfig?.login &&
document.documentElement.classList.contains("dark")
) {
// Get current date as seed for daily variation
const today = new Date();
const dateSeed = `${today.getFullYear()}-${today.getMonth()}-${today.getDate()}`;
// Generate pattern with selected theme configuration
const pattern = trianglify({
width: window.innerWidth,
height: window.innerHeight,
cellSize: themeConfig.login.cellSize,
variance: themeConfig.login.variance,
seed: dateSeed,
xColors: themeConfig.login.xColors,
yColors: themeConfig.login.yColors,
});
// Generate pattern with selected theme configuration
const pattern = trianglify({
width: window.innerWidth,
height: window.innerHeight,
cellSize: themeConfig.login.cellSize,
variance: themeConfig.login.variance,
seed: dateSeed,
xColors: themeConfig.login.xColors,
yColors: themeConfig.login.yColors,
});
// Render to canvas using SVG (browser-compatible)
const svg = pattern.toSVG();
const ctx = bgCanvasRef.current.getContext("2d");
const img = new Image();
const blob = new Blob([svg], { type: "image/svg+xml" });
const url = URL.createObjectURL(blob);
img.onload = () => {
ctx.drawImage(
img,
0,
0,
bgCanvasRef.current.width,
bgCanvasRef.current.height,
);
URL.revokeObjectURL(url);
};
img.src = url;
}
} catch (error) {
// Canvas/trianglify not available, skip background generation
console.warn("Could not generate Trianglify background:", error);
// Render to canvas
pattern.toCanvas(bgCanvasRef.current);
}
};

View File

@@ -60,44 +60,24 @@ const Login = () => {
// Generate Trianglify background based on selected theme
useEffect(() => {
const generateBackground = () => {
try {
if (canvasRef.current && themeConfig?.login) {
// Get current date as seed for daily variation
const today = new Date();
const dateSeed = `${today.getFullYear()}-${today.getMonth()}-${today.getDate()}`;
if (canvasRef.current && themeConfig?.login) {
// Get current date as seed for daily variation
const today = new Date();
const dateSeed = `${today.getFullYear()}-${today.getMonth()}-${today.getDate()}`;
// Generate pattern with selected theme configuration
const pattern = trianglify({
width: canvasRef.current.offsetWidth,
height: canvasRef.current.offsetHeight,
cellSize: themeConfig.login.cellSize,
variance: themeConfig.login.variance,
seed: dateSeed,
xColors: themeConfig.login.xColors,
yColors: themeConfig.login.yColors,
});
// Generate pattern with selected theme configuration
const pattern = trianglify({
width: canvasRef.current.offsetWidth,
height: canvasRef.current.offsetHeight,
cellSize: themeConfig.login.cellSize,
variance: themeConfig.login.variance,
seed: dateSeed,
xColors: themeConfig.login.xColors,
yColors: themeConfig.login.yColors,
});
// Render to canvas using SVG (browser-compatible)
const svg = pattern.toSVG();
const ctx = canvasRef.current.getContext("2d");
const img = new Image();
const blob = new Blob([svg], { type: "image/svg+xml" });
const url = URL.createObjectURL(blob);
img.onload = () => {
ctx.drawImage(
img,
0,
0,
canvasRef.current.width,
canvasRef.current.height,
);
URL.revokeObjectURL(url);
};
img.src = url;
}
} catch (error) {
// Canvas/trianglify not available, skip background generation
console.warn("Could not generate Trianglify background:", error);
// Render to canvas
pattern.toCanvas(canvasRef.current);
}
};

View File

@@ -2931,8 +2931,6 @@ update_installation() {
# Load existing .env to get database credentials
if [ -f "$instance_dir/backend/.env" ]; then
# Unset color variables before sourcing to prevent ANSI escape sequences from leaking into .env
unset RED GREEN YELLOW BLUE NC
source "$instance_dir/backend/.env"
print_status "Loaded existing configuration"