Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
29 changes: 29 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ updates:
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7
open-pull-requests-limit: 10
labels:
- "dependencies"
Expand All @@ -36,6 +38,21 @@ updates:
update-types:
["version-update:semver-major", "version-update:semver-minor"]

- package-ecosystem: "docker-compose"
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7
open-pull-requests-limit: 10
labels:
- "dependencies"
- "docker"
commit-message:
prefix: "docker"
allow:
- dependency-type: "direct"

- package-ecosystem: "gomod"
directories:
- "**/*"
Expand Down Expand Up @@ -84,3 +101,15 @@ updates:
tanstack:
patterns:
- "@tanstack/*"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7
labels:
- "dependencies"
- "github-actions"
commit-message:
prefix: "github-actions"
12 changes: 6 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ jobs:
strategy:
matrix:
node-version:
- "22.18.0"
- "24.14.1"
fail-fast: false
timeout-minutes: 5

Expand All @@ -155,7 +155,7 @@ jobs:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: npm install
run: npm ci
shell: sh

- name: Test 🧪
Expand All @@ -170,7 +170,7 @@ jobs:
strategy:
matrix:
node-version:
- "22.18.0"
- "24.14.1"
fail-fast: false
timeout-minutes: 5

Expand All @@ -189,7 +189,7 @@ jobs:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: npm install
run: npm ci
shell: sh

- name: Cache ESLint
Expand Down Expand Up @@ -231,10 +231,10 @@ jobs:
with:
cache: "npm"
cache-dependency-path: package-lock.json
node-version: "22.18.0"
node-version: "24.14.1"

- name: Install dependencies
run: npm install
run: npm ci
shell: sh

- name: Build UI bundle
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/package-and-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ jobs:
with:
cache: "npm"
cache-dependency-path: package-lock.json
node-version: "22.18.0"
node-version: "24.14.1"

- name: Install dependencies
run: npm install
run: npm ci
shell: sh

- name: Build JS 🏗️
Expand Down
3 changes: 3 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
allow-git=none
engine-strict=true
min-release-age=3
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ public/**
src/routeTree.gen.ts

# Other files to ignore
package-lock.json
package-lock.json
.npmrc
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# syntax=docker/dockerfile:1

FROM node:22-alpine AS build-ui
FROM node:24.14.1-alpine@sha256:8510330d3eb72c804231a834b1a8ebb55cb3796c3e4431297a24d246b8add4d5 AS build-ui
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

There's some ergonomic downside to attaching these big SHAs to everything — it just makes updating these things harder.

I'm not sure there's that big security benefit either. You're making the build more reproducible I suppose, but there's no way for a human to distinguish the safety of one of these giant SHA hashes from another giant SHA hash. i.e. If you dropped in a compromised hash here on a future upgrade, there's no way I'd be able to recognize it.

WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY .npmrc package.json package-lock.json ./
RUN npm ci
ENV NODE_ENV=production
COPY vite.config.ts tsconfig.json tsconfig.node.json tsr.config.json ./
COPY public ./public
Expand All @@ -12,7 +12,7 @@ COPY src ./src
RUN npx vite build

# Build the Go binary, including embedded UI files:
FROM golang:1.25.9-alpine AS build-go
FROM golang:1.25.10-alpine@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45 AS build-go
WORKDIR /go/src/riverui

COPY go.mod go.sum ./
Expand All @@ -29,7 +29,7 @@ COPY --from=build-ui /app/dist ./dist

RUN go build -trimpath -ldflags="-w -s -buildid=" -o /bin/riverui ./cmd/riverui

FROM alpine:3.23.4
FROM alpine:3.23.4@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
ENV PATH_PREFIX="/"
COPY --from=build-go /bin/riverui /bin/riverui
CMD ["/bin/sh", "-c", "/bin/riverui -prefix=$PATH_PREFIX"]
10 changes: 5 additions & 5 deletions Dockerfile.pro
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# syntax=docker/dockerfile:1

FROM node:22-alpine AS build-ui
FROM node:24.14.1-alpine@sha256:8510330d3eb72c804231a834b1a8ebb55cb3796c3e4431297a24d246b8add4d5 AS build-ui
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY .npmrc package.json package-lock.json ./
RUN npm ci
ENV NODE_ENV=production
COPY vite.config.ts tsconfig.json tsconfig.node.json tsr.config.json ./
COPY public ./public
Expand All @@ -12,7 +12,7 @@ COPY src ./src
RUN npx vite build

# Build the Go binary, including embedded UI files:
FROM golang:1.25.9-alpine AS build-go
FROM golang:1.25.10-alpine@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45 AS build-go
WORKDIR /go/src/riverui

# Download main module dependencies first
Expand Down Expand Up @@ -42,7 +42,7 @@ COPY --from=build-ui /app/dist ./dist
WORKDIR /go/src/riverui/riverproui
RUN go build -trimpath -ldflags="-w -s -buildid=" -o /bin/riverproui ./cmd/riverproui

FROM alpine:3.23.4
FROM alpine:3.23.4@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
ENV PATH_PREFIX="/"
COPY --from=build-go /bin/riverproui /bin/riverproui
CMD ["/bin/sh", "-c", "/bin/riverproui -prefix=$PATH_PREFIX"]
4 changes: 2 additions & 2 deletions docker-compose.dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: riverui-dev

services:
postgres:
image: "postgres:16-alpine"
image: "postgres:18.3-alpine@sha256:54451ecb8ab38c24c3ec123f2fd501303a3a1856a5c66e98cecf2460d5e1e9d7"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
Expand All @@ -16,7 +16,7 @@ services:
ports:
- "5432:5432"
migrate:
image: "golang:1.25-alpine"
image: "golang:1.25.10-alpine@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45"
depends_on:
postgres:
condition: "service_healthy"
Expand Down
4 changes: 4 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
"private": true,
"version": "0.0.0",
"type": "module",
"engines": {
"node": ">=24.14.1",
"npm": ">=11.10.0"
},
"dependencies": {
"@dagrejs/dagre": "^3.0.0",
"@headlessui/react": "^2.2.10",
Expand Down
Loading