Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5aa58a5
add support for idmapped mounts to start-sdk
dr-bonez Dec 3, 2025
e3ff436
misc fixes
dr-bonez Dec 3, 2025
2bb4fe1
misc fixes
dr-bonez Dec 4, 2025
d3da304
add default to textarea
dr-bonez Dec 4, 2025
91fe106
fix iptables masquerade rule
dr-bonez Dec 4, 2025
a15bbe1
fix textarea types
MattDHill Dec 4, 2025
86ac75b
more fixes
dr-bonez Dec 5, 2025
f7efb8f
better logging for rsync
Dominion5254 Dec 5, 2025
5b00d05
fix tty size
dr-bonez Dec 5, 2025
2bb670a
fix wg conf generation for android
dr-bonez Dec 6, 2025
759b303
Merge branch 'next/major' of github.com:Start9Labs/start-os into feat…
dr-bonez Dec 6, 2025
68deaa6
disable file mounts on dependencies
dr-bonez Dec 8, 2025
6d8e750
mostly there, some styling issues (#3069)
MattDHill Dec 8, 2025
76c8cf9
fixes for nextcloud
dr-bonez Dec 9, 2025
db422b0
allow sidebar navigation during service state traansitions
MattDHill Dec 9, 2025
0bead9f
wip: x-forwarded headers
dr-bonez Dec 9, 2025
54290b3
Merge branch 'feature/sdk-idmap' of github.com:Start9Labs/start-os in…
dr-bonez Dec 9, 2025
c2af899
implement x-forwarded-for proxy
dr-bonez Dec 9, 2025
013367b
lowercase domain names and fix warning popover bug
MattDHill Dec 9, 2025
5e1daa9
fix http2 websockets
dr-bonez Dec 10, 2025
b5ceb93
fix websocket retry behavior
MattDHill Dec 10, 2025
01c320b
add arch filters to s9pk pack
dr-bonez Dec 10, 2025
521ffc1
use docker for start-cli install
dr-bonez Dec 10, 2025
5655b16
add version range to package signer on registry
dr-bonez Dec 11, 2025
fa648f3
fix rcs < 0
dr-bonez Dec 12, 2025
166f316
fix user information parsing
dr-bonez Dec 12, 2025
4800a09
refactor service interface getters
dr-bonez Dec 12, 2025
a3d6ead
disable idmaps
dr-bonez Dec 12, 2025
a2da216
build fixes
dr-bonez Dec 12, 2025
48e999d
update docker login action
dr-bonez Dec 12, 2025
4a3e9e8
streamline build
dr-bonez Dec 13, 2025
6b55931
add start-cli workflow
dr-bonez Dec 13, 2025
4b45c90
rename
dr-bonez Dec 13, 2025
b34ef13
riscv64gc
dr-bonez Dec 13, 2025
cbf897d
fix ui packing
dr-bonez Dec 13, 2025
9dc7bdc
no default features on cli
dr-bonez Dec 13, 2025
181e39e
make cli depend on GIT_HASH
dr-bonez Dec 13, 2025
de6d3f9
more build fixes
dr-bonez Dec 13, 2025
b4d796d
more build fixes
dr-bonez Dec 13, 2025
d8004f2
interpolate arch within dockerfile
dr-bonez Dec 13, 2025
65ca659
fix tests
dr-bonez Dec 13, 2025
5f0cf73
add launch ui to service page plus other small improvements (#3075)
MattDHill Dec 15, 2025
4d6d66d
fix backups
dr-bonez Dec 15, 2025
63d31bb
feat: use arm hosted runners and don't fail when apt package does not…
remcoros Dec 15, 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
118 changes: 118 additions & 0 deletions .github/workflows/start-cli.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: start-cli

on:
workflow_call:
workflow_dispatch:
inputs:
environment:
type: choice
description: Environment
options:
- NONE
- dev
- unstable
- dev-unstable
runner:
type: choice
description: Runner
options:
- standard
- fast
arch:
type: choice
description: Architecture
options:
- ALL
- x86_64
- x86_64-apple
- aarch64
- aarch64-apple
- riscv64
push:
branches:
- master
- next/*
pull_request:
branches:
- master
- next/*

env:
NODEJS_VERSION: "24.11.0"
ENVIRONMENT: '${{ fromJson(format(''["{0}", ""]'', github.event.inputs.environment || ''dev''))[github.event.inputs.environment == ''NONE''] }}'

jobs:
compile:
name: Build Debian Package
strategy:
fail-fast: true
matrix:
triple: >-
${{
fromJson('{
"x86_64": ["x86_64-unknown-linux-musl"],
"x86_64-apple": ["x86_64-apple-darwin"],
"aarch64": ["aarch64-unknown-linux-musl"],
"x86_64-apple": ["aarch64-apple-darwin"],
"riscv64": ["riscv64gc-unknown-linux-musl"],
"ALL": ["x86_64-unknown-linux-musl", "x86_64-apple-darwin", "aarch64-unknown-linux-musl", "aarch64-apple-darwin", "riscv64gc-unknown-linux-musl"]
}')[github.event.inputs.platform || 'ALL']
}}
runs-on: ${{ fromJson('["ubuntu-latest", "buildjet-32vcpu-ubuntu-2204"]')[github.event.inputs.runner == 'fast'] }}
steps:
- name: Cleaning up unnecessary files
run: |
sudo apt-get remove --purge -y mono-* \
ghc* cabal-install* \
dotnet* \
php* \
ruby* \
mysql-* \
postgresql-* \
azure-cli \
powershell \
google-cloud-sdk \
msodbcsql* mssql-tools* \
imagemagick* \
libgl1-mesa-dri \
google-chrome-stable \
firefox
sudo apt-get autoremove -y
sudo apt-get clean

- run: |
sudo mount -t tmpfs tmpfs .
if: ${{ github.event.inputs.runner == 'fast' }}

- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEJS_VERSION }}

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

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

- name: Configure sccache
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Make
run: TARGET=${{ matrix.triple }} make cli
env:
PLATFORM: ${{ matrix.arch }}
SCCACHE_GHA_ENABLED: on
SCCACHE_GHA_VERSION: 0

- uses: actions/upload-artifact@v4
with:
name: start-cli_${{ matrix.triple }}
path: core/target/${{ matrix.triple }}/release/start-cli
78 changes: 45 additions & 33 deletions .github/workflows/start-registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,21 @@ jobs:
steps:
- name: Cleaning up unnecessary files
run: |
sudo apt-get remove --purge -y google-chrome-stable firefox mono-devel
sudo apt-get remove --purge -y mono-* \
ghc* cabal-install* \
dotnet* \
php* \
ruby* \
mysql-* \
postgresql-* \
azure-cli \
powershell \
google-cloud-sdk \
msodbcsql* mssql-tools* \
imagemagick* \
libgl1-mesa-dri \
google-chrome-stable \
firefox
sudo apt-get autoremove -y
sudo apt-get clean

Expand Down Expand Up @@ -105,18 +119,6 @@ jobs:
permissions:
contents: read
packages: write
strategy:
fail-fast: true
matrix:
arch: >-
${{
fromJson('{
"x86_64": ["x86_64"],
"aarch64": ["aarch64"],
"riscv64": ["riscv64"],
"ALL": ["x86_64", "aarch64", "riscv64"]
}')[github.event.inputs.platform || 'ALL']
}}
runs-on: ${{ fromJson('["ubuntu-latest", "buildjet-32vcpu-ubuntu-2204"]')[github.event.inputs.runner == 'fast'] }}
steps:
- name: Cleaning up unnecessary files
Expand All @@ -136,7 +138,7 @@ jobs:
uses: docker/setup-buildx-action@v3

- name: "Login to GitHub Container Registry"
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
Expand All @@ -153,34 +155,44 @@ jobs:
- name: Download debian package
uses: actions/download-artifact@v4
with:
name: start-registry_${{ matrix.arch }}.deb
pattern: start-registry_*.deb

- name: Map matrix.arch to docker platform
run: |
case "${{ matrix.arch }}" in
x86_64)
platform="linux/amd64"
;;
aarch64)
platform="linux/arm64"
;;
riscv64)
platform="linux/riscv64"
;;
*)
echo "Unknown matrix.arch: ${{ matrix.arch }}" >&2
exit 1
;;
esac
echo "DOCKER_PLATFORM=$platform" >> "$GITHUB_ENV"
platforms=""
for deb in *.deb; do
filename=$(basename "$deb" .deb)
arch="${filename#*_}"
case "$arch" in
x86_64)
platform="linux/amd64"
;;
aarch64)
platform="linux/arm64"
;;
riscv64)
platform="linux/riscv64"
;;
*)
echo "Unknown architecture: $arch" >&2
exit 1
;;
esac
if [ -z "$platforms" ]; then
platforms="$platform"
else
platforms="$platforms,$platform"
fi
done
echo "DOCKER_PLATFORM=$platforms" >> "$GITHUB_ENV"

- run: |
cat | docker buildx build --platform "$DOCKER_PLATFORM" --push -t ${{ steps.meta.outputs.tags }} -f - . << EOF
cat | docker buildx build --platform "$DOCKER_PLATFORM" --push -t ${{ steps.meta.outputs.tags }} -f - . << 'EOF'
FROM debian:trixie

ADD *.deb .

RUN apt-get install -y ./*.deb && rm *.deb
RUN apt-get install -y ./*_$(uname -m).deb && rm *.deb

VOLUME /var/lib/startos

Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/start-tunnel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,21 @@ jobs:
steps:
- name: Cleaning up unnecessary files
run: |
sudo apt-get remove --purge -y google-chrome-stable firefox mono-devel
sudo apt-get remove --purge -y mono-* \
ghc* cabal-install* \
dotnet* \
php* \
ruby* \
mysql-* \
postgresql-* \
azure-cli \
powershell \
google-cloud-sdk \
msodbcsql* mssql-tools* \
imagemagick* \
libgl1-mesa-dri \
google-chrome-stable \
firefox
sudo apt-get autoremove -y
sudo apt-get clean

Expand Down
66 changes: 61 additions & 5 deletions .github/workflows/startos-iso.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,47 @@ jobs:
"aarch64-nonfree": ["aarch64"],
"raspberrypi": ["aarch64"],
"riscv64": ["riscv64"],
"ALL": ["x86_64", "aarch64"]
"ALL": ["x86_64", "aarch64", "riscv64"]
}')[github.event.inputs.platform || 'ALL']
}}
runs-on: ${{ fromJson('["ubuntu-latest", "buildjet-32vcpu-ubuntu-2204"]')[github.event.inputs.runner == 'fast'] }}
runs-on: >-
${{
fromJson(
format(
'["{0}", "{1}"]',
fromJson('{
"x86_64": "ubuntu-latest",
"aarch64": "ubuntu-24.04-arm",
"riscv64": "ubuntu-latest"
}')[matrix.arch],
fromJson('{
"x86_64": "buildjet-32vcpu-ubuntu-2204",
"aarch64": "buildjet-32vcpu-ubuntu-2204-arm",
"riscv64": "buildjet-32vcpu-ubuntu-2204"
}')[matrix.arch]
)
)[github.event.inputs.runner == 'fast']
}}
steps:
- name: Cleaning up unnecessary files
run: |
sudo apt-get remove --purge -y google-chrome-stable firefox mono-devel
sudo apt-get remove --purge -y azure-cli || true
sudo apt-get remove --purge -y firefox || true
sudo apt-get remove --purge -y ghc-* || true
sudo apt-get remove --purge -y google-cloud-sdk || true
sudo apt-get remove --purge -y google-chrome-stable || true
sudo apt-get remove --purge -y powershell || true
sudo apt-get remove --purge -y php* || true
sudo apt-get remove --purge -y ruby* || true
sudo apt-get remove --purge -y mono-* || true
sudo apt-get autoremove -y
sudo apt-get clean
sudo rm -rf /usr/lib/jvm # All JDKs
sudo rm -rf /usr/local/.ghcup # Haskell toolchain
sudo rm -rf /usr/local/lib/android # Android SDK/NDK, emulator
sudo rm -rf /usr/share/dotnet # .NET SDKs
sudo rm -rf /usr/share/swift # Swift toolchain (if present)
sudo rm -rf "$AGENT_TOOLSDIRECTORY" # Pre-cached tool cache (Go, Node, etc.)
- run: |
sudo mount -t tmpfs tmpfs .
if: ${{ github.event.inputs.runner == 'fast' }}
Expand Down Expand Up @@ -139,7 +170,15 @@ jobs:
${{
fromJson(
format(
'["ubuntu-latest", "{0}"]',
'["{0}", "{1}"]',
fromJson('{
"x86_64": "ubuntu-latest",
"x86_64-nonfree": "ubuntu-latest",
"aarch64": "ubuntu-24.04-arm",
"aarch64-nonfree": "ubuntu-24.04-arm",
"raspberrypi": "ubuntu-24.04-arm",
"riscv64": "ubuntu-latest",
}')[matrix.platform],
fromJson('{
"x86_64": "buildjet-8vcpu-ubuntu-2204",
"x86_64-nonfree": "buildjet-8vcpu-ubuntu-2204",
Expand All @@ -165,7 +204,24 @@ jobs:
}}
steps:
- name: Free space
run: rm -rf /opt/hostedtoolcache*
run: |
sudo apt-get remove --purge -y azure-cli || true
sudo apt-get remove --purge -y firefox || true
sudo apt-get remove --purge -y ghc-* || true
sudo apt-get remove --purge -y google-cloud-sdk || true
sudo apt-get remove --purge -y google-chrome-stable || true
sudo apt-get remove --purge -y powershell || true
sudo apt-get remove --purge -y php* || true
sudo apt-get remove --purge -y ruby* || true
sudo apt-get remove --purge -y mono-* || true
sudo apt-get autoremove -y
sudo apt-get clean
sudo rm -rf /usr/lib/jvm # All JDKs
sudo rm -rf /usr/local/.ghcup # Haskell toolchain
sudo rm -rf /usr/local/lib/android # Android SDK/NDK, emulator
sudo rm -rf /usr/share/dotnet # .NET SDKs
sudo rm -rf /usr/share/swift # Swift toolchain (if present)
sudo rm -rf "$AGENT_TOOLSDIRECTORY" # Pre-cached tool cache (Go, Node, etc.)
if: ${{ github.event.inputs.runner != 'fast' }}

- uses: actions/checkout@v4
Expand Down
Loading