- Rust 56.9%
- TypeScript 36%
- Shell 2.8%
- Roff 1.9%
- JavaScript 1.3%
- Other 1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
"Switch to all traffic" / "Switch to LAN only" deleted the peer as soon as its confirm was accepted and only then opened the re-add form, so cancelling that form left the client with no peer at all. The switch was never an in-place change: routing lives in the client's own AllowedIPs, and the router keeps no client private key, so changing it means re-provisioning the client either way. The action was a delete plus an Add with name and IP prefilled, presented as a toggle. Remove it and let the existing Delete and Add do the same thing explicitly. Also drops the add dialog's now-unused defaults, the switch's six dictionary keys in every locale, and the help/book text describing it, and shares the used-IP list and add-then-show-config logic in add(). |
||
| .agents | ||
| .cargo | ||
| .claude/skills/start9-frontend | ||
| .forgejo | ||
| .github | ||
| .husky | ||
| apt | ||
| build | ||
| debian | ||
| projects | ||
| rfcs | ||
| scripts | ||
| shared-libs | ||
| .browserslistrc | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .prettierignore | ||
| .prettierrc.json | ||
| AGENTS.md | ||
| angular.json | ||
| ARCHITECTURE.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| deny.toml | ||
| devmode.sh | ||
| index.html | ||
| LICENSE | ||
| Makefile | ||
| NOTICE.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| rustfmt.toml | ||
| SECURITY.md | ||
| taplo.toml | ||
| tsconfig.json | ||
| tsconfig.lib.json | ||
What is this?
This repository is the monorepo for all Start9 products. Its flagship is StartOS — an open-source Linux distribution for running a personal server, handling discovery, installation, network configuration, data backup, dependency management, and health monitoring of self-hosted services.
Products live under projects/ and reuse code from shared-libs/. The OS, CLI, registry, and tunnel binaries are thin wrappers over the Rust start-core library; StartWRT owns its router backend and reuses that library's networking and utility modules. All Angular apps build through one root workspace; the SDK and container runtime have separate Node builds.
| Directory | Product | What it is |
|---|---|---|
projects/start-os/ |
StartOS | The server OS — startbox/start-container bins, web UI + setup wizard, container runtime, OS packaging |
projects/start-cli/ |
start-cli | CLI for managing servers, registries, and packaging |
projects/start-registry/ |
start-registry | Package registry API and asset server (registrybox) |
projects/start-tunnel/ |
StartTunnel | VPN/forwarding server (tunnelbox) + its web UI |
projects/start-wrt/ |
StartWRT | OpenWrt-based router OS (startwrt bin + embedded web UI), flashable image for the SpaceMiT K1 |
projects/start-sdk/ |
Start SDK | @start9labs/start-sdk for building StartOS service packages |
projects/brochure-marketplace/ |
Marketplace site | Public marketplace site (marketplace.start9.com) |
projects/start-docs/ |
Docs site | The documentation website (docs.start9.com) |
shared-libs/crates/start-core/ |
— | The entire Rust backend library shared by all bins |
shared-libs/ts-modules/ |
— | Shared TypeScript modules (Angular libraries + non-Angular SDK core) |
shared-libs/crates/patch-db/ |
— | Diff-based reactive state store (first-party crate) |
Tech stack: Rust backend (Tokio/Axum), Angular frontend (Taiga UI), Node.js container runtime with LXC, and a custom diff-based database (Patch-DB) for reactive state synchronization. Services run in isolated LXC containers, packaged as S9PKs — a signed, merkle-archived format supporting partial downloads and cryptographic verification.
See ARCHITECTURE.md for how the pieces fit together.
What can you do with StartOS?
StartOS lets you self-host services that would otherwise depend on third-party cloud providers — giving you full ownership of your data and infrastructure. Browse available services on the Start9 Marketplace, including:
- Bitcoin & Lightning — full Bitcoin node, Lightning node, BTCPay Server, and other payment infrastructure
- Communication — Matrix, SimpleX, and other messaging platforms
- Cloud Storage — Nextcloud, Vaultwarden, and other productivity tools
Services are added by the community. If a service you want isn't available, you can package it yourself.
Getting StartOS
Buy a Start9 server
The easiest path. Buy a server from Start9 and plug it in.
Build your own
Follow the install guide to install StartOS on your own hardware.
Build from source
git clone https://github.com/Start9Labs/start-technologies.git
cd start-technologies
See AGENTS.md for the shared toolchain and development workflow, and projects/start-os/AGENTS.md to build a StartOS image.
The rest of the monorepo
StartOS is the flagship, but it shares this repo with the rest of the Start9 stack:
- StartTunnel — a self-hosted VPN / reverse-proxy server that gives a StartOS box a public address and clearnet port forwarding without relying on a third-party tunnel.
- StartWRT — an OpenWrt-based router OS for home self-hosting: per-profile subnets and WiFi, inbound/outbound VPN, DDNS, and secure remote access, shipped as a flashable image for the SpaceMiT K1.
- start-cli — the command-line client for StartOS servers and registries, and the tool that builds and signs service packages (
.s9pk). - Start SDK — the
@start9labs/start-sdkTypeScript SDK and packaging toolchain for wrapping any app into an installable StartOS service. - start-registry — the registry server that hosts and serves marketplaces of packaged services.
- Marketplace site — the public marketplace at marketplace.start9.com, built on the same UI components the OS uses.
- Docs site — the documentation website at docs.start9.com.
Documentation
- ARCHITECTURE.md — how the monorepo fits together
- AGENTS.md — environment setup, build, test, and format workflow
- SECURITY.md — how to report a vulnerability, and what is in scope
Contributing
There are multiple ways to contribute: work directly on a product in this repo, package a service for the marketplace, or help with documentation and guides. See AGENTS.md or visit start9.com/contribute.
To report security issues, email security@start9.com. See SECURITY.md for what is in scope and what happens next.
License
MIT — see LICENSE. Copyright (c) 2023 Start9 Labs, Inc.
A short list of third-party files carry their own terms; NOTICE.md names every one of them. Anything not listed there is MIT.