Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8d4ca3c
update for startos 0.4.0
remcoros May 24, 2025
853e58d
make it work, add healthcheck and metrics endpoint
remcoros May 25, 2025
6a60039
startos sdk beta.30
remcoros Jun 19, 2025
22b8f19
cloudflared 2025.6.1
remcoros Jun 19, 2025
2d807f4
update startos sdk to beta.32 and enable .s9pk upload to github
remcoros Jul 2, 2025
1170ca4
update cloudflared to 2025.7.0 / update startos sdk to beta.33
remcoros Jul 10, 2025
a4dc720
update to startos sdk beta.36 / update github workflows
remcoros Jul 17, 2025
167d7c4
update cloudflared to 2025.8.0
remcoros Aug 14, 2025
bb1f6d2
update startos sdk to beta.40 / cloudflared 2025.8.1
remcoros Sep 14, 2025
042c3a6
add missing assets folder
remcoros Sep 14, 2025
cba8f38
update sdk to beta.41 / move version to versions/index.ts
remcoros Sep 28, 2025
853bc9a
update StartOS SDK, cloudflared to 2025.10.1
remcoros Nov 12, 2025
0c1f2cb
fix Makefile
remcoros Nov 12, 2025
e3c4c2b
update to cloudflared 2025.11.1
remcoros Nov 20, 2025
386897d
start-os sdk beta.48
remcoros Feb 8, 2026
02531c5
chore: upgrade to SDK 1.0.0 and add v2026.3.0
remcoros Apr 12, 2026
0011e8e
feat: add url-v0 plugin for public hostname routing
remcoros Apr 12, 2026
1e7bd0d
feat: replace token input with cloudflared login + select tunnel flow
remcoros Apr 12, 2026
e1b60ad
chore: polish for release - version bump, README, CI workflows, actio…
remcoros Apr 12, 2026
e7aaa2d
refactor: consolidate versions
remcoros Apr 12, 2026
60f435b
feat: switch to CF API for ingress management, drop local tunnel.yaml
remcoros Apr 12, 2026
3cb8e98
feat: infer server name from mDNS for new tunnel default
remcoros Apr 12, 2026
07132dd
feat: multi-zone support with per-zone cert files and full i18n
remcoros Apr 12, 2026
e7f8eec
feat: add Import Public Hostnames action
remcoros Apr 12, 2026
475b715
feat: merge url-v0 plugin branch
remcoros Apr 12, 2026
05d4f9f
fix: tighten cloudflare tunnel account handling
remcoros Apr 12, 2026
7730b2c
fix: harden Cloudflare API error handling
remcoros Apr 12, 2026
2219904
chore: update remove zone action copy
remcoros Apr 12, 2026
7fdbc88
refactor: remove unnecessary action const assertions / run prettier
remcoros Apr 12, 2026
129ebe6
merge: harden Cloudflare API handling
remcoros Apr 12, 2026
7b79a7f
feat: add managed Cloudflare overview action
remcoros Apr 12, 2026
9e9ae1a
docs: refresh beta release docs and notes
remcoros Apr 12, 2026
b504370
qr + i18n
remcoros Apr 17, 2026
5927b77
chore: use debian trixie
remcoros Apr 18, 2026
0e6ab78
fix: make login flow more resilient
remcoros Apr 18, 2026
d6af6da
chore: bump sdk to 1.4.1, version to 2026.3.0:2-beta.2
remcoros May 4, 2026
c13984f
chore: bump sdk to 1.5.1, remove deprecated docsUrls, add instruction…
remcoros May 14, 2026
c705bc4
chore: release 2026.3.0:2
remcoros May 14, 2026
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
20 changes: 20 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build

on:
workflow_dispatch:
pull_request:
paths-ignore: ['*.md']
branches: ['master', 'main', 'update/040']

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
build:
if: github.event.pull_request.draft == false
uses: start9labs/shared-workflows/.github/workflows/build.yml@master
# with:
# FREE_DISK_SPACE: true
secrets:
DEV_KEY: ${{ secrets.DEV_KEY }}
37 changes: 0 additions & 37 deletions .github/workflows/buildService.yml

This file was deleted.

20 changes: 20 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Release

on:
push:
tags:
- 'v*.*'

jobs:
release:
uses: start9labs/shared-workflows/.github/workflows/release.yml@master
with:
# FREE_DISK_SPACE: true
RELEASE_REGISTRY: ${{ vars.RELEASE_REGISTRY }}
S3_S9PKS_BASE_URL: ${{ vars.S3_S9PKS_BASE_URL }}
secrets:
DEV_KEY: ${{ secrets.DEV_KEY }}
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
permissions:
contents: write
72 changes: 0 additions & 72 deletions .github/workflows/releaseService.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/tagAndRelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Tag and Release

# Disabled — uncomment 'on:' block and remove 'on: workflow_dispatch' to enable auto-tagging on merge to master
on:
workflow_dispatch:

# on:
# push:
# branches: ['master']
# paths-ignore: ['*.md']

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
tag:
uses: start9labs/shared-workflows/.github/workflows/tagAndRelease.yml@master
with:
REFERENCE_REGISTRY: ${{ vars.REFERENCE_REGISTRY }}
# FREE_DISK_SPACE: true
RELEASE_REGISTRY: ${{ vars.RELEASE_REGISTRY }}
S3_S9PKS_BASE_URL: ${{ vars.S3_S9PKS_BASE_URL }}
secrets:
DEV_KEY: ${{ secrets.DEV_KEY }}
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
permissions:
contents: write
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@
.DS_Store
scripts/*.js
docker-images
tmp
node_modules
javascript/*
ncc-cache
17 changes: 9 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# cloudflared container version is defined in Makefile
ARG CLOUDFLARED_IMAGE
# cloudflared container version is defined in manifest.ts
ARG CLOUDFLARED_IMAGE=cloudflare/cloudflared:latest

# used to copy cloudflared binary
FROM $CLOUDFLARED_IMAGE as cloudflared
FROM $CLOUDFLARED_IMAGE AS cloudflared

# run on debian bookworm slim
FROM debian:12-slim
# run on debian troxie slim
FROM debian:13-slim

ARG PLATFORM

Expand All @@ -19,7 +19,8 @@ RUN \
/var/tmp/* \
/tmp/*

# add local files
COPY --chmod=0755 ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh
COPY --chmod=0755 ./tmp/yq_linux_${PLATFORM} /usr/local/bin/yq
# add cloudflared binary
COPY --chmod=0755 --from=cloudflared /usr/local/bin/cloudflared /usr/local/bin/cloudflared

# add login helper script
COPY --chmod=0755 scripts/cf-login.sh /usr/local/bin/cf-login.sh
83 changes: 3 additions & 80 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,80 +1,3 @@
CLOUDFLARED_IMAGE := cloudflare/cloudflared:2025.10.0
# sha256 hashes can be found in https://github.com/mikefarah/yq/releases/download/v4.40.7/checksums-bsd
YQ_VERSION := 4.40.7
YQ_SHA_AMD64 := 4f13ee9303a49f7e8f61e7d9c87402e07cc920ae8dfaaa8c10d7ea1b8f9f48ed
YQ_SHA_ARM64 := a84f2c8f105b70cd348c3bf14048aeb1665c2e7314cbe9aaff15479f268b8412

PKG_ID := $(shell yq e ".id" manifest.yaml)
PKG_VERSION := $(shell yq e ".version" manifest.yaml)
TS_FILES := $(shell find ./ -name \*.ts)

.DELETE_ON_ERROR:

all: verify

arm:
@rm -f docker-images/aarch64.tar
@ARCH=aarch64 $(MAKE)

x86:
@rm -f docker-images/x86_64.tar
@ARCH=x86_64 $(MAKE)

verify: $(PKG_ID).s9pk
@start-sdk verify s9pk $(PKG_ID).s9pk
@echo " Done!"
@echo " Filesize: $(shell du -h $(PKG_ID).s9pk) is ready"

install:
@if [ ! -f ~/.embassy/config.yaml ]; then echo "You must define \"host: http://server-name.local\" in ~/.embassy/config.yaml config file first."; exit 1; fi
@echo "\nInstalling to $$(grep -v '^#' ~/.embassy/config.yaml | cut -d'/' -f3) ...\n"
@[ -f $(PKG_ID).s9pk ] || ( $(MAKE) && echo "\nInstalling to $$(grep -v '^#' ~/.embassy/config.yaml | cut -d'/' -f3) ...\n" )
@start-cli package install $(PKG_ID).s9pk

clean:
rm -rf docker-images
rm -f $(PKG_ID).s9pk
rm -f scripts/*.js

scripts/embassy.js: $(TS_FILES)
deno run --allow-read --allow-write --allow-env --allow-net scripts/bundle.ts

docker-images/aarch64.tar: manifest.yaml Dockerfile docker_entrypoint.sh tmp/yq_linux_arm64
ifeq ($(ARCH),x86_64)
else
mkdir -p docker-images
docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) \
--build-arg PLATFORM=arm64 \
--build-arg CLOUDFLARED_IMAGE=$(CLOUDFLARED_IMAGE) \
--platform=linux/arm64 -o type=docker,dest=docker-images/aarch64.tar .
endif

docker-images/x86_64.tar: manifest.yaml Dockerfile docker_entrypoint.sh tmp/yq_linux_amd64
ifeq ($(ARCH),aarch64)
else
mkdir -p docker-images
docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) \
--build-arg PLATFORM=amd64 \
--build-arg CLOUDFLARED_IMAGE=$(CLOUDFLARED_IMAGE) \
--platform=linux/amd64 -o type=docker,dest=docker-images/x86_64.tar .
endif

tmp/yq_linux_amd64:
mkdir -p tmp
wget -qO ./tmp/yq_linux_amd64 https://github.com/mikefarah/yq/releases/download/v$(YQ_VERSION)/yq_linux_amd64
echo "$(YQ_SHA_AMD64) ./tmp/yq_linux_amd64" | sha256sum --check || exit 1

tmp/yq_linux_arm64:
mkdir -p tmp
wget -qO ./tmp/yq_linux_arm64 https://github.com/mikefarah/yq/releases/download/v$(YQ_VERSION)/yq_linux_arm64
echo "$(YQ_SHA_ARM64) ./tmp/yq_linux_arm64" | sha256sum --check || exit 1

$(PKG_ID).s9pk: manifest.yaml instructions.md icon.png LICENSE scripts/embassy.js docker-images/aarch64.tar docker-images/x86_64.tar
ifeq ($(ARCH),aarch64)
@echo "start-sdk: Preparing aarch64 package ..."
else ifeq ($(ARCH),x86_64)
@echo "start-sdk: Preparing x86_64 package ..."
else
@echo "start-sdk: Preparing Universal Package ..."
endif
@start-sdk pack
# overrides to s9pk.mk must precede the include statement
ARCHES := x86 arm
include s9pk.mk
Loading
Loading