Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StartOS v0.3.6 #2675

Draft
wants to merge 394 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
394 commits
Select commit Hold shift + click to select a range
94f1562
choose base image by arch instead of platform
dr-bonez Mar 29, 2024
61f68d9
install qemu
dr-bonez Mar 29, 2024
3bab767
install qemu as root
dr-bonez Mar 29, 2024
44e856e
fix make -t
dr-bonez Mar 29, 2024
bec63a9
remove extra sdk test line
dr-bonez Mar 29, 2024
1acdd67
chown volume mountpoints
dr-bonez Mar 29, 2024
2318593
fix cargo dep
dr-bonez Mar 29, 2024
b6992e3
yes
dr-bonez Mar 29, 2024
4d6dd44
allow downgrades
dr-bonez Mar 29, 2024
2c308cc
Merge pull request #2512 from Start9Labs/integration/new-container-ru…
dr-bonez Mar 30, 2024
8dfc505
ditch more FE enums for clarity and cleanliness
MattDHill Mar 30, 2024
dd790dc
Chore/reorg backend ts (#2582)
dr-bonez Apr 1, 2024
8884f64
Merge branch 'master' of github.com:Start9Labs/start-os into next/minor
dr-bonez Apr 1, 2024
f021ad9
export api types to ts (#2583)
dr-bonez Apr 1, 2024
2b88555
Merge branch 'master' of github.com:Start9Labs/start-os into next/patch
dr-bonez Apr 1, 2024
71b8324
Chore/unexport api ts (#2585)
MattDHill Apr 1, 2024
1c419d5
Merge branch 'next/patch' of github.com:Start9Labs/start-os into next…
dr-bonez Apr 1, 2024
cc1f14e
Merge branch 'next/minor' of github.com:Start9Labs/start-os into next…
dr-bonez Apr 1, 2024
3b9298e
Feature/dependency autoconfig (#2588)
MattDHill Apr 3, 2024
6bc8027
Feat/implement rest of poly effects (#2587)
Blu-J Apr 4, 2024
056cab2
Fix: Configure was borken (#2589)
Blu-J Apr 4, 2024
75ff541
complete get_service_port_forward fn (#2579)
Dominion5254 Apr 5, 2024
e41f8f1
allow concurrency in service actor (#2592)
dr-bonez Apr 8, 2024
c13d8f3
finish dependency autoconfig (#2596)
dr-bonez Apr 8, 2024
313e415
miscellaneous bugfixes
dr-bonez Apr 8, 2024
f07992c
misc fixes
dr-bonez Apr 9, 2024
aee5500
miscellaneous bugfixes (#2597)
dr-bonez Apr 9, 2024
2bc6492
Merge branch 'next/minor' of github.com:Start9Labs/start-os into bugf…
dr-bonez Apr 9, 2024
e9166c4
fix wifi types
dr-bonez Apr 9, 2024
932b53d
deprecate wifi
MattDHill Apr 10, 2024
156bf02
Merge pull request #2599 from Start9Labs/bugfix/wifi
MattDHill Apr 10, 2024
711c824
Feature/debian runtime (#2600)
dr-bonez Apr 15, 2024
9eff920
Feat/logging (#2602)
Blu-J Apr 17, 2024
003d110
build multi-arch s9pks (#2601)
dr-bonez Apr 22, 2024
7b8a011
fix log response (#2607)
dr-bonez Apr 23, 2024
3a5ee4a
kill process by session, and add timeout (#2608)
dr-bonez Apr 23, 2024
e08d93b
complete export_service_interface and list_service_interfaces fns (#2…
Dominion5254 Apr 25, 2024
8a38666
Feature/sdk040dependencies (#2609)
Blu-J Apr 26, 2024
9b14d71
Feature/new registry (#2612)
dr-bonez May 6, 2024
30aabe2
Feature/backup+restore (#2613)
Blu-J May 6, 2024
800b076
More svc effect handlers (#2610)
Dominion5254 May 10, 2024
0b8a142
fix: Making the daemons keep up the status. (#2617)
Blu-J May 13, 2024
0ccbb52
wait for whole session to exit when sigterm (#2620)
dr-bonez May 17, 2024
fd7c2fb
Feature/registry package index (#2623)
dr-bonez May 31, 2024
2568bfd
create skeleton
dr-bonez May 31, 2024
e06b068
Merge branch 'master' of github.com:Start9Labs/start-os into next/patch
dr-bonez Jun 3, 2024
412c5d6
Merge branch 'next/patch' of github.com:Start9Labs/start-os into next…
dr-bonez Jun 3, 2024
8f7072d
metrics wip
Dominion5254 Jun 4, 2024
fa347fd
remove record_metrics fn
Dominion5254 Jun 4, 2024
9487529
remove os version from activity
Dominion5254 Jun 4, 2024
2c12af5
Feature/network (#2622)
Blu-J Jun 6, 2024
4d6cb09
Feature/disk usage (#2637)
Blu-J Jun 7, 2024
4afd3c2
move MAU tracking back to registry
Dominion5254 Jun 11, 2024
5aefb70
feat: Add the merge to the file. (#2643)
Blu-J Jun 11, 2024
3f380fa
feature: pack s9pk (#2642)
dr-bonez Jun 12, 2024
bb514d6
Chore/refactoring effects (#2644)
Blu-J Jun 14, 2024
e92d4ff
fix compat assets (#2645)
dr-bonez Jun 17, 2024
da3720c
Feat/combine uis (#2633)
MattDHill Jun 19, 2024
355452c
Feat/next packages (#2646)
Blu-J Jun 19, 2024
c6c9749
add boot param to logs subscription
MattDHill Jun 20, 2024
f39b85a
bump to 036
MattDHill Jun 20, 2024
07104b1
Update workflows actions (#2628)
k0gen Jun 20, 2024
e6abf4e
feat: get rid of cyclic dep between patch-db and api service
waterplea Jun 21, 2024
133dfd5
match query to registry table
Dominion5254 Jun 22, 2024
b0c0cd7
add script to cache registry db
Dominion5254 Jun 22, 2024
509f8a5
Merge pull request #2649 from Start9Labs/cyclic-dep
MattDHill Jun 22, 2024
e0d23f4
bump patchDB dep
MattDHill Jun 22, 2024
68ed1c8
update todos
MattDHill Jun 23, 2024
2c255b6
chore: Do some type cleanups (#2650)
Blu-J Jun 24, 2024
00f7fa5
remove analyticsd, clean up script
dr-bonez Jun 24, 2024
9da49be
Bugfix/patch db subscriber (#2652)
dr-bonez Jun 24, 2024
13d0e99
Merge branch 'next/minor' of github.com:Start9Labs/start-os into feat…
dr-bonez Jun 24, 2024
8009dd6
Merge pull request #2635 from Start9Labs/feature/registry-metrics
MattDHill Jun 25, 2024
0c188f6
fix ca trust test and snek high score
MattDHill Jun 25, 2024
0a98ccf
Merge pull request #2653 from Start9Labs/fix/ca-and-snek
MattDHill Jun 25, 2024
0e506f5
fix container cli (#2654)
dr-bonez Jun 25, 2024
ab1fdf6
add docs for development environment (#2655)
dr-bonez Jun 26, 2024
c16d8a1
fix setup wizard styles and remove diagnostic from angular.json (#2656)
MattDHill Jun 26, 2024
822dd5e
Feature/UI sideload (#2658)
dr-bonez Jun 28, 2024
f76e822
port 040 config (#2657)
MattDHill Jul 10, 2024
1b5cf2d
Merge branch 'next/minor' of github.com:Start9Labs/start-os into feat…
dr-bonez Jul 10, 2024
e6cedc2
add boot param to logs request
dr-bonez Jul 10, 2024
f2a02b3
Merge pull request #2648 from Start9Labs/feat/boot-param
MattDHill Jul 10, 2024
8732274
Feature/backup fs (#2665)
dr-bonez Jul 11, 2024
6def083
fix deadlock on install (#2667)
dr-bonez Jul 11, 2024
d235eba
solve infinite recursion and promise returning true
MattDHill Jul 11, 2024
0f5cec0
fix: fix wrong password messaging
waterplea Jul 12, 2024
62fc6af
fix: fix select on mobile
waterplea Jul 12, 2024
95611e9
Merge pull request #2668 from Start9Labs/fix/backup-create
MattDHill Jul 12, 2024
8f0bdcd
Fix/backups (#2659)
Blu-J Jul 17, 2024
196561f
init UI increase logs buffer and don't throw on websocket unsubscribe…
MattDHill Jul 19, 2024
3eb0093
feature: Adding in the stopping state (#2677)
Blu-J Jul 22, 2024
0fbb18b
Merge branch 'master' into next/minor
dr-bonez Jul 22, 2024
a535fc1
Feature/fe new registry (#2647)
elvece Jul 23, 2024
019142e
v0.3.6-alpha.0 (#2680)
dr-bonez Jul 23, 2024
c6f19db
Bugfix/wsl build (#2681)
dr-bonez Jul 23, 2024
ab465a7
default to all category and fix rounding for progress (#2682)
MattDHill Jul 25, 2024
b36b62c
Feature/callbacks (#2678)
dr-bonez Jul 25, 2024
e04b93a
fix builds on platforms without kernel support for `squashfs`
dr-bonez Jul 25, 2024
c3d17bf
fix sync_db middleware
dr-bonez Jul 25, 2024
099b77c
fix .local service resolution
dr-bonez Jul 25, 2024
1a0536d
fix: Optional input
Blu-J Jul 25, 2024
a9373d9
don't show "Bytes" for overall progress
dr-bonez Jul 25, 2024
419e3f7
fix https redirect
dr-bonez Jul 25, 2024
69baa44
use squashfuse if available
dr-bonez Jul 25, 2024
8540442
reduce reliance on sudo
dr-bonez Jul 25, 2024
370c38e
fix launchUI button
dr-bonez Jul 25, 2024
21e31d5
Merge branch 'bugfix/misc' of github.com:Start9Labs/start-os into bug…
dr-bonez Jul 25, 2024
2a1fd16
curl fail and show error
dr-bonez Jul 25, 2024
64315df
log url for download
dr-bonez Jul 25, 2024
e4782de
fix ca cert issue
dr-bonez Jul 26, 2024
a743785
cleanup on uninstall
dr-bonez Jul 26, 2024
dfb7658
implement mount for dependencies
dr-bonez Jul 26, 2024
2754302
standardize result type for sideload progress
dr-bonez Jul 26, 2024
078bf41
bump version
dr-bonez Jul 26, 2024
8aecec0
fix canonicalization
dr-bonez Jul 26, 2024
e0b47fe
Fixing: Some getConfigs where breaking in new system (#2685)
Blu-J Jul 26, 2024
a3b9481
ephemeral logins
dr-bonez Jul 26, 2024
6d42ae2
brackets for ipv6
dr-bonez Jul 26, 2024
5cef687
install before test
dr-bonez Jul 26, 2024
698bdd6
fix version mapping
dr-bonez Jul 26, 2024
10ede0d
delegate pointer removal to config transformer
dr-bonez Jul 26, 2024
25b33fb
use ci for test
dr-bonez Jul 26, 2024
9480758
decrease lxc-net init weight
dr-bonez Jul 26, 2024
bf55367
chore: remove the need for the method in the autoconfig
Blu-J Jul 26, 2024
6abdc39
ignore error on dependent mounts in polyfill
dr-bonez Jul 26, 2024
bfe3029
fix dependency autoconfig
dr-bonez Jul 26, 2024
be217b5
update-grub on update
dr-bonez Jul 27, 2024
e65c0a0
fix tests
dr-bonez Jul 27, 2024
6f07ec2
fix bindings
dr-bonez Jul 27, 2024
3e7578d
bump version
dr-bonez Jul 27, 2024
63e26b6
fix race condition
dr-bonez Jul 29, 2024
0ed6eb7
Fix sessions (#2689)
MattDHill Jul 29, 2024
75e5250
fixed: Transforming for bitcoind and nostr (#2688)
Blu-J Jul 29, 2024
dafa638
fix SSH Key message (#2686)
k0gen Jul 29, 2024
08003c5
don't lazily unmount unless on error
dr-bonez Jul 29, 2024
ccbb68a
fix instructions on installed packages
dr-bonez Jul 29, 2024
36cc9cc
fix firmware checker
dr-bonez Jul 29, 2024
0bc6f97
reserialize getConfig response for backwards compatibility
dr-bonez Jul 29, 2024
bca75a3
stop container before unmounting logs
dr-bonez Jul 29, 2024
5c153c9
improve install performance
dr-bonez Jul 30, 2024
46b3f83
don't trim logs
dr-bonez Jul 30, 2024
1dd21f1
fix config pointers
dr-bonez Jul 30, 2024
290a15b
remove sourceVersion and minor cleanup
MattDHill Jul 30, 2024
89e3273
remove file uploads from config
MattDHill Jul 30, 2024
7cd3f28
fix dependency autoconfig
dr-bonez Jul 30, 2024
972ee8e
premake 5 versions
dr-bonez Jul 31, 2024
82ba5da
version bump
k0gen Jul 31, 2024
6168a00
fix: address TODOs and close dialogs upon state change
waterplea Jul 31, 2024
ecd0edc
Merge pull request #2701 from Start9Labs/bugfix/misc-alex
MattDHill Jul 31, 2024
0cfc43c
don't deprecate wifi
MattDHill Aug 2, 2024
512ed71
fixes: The case on the readonly that the path before doesn't exist, j…
Blu-J Aug 5, 2024
93640bb
don't bail on error in dep config on startup
dr-bonez Aug 6, 2024
4427aea
fix asset mounts
dr-bonez Aug 6, 2024
0e85301
fix config set dry
dr-bonez Aug 6, 2024
d0c2dc5
fix dns in the overlay
dr-bonez Aug 6, 2024
7c32404
fix test
dr-bonez Aug 6, 2024
94a5075
Merge pull request #2684 from Start9Labs/bugfix/misc
dr-bonez Aug 6, 2024
a3e7e7c
version bump
k0gen Aug 7, 2024
9f1a9a7
fix CI build
k0gen Aug 7, 2024
419d498
fix: Inject for actions and health
Blu-J Aug 7, 2024
faf0c2b
Merge branch 'bugfix/misc' of github.com:Start9Labs/start-os into bug…
Blu-J Aug 7, 2024
bd7adaf
Fix: sdk setupManifest pass through docs
Blu-J Aug 7, 2024
058bfe0
sdk updates
dr-bonez Aug 8, 2024
0e59866
redesign checkDependencies api
dr-bonez Aug 8, 2024
806196f
fix: Gitea/ Synapse/ Nostr types for manifest + config (#2704)
Blu-J Aug 8, 2024
c289629
bump sdk version
dr-bonez Aug 9, 2024
9237984
remove disabled from createInterface
MattDHill Aug 9, 2024
30885ce
fix: Gitea/ Synapse/ Nostr types for manifest + config (#2704)
Blu-J Aug 8, 2024
46a893a
fix bug with setup wiz recovery
MattDHill Aug 10, 2024
7ef25a3
Merge pull request #2703 from Start9Labs/bugfix/misc
dr-bonez Aug 13, 2024
c704626
Fix/overlay destroy (#2707)
Blu-J Aug 14, 2024
c174b65
create version graph to handle migrations (#2708)
dr-bonez Aug 15, 2024
f692ebb
fix runtime lockup (#2711)
dr-bonez Aug 15, 2024
6a8d8ba
fix uid mapping in squashfs's made from tarballs (#2710)
dr-bonez Aug 16, 2024
a083f25
better ergonomics for versions (#2717)
MattDHill Aug 19, 2024
4d7694d
chore: reimplement refactor for the changes (#2716)
Blu-J Aug 20, 2024
c6ee65b
bump sdk version
dr-bonez Aug 20, 2024
72898d8
Merge branch 'next/minor' of github.com:Start9Labs/start-os into next…
dr-bonez Aug 20, 2024
4defec1
Feature/subcontainers (#2720)
dr-bonez Aug 23, 2024
f373abd
fix: Container runtime actions (#2723)
Blu-J Aug 23, 2024
ece5577
feat: Adding in the effects to the startSdk (#2722)
Blu-J Aug 23, 2024
e423678
chore: Bump the version to 5 (#2724)
Blu-J Aug 23, 2024
9059855
run tests in docker (#2725)
dr-bonez Aug 23, 2024
571db5c
Bugfix/mac build (#2726)
dr-bonez Aug 26, 2024
4006dba
fixes #2702 (#2728)
dr-bonez Aug 27, 2024
c552fdf
fixes #2651 (#2729)
dr-bonez Aug 27, 2024
ed1bc6c
fix: session display (#2730)
dr-bonez Aug 28, 2024
66b018a
Fix/health check error (#2731)
Blu-J Aug 30, 2024
9981ee7
follow sideload progress (#2718)
MattDHill Sep 3, 2024
ae88f7d
add types
elvece Sep 12, 2024
21dd085
update version to clear refresh alert
elvece Sep 12, 2024
27416ef
only display alt implementations if no flavors
elvece Sep 12, 2024
dbbc42c
update packages
elvece Sep 12, 2024
47855dc
remove explicit type
elvece Sep 17, 2024
24c6cd2
Merge pull request #2737 from Start9Labs/fix/flavors
MattDHill Sep 17, 2024
eec5cf6
add support for remote attaching to container (#2732)
dr-bonez Sep 20, 2024
db06951
Refactor/actions (#2733)
dr-bonez Sep 25, 2024
e7fa94c
add error status (#2746)
dr-bonez Sep 27, 2024
5146689
v0.3.6-alpha.6 (#2748)
dr-bonez Sep 27, 2024
0c04802
fix cors (#2749)
dr-bonez Oct 1, 2024
9fc082d
add with_about for CLI commands (#2741)
Dominion5254 Oct 16, 2024
fb074c8
036 migration (#2750)
Blu-J Oct 16, 2024
2ba56b8
Convert properties to an action (#2751)
MattDHill Oct 17, 2024
c9f3e1b
fix bug allowing click on disabled actions
MattDHill Oct 18, 2024
2fa0a57
fixing raspi image (#2712)
dr-bonez Oct 18, 2024
28e39c5
Fix: Error Messages in HealthCheck (#2759)
Blu-J Oct 21, 2024
7694b68
Feat/stats (#2761)
Blu-J Oct 22, 2024
42cfd69
sdk: fix piping stdio of Daemons, support onStdOut/onStderr (#2762)
remcoros Oct 24, 2024
26ae0bf
sdk tweaks (#2760)
dr-bonez Oct 28, 2024
b952e31
sdk: allow passing docker build arguments in service manifest (#2764)
remcoros Oct 28, 2024
e1a91a7
Feat: With path (#2768)
Blu-J Oct 29, 2024
1be9cda
use hardware requirements to display conflicts and prevent install (#…
MattDHill Oct 29, 2024
8e0db27
Fix/mac start cli packing (#2767)
Blu-J Oct 29, 2024
480f5c1
pi 5 support (#2640)
dr-bonez Oct 30, 2024
2091abe
persist hostname in config overlay (#2769)
dr-bonez Oct 30, 2024
8832048
fix: Actions like the action don't give the results (#2770)
Blu-J Oct 30, 2024
5ab2efa
wip(fix): Working on fixing the migration. (#2771)
Blu-J Nov 5, 2024
176b1c9
allow lxc-net for tor (#2774)
dr-bonez Nov 5, 2024
020268f
don't attempt autoconfig if config is null (#2775)
dr-bonez Nov 6, 2024
b79c029
Feature/registry improvements (#2772)
dr-bonez Nov 6, 2024
6ab6502
alpha.8 (#2776)
dr-bonez Nov 6, 2024
1c90303
closes #2340 and #2431, fixes bug with select all for backup (#2780)
MattDHill Nov 8, 2024
279c732
download to directory not filename (#2777)
dr-bonez Nov 8, 2024
25e38bf
do not mute logs of subcontainer launch dummy (#2781)
dr-bonez Nov 8, 2024
b1e7a71
allow updating grub from chroot-and-upgrade (#2778)
dr-bonez Nov 8, 2024
aab2b8f
do not request config action if no config exists (#2779)
dr-bonez Nov 11, 2024
c088ab7
remove file from input spec (#2782)
MattDHill Nov 11, 2024
db6fc66
fix: Dependency (#2784)
Blu-J Nov 13, 2024
46179f5
attempt to fix webserver lockup (#2788)
dr-bonez Nov 14, 2024
1771797
sdk input spec improvements (#2785)
dr-bonez Nov 19, 2024
ed8a7ee
feat: make favicon react to theme (#2786)
waterplea Nov 19, 2024
fefa88f
Feature/cli clearnet (#2789)
dr-bonez Nov 21, 2024
e4a2af6
Add serial console support for headless operation (#2790)
k0gen Nov 23, 2024
504f1a8
sdk tweaks (#2791)
dr-bonez Nov 25, 2024
12dec67
Update sdk comments (#2793)
MattDHill Nov 27, 2024
dd423f2
Add System Debug Information Gathering Script (#2738)
k0gen Dec 2, 2024
22a32af
use notification system for OS updates (#2670)
MattDHill Dec 2, 2024
7a96e94
More SDK comments (#2796)
MattDHill Dec 2, 2024
f48750c
v0.3.6-alpha.9 (#2795)
dr-bonez Dec 2, 2024
ef28b01
delete patch dump and ack-welcome references
MattDHill Dec 2, 2024
f152510
sdk beta.0
dr-bonez Dec 3, 2024
1859c05
remove deprecated useHash param
MattDHill Dec 6, 2024
c675d0f
Escape backslashes in /etc/issue to prevent unwanted newlines (#2797)
k0gen Dec 10, 2024
e9d851e
fix: reset sideload service after websocket completes (#2798)
waterplea Dec 11, 2024
45ca940
Feat/test smtp (#2806)
Dominion5254 Jan 9, 2025
29e8210
enabling support for wireguard and firewall (#2713)
dr-bonez Jan 9, 2025
eb1f3a0
sdk: checkPortListening: check tcp6/udp6 ports (#2763)
remcoros Jan 9, 2025
5d759f8
Bugfix/websockets (#2808)
dr-bonez Jan 14, 2025
e012a29
add smtp to frontend (#2802)
MattDHill Jan 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
64 changes: 49 additions & 15 deletions .github/workflows/startos-iso.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ on:
- dev
- unstable
- dev-unstable
- docker
- dev-docker
- dev-unstable-docker
runner:
type: choice
description: Runner
Expand Down Expand Up @@ -48,7 +45,7 @@ on:
- next/*

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

jobs:
Expand All @@ -74,24 +71,32 @@ jobs:
sudo mount -t tmpfs tmpfs .
if: ${{ github.event.inputs.runner == 'fast' }}
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions/setup-node@v3
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

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

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

- name: Set up system dependencies
run: sudo apt-get update && sudo apt-get install -y qemu-user-static systemd-container squashfuse

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

- name: Make
run: make ARCH=${{ matrix.arch }} compiled-${{ matrix.arch }}.tar

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: compiled-${{ matrix.arch }}.tar
path: compiled-${{ matrix.arch }}.tar
Expand Down Expand Up @@ -140,10 +145,19 @@ jobs:
}')[matrix.platform]
}}
steps:
- uses: actions/checkout@v3
- name: Free space
run: rm -rf /opt/hostedtoolcache*
if: ${{ github.event.inputs.runner != 'fast' }}

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

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install dependencies
run: |
sudo apt-get update
Expand All @@ -162,7 +176,7 @@ jobs:
if: ${{ github.event.inputs.runner == 'fast' && (matrix.platform == 'x86_64' || matrix.platform == 'x86_64-nonfree') }}

- name: Download compiled artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: compiled-${{ env.ARCH }}.tar

Expand All @@ -171,9 +185,29 @@ jobs:

- name: Prevent rebuild of compiled artifacts
run: |
mkdir -p web/node_modules
mkdir -p web/dist/raw
mkdir -p core/startos/bindings
mkdir -p sdk/base/lib/osBindings
mkdir -p container-runtime/node_modules
mkdir -p container-runtime/dist
mkdir -p container-runtime/dist/node_modules
mkdir -p core/startos/bindings
mkdir -p sdk/dist
mkdir -p sdk/baseDist
mkdir -p patch-db/client/node_modules
mkdir -p patch-db/client/dist
mkdir -p web/.angular
mkdir -p web/dist/raw/ui
mkdir -p web/dist/raw/install-wizard
mkdir -p web/dist/raw/setup-wizard
mkdir -p web/dist/static/ui
mkdir -p web/dist/static/install-wizard
mkdir -p web/dist/static/setup-wizard
PLATFORM=${{ matrix.platform }} make -t compiled-${{ env.ARCH }}.tar
- run: git status

- name: Run iso build
run: PLATFORM=${{ matrix.platform }} make iso
if: ${{ matrix.platform != 'raspberrypi' }}
Expand All @@ -182,18 +216,18 @@ jobs:
run: PLATFORM=${{ matrix.platform }} make img
if: ${{ matrix.platform == 'raspberrypi' }}

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}.squashfs
path: results/*.squashfs

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}.iso
path: results/*.iso
if: ${{ matrix.platform != 'raspberrypi' }}

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}.img
path: results/*.img
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ on:
- next/*

env:
NODEJS_VERSION: "18.15.0"
NODEJS_VERSION: "20.16.0"
ENVIRONMENT: dev-unstable

jobs:
test:
name: Run Automated Tests
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive

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

Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ secrets.db
/ENVIRONMENT.txt
/GIT_HASH.txt
/VERSION.txt
/eos-*.tar.gz
/*.deb
/target
/*.squashfs
/results
/dpkg-workdir
/compiled.tar
/compiled-*.tar
/firmware
/firmware
/tmp
134 changes: 134 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Setting up your development environment on Debian/Ubuntu

A step-by-step guide

> This is the only officially supported build environment.
> MacOS has limited build capabilities and Windows requires [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install)

## Installing dependencies

Run the following commands one at a time

```sh
sudo apt update
sudo apt install -y ca-certificates curl gpg build-essential
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg-architecture -q DEB_HOST_ARCH) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y sed grep gawk jq gzip brotli containerd.io docker-ce docker-ce-cli docker-compose-plugin qemu-user-static binfmt-support squashfs-tools git debspawn rsync b3sum
sudo mkdir -p /etc/debspawn/
echo "AllowUnsafePermissions=true" | sudo tee /etc/debspawn/global.toml
sudo usermod -aG docker $USER
sudo su $USER
docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --use
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # proceed with default installation
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
nvm alias default 20 # this prevents your machine from reverting back to another version
```

## Cloning the repository

```sh
git clone --recursive https://github.com/Start9Labs/start-os.git --branch next/minor
cd start-os
```

## Building an ISO

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make iso
```

This will build an ISO for your current architecture. If you are building to run on an architecture other than the one you are currently on, replace `$(uname -m)` with the correct platform for the device (one of `aarch64`, `aarch64-nonfree`, `x86_64`, `x86_64-nonfree`, `raspberrypi`)

## Creating a VM

### Install virt-manager

```sh
sudo apt update
sudo apt install -y virt-manager
sudo usermod -aG libvirt $USER
sudo su $USER
```

### Launch virt-manager

```sh
virt-manager
```

### Create new virtual machine

![Select "Create a new virtual machine"](assets/create-vm/step-1.png)
![Click "Forward"](assets/create-vm/step-2.png)
![Click "Browse"](assets/create-vm/step-3.png)
![Click "+"](assets/create-vm/step-4.png)

#### make sure to set "Target Path" to the path to your results directory in start-os

![Create storage pool](assets/create-vm/step-5.png)
![Select storage pool](assets/create-vm/step-6.png)
![Select ISO](assets/create-vm/step-7.png)
![Select "Generic or unknown OS" and click "Forward"](assets/create-vm/step-8.png)
![Set Memory and CPUs](assets/create-vm/step-9.png)
![Create disk](assets/create-vm/step-10.png)
![Name VM](assets/create-vm/step-11.png)
![Create network](assets/create-vm/step-12.png)

## Updating a VM

The fastest way to update a VM to your latest code depends on what you changed:

### UI or startd:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make update-startbox REMOTE=start9@<VM IP>
```

### Container runtime or debian dependencies:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make update-deb REMOTE=start9@<VM IP>
```

### Image recipe:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make update-squashfs REMOTE=start9@<VM IP>
```

---

If the device you are building for is not available via ssh, it is also possible to use `magic-wormhole` to send the relevant files.

### Prerequisites:

```sh
sudo apt update
sudo apt install -y magic-wormhole
```

As before, the fastest way to update a VM to your latest code depends on what you changed. Each of the following commands will return a command to paste into the shell of the device you would like to upgrade.

### UI or startd:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make wormhole
```

### Container runtime or debian dependencies:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make wormhole-deb
```

### Image recipe:

```sh
PLATFORM=$(uname -m) ENVIRONMENT=dev make wormhole-squashfs
```
Loading