Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7e3bd59
update develop and improve pipelines
riofriz Nov 5, 2025
14fba08
start cleaning up and refactoring
riofriz Nov 5, 2025
ce379a8
use nsenter regardless if docker or not, slowly removing the DOCKER e…
riofriz Nov 5, 2025
2ba9cdc
remove the annoying HOST_PROJECT_DIR and DOCKER env variables
riofriz Nov 5, 2025
e129bac
continue refactor, this is looking good!
riofriz Nov 5, 2025
b1a4d08
finish initial refactor
riofriz Nov 5, 2025
b9fb009
huge translations work
riofriz Nov 5, 2025
11c96d0
fix server side translations
riofriz Nov 5, 2025
30d856b
add logs and fix a bunch of major issues
riofriz Nov 10, 2025
1f82e85
major improvements to the wrapper and fix api route mess
riofriz Nov 11, 2025
1a10eeb
fix translations
riofriz Nov 11, 2025
0cefff7
create system stats utilities to avoid pointless repetitions
riofriz Nov 11, 2025
7e3d5db
add SSE event pushing for logs to show live updates on the UI for hea…
riofriz Nov 11, 2025
beebdf8
add oidc and update readme to be more accurate
riofriz Nov 11, 2025
01c87ab
add backups and sort out uuid situation
riofriz Nov 11, 2025
1fd2689
add copy id/command
riofriz Nov 11, 2025
8faf4d2
send fixes to develop for automatic ID assignation
riofriz Nov 12, 2025
ef5153c
improve performance, add minimal mode, make UI make more sense
riofriz Nov 13, 2025
1f2379d
fix minor styling
riofriz Nov 13, 2025
1b6f5b6
fix minor styling, allow custom translations and prepare for release
riofriz Nov 13, 2025
feeb56e
finish readme and prepare release
riofriz 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
52 changes: 52 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Reusable Docker Build Logic

on:
workflow_call:
inputs:
platform: { required: true, type: string }
suffix: { required: true, type: string }
runner: { required: true, type: string }
secrets:
token: { required: true }

jobs:
build:
runs-on: ${{ inputs.runner }}
permissions: { contents: read, packages: write }
steps:
- { name: Checkout repository, uses: actions/checkout@v4 }

- name: "Prepare repository name in lowercase"
id: repo
run: echo "name=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT

- { name: Set up QEMU, uses: docker/setup-qemu-action@v3 }
- { name: Set up Docker Buildx, uses: docker/setup-buildx-action@v3 }
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.token }}

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.repo.outputs.name }}
tags: |
type=ref,event=branch,suffix=${{ inputs.suffix }}
type=ref,event=tag,suffix=${{ inputs.suffix }}
type=raw,value=latest,suffix=${{ inputs.suffix }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
platforms: ${{ inputs.platform }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
121 changes: 102 additions & 19 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,69 @@
name: Docker
name: Build and Publish Multi-Platform Docker Image

on:
push:
branches: ["main", "legacy", "feature/*"]
branches: ["main", "develop"]
tags: ["*"]
pull_request:
branches: ["main"]

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build:
build-amd64:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Prepare repository name in lowercase
id: repo
run: echo "name=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT

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

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.repo.outputs.name }}
tags: |
type=ref,event=branch,suffix=-amd64
type=ref,event=tag,suffix=-amd64
type=raw,value=latest,suffix=-amd64,enable=${{ startsWith(github.ref, 'refs/tags/') }}

- name: Build and push AMD64 Docker image
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

build-arm64:
runs-on: ubuntu-22.04-arm
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Prepare repository name in lowercase
id: repo
run: echo "name=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT

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

Expand All @@ -31,27 +73,68 @@ jobs:
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: |
ghcr.io/${{ steps.repo.outputs.name }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha
type=ref,event=branch,suffix=-arm64
type=ref,event=tag,suffix=-arm64
type=raw,value=latest,suffix=-arm64,enable=${{ startsWith(github.ref, 'refs/tags/') }}

- name: Build and push Docker image
- name: Build and push ARM64 Docker image
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

manifest:
needs: [build-amd64, build-arm64]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Prepare repository name in lowercase
id: repo
run: echo "name=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for final manifest
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.repo.outputs.name }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}

- name: Create and push manifest list
run: |
echo "${{ steps.meta.outputs.tags }}" | while read -r tag; do
if [ -z "$tag" ]; then continue; fi
echo "Creating manifest for ${tag}"
docker buildx imagetools create --tag "${tag}" \
"${tag}-amd64" \
"${tag}-arm64"
done
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ node_modules
.cursorignore
.idea
tsconfig.tsbuildinfo
docker-compose.test.yml
docker-compose.test.yml
/data
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ RUN apt-get update && apt-get install -y \
curl \
iputils-ping \
util-linux \
ca-certificates \
gnupg \
lsb-release \
&& rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get install -y docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*

FROM base AS deps
Expand Down
Loading