Repository navigation
Sync with Start9-Community upstream - #9
Merged
Merged
Conversation
- Close registration from StartOS: a Disable/Enable Signups action, an important install task to run it, a Signups health check that fails while signups are open, and DISABLE_USER_REGISTRATION passed to the server. - Replace the Premium Activation Mode toggle, which exposed the activation endpoint on the live server, with an Activate Premium action that grants a subscription through a private, temporary server while the service is stopped. - Replace the free-text files URL with Set Files URL (setupPrimaryUrl), which picks from the server's own addresses and follows them when they change. - Run Valkey as its own daemon instead of Redis inside the server image; drop docker_entrypoint.sh and start the server with plain node so signals reach it; probe /healthcheck at a 5s cadence while starting; cap the stop timeout at 10s since upstream never exits on SIGTERM. - Generate ADMIN_KEY so upstream's /admin and /internal routes stay closed. - Build for aarch64 as well as x86_64. - License is upstream's: AGPL-3.0-or-later, with LICENSE pointing at the submodule's file. packageRepo points at the Start9-Community fork. - Translate every string into es_ES, de_DE, pl_PL and fr_FR; rewrite README, instructions, UPDATING and AGENTS to the packaging guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Activate Premium launched a temporary server with E2E_TESTING on, and upstream's listen(port) binds every interface, so the unauthenticated /e2e/activate-premium endpoint was reachable from the service network while the action ran. The action now runs activate-premium.js in a temporary container against the stopped server's SQLite database. The script boots upstream's auth service in-process with the overrides HomeServer passes it and calls its activatePremiumFeatures method, so the grant is upstream's own use case with nothing listening. No Valkey, no temporary server, no carried patch; it finishes in a few seconds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
app.standardnotes.com's CSP connect-src allows only Standard Notes' own hosts, so sign-in to a custom server fails with "Failed to fetch". Point users at the desktop and mobile apps or a self-hosted standardnotes/web. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a Web App interface (ui, port 8080) on the API's host. nginx serves the static files of upstream's standardnotes/web image — published for amd64 only, but architecture-independent, so copied into a multi-arch nginx image — and proxies every other path to the server, so the app and the API share one origin. index.html is rewritten at build time to sync with that origin and to skip websockets, which the home server does not provide: the app signs in with no server address to enter, and session cookies are first-party on every address. Rename uiPort to apiPort now that the package has a real UI port. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chore: community audit
The built-in Web App is a third-party host at its StartOS addresses like any client, but syncs with the origin it is loaded from, so opened at http://localhost:3123 through a plain-to-TLS forward it unlocks premium. The desktop recipe's plain TCP passthrough to the StartOS address could never complete: StartOS answers a TLS ClientHello whose SNI is localhost with an unrecognized_name alert. Both upstreams now go through the TLS-terminating proxy, verifying the LAN address against the root CA. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pointed at the Web App's address, the desktop app's TLS-terminating proxy also serves the web app at https://localhost:3123, since nginx proxies the API on the same origin; the two recipes otherwise collide on port 3123. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat: serve the Standard Notes web app
The check's result is fixed for the life of main (it only changes on a restart), and the default trigger retries a failure every second, writing 'Health Check <id> failed' to the service log each time. Run it once, with no grace period so the single result is not reported as starting. Closes #4 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: check Signups once per start; 1.23.8:0 → 1.23.8:1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the fork's
mainup toStart9-Community/standardnotes-startos@8e1990e: community audit (#1), web app (#2), and the Signups health-check fix (#5). Fast-forward content — no fork-only changes.🤖 Generated with Claude Code