Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Install the published CLI with whichever flow fits your environment:

```bash
# Install script (macOS/Linux, self-host friendly)
curl -fsSL https://onequery.wordbricks.ai/install.sh | sh
curl -fsSL https://onequery.dev/install.sh | sh

# Homebrew
brew install wordbricks/tap/onequery
Expand Down
8 changes: 2 additions & 6 deletions apps/cli/crates/onequery-cli/src/commands/upgrade.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ use crate::platform::Terminal;
use super::CommandContext;
use super::Runtime;

const INSTALL_SCRIPT_UPGRADE_COMMAND: &str =
"curl -fsSL https://onequery.wordbricks.ai/install.sh | sh";
const INSTALL_SCRIPT_UPGRADE_COMMAND: &str = "curl -fsSL https://onequery.dev/install.sh | sh";
const HOMEBREW_UPGRADE_COMMAND: &str = "brew upgrade wordbricks/tap/onequery";
const BUN_UPGRADE_COMMAND: &str = "bun install -g @onequery/cli@latest";
const NPM_UPGRADE_COMMAND: &str = "npm install -g @onequery/cli@latest";
Expand Down Expand Up @@ -180,10 +179,7 @@ fn detect_upgrade_plan(current_exe: &Path) -> Option<UpgradePlan> {
UpgradeInstaller::InstallScript,
INSTALL_SCRIPT_UPGRADE_COMMAND,
"sh",
[
"-c",
"curl -fsSL https://onequery.wordbricks.ai/install.sh | sh",
],
["-c", "curl -fsSL https://onequery.dev/install.sh | sh"],
));
}

Expand Down
44 changes: 44 additions & 0 deletions apps/landing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Landing On Cloudflare Pages

This app is a static Vite site that builds to `apps/landing/dist/client`.

## Recommended setup

Use a dedicated Cloudflare Pages project for the landing site and keep the repo
root as the Pages root directory. This repo is a Bun workspace monorepo, and
the landing build depends on the installer asset emitted from
`packages/self-host-runtime`.

Cloudflare Pages settings:

- Production branch: `main`
- Root directory: `/`
- Build command: `bun install && bun run landing:build`
- Build output directory: `apps/landing/dist/client`

## Direct upload

If you want to create or update the Pages project from the CLI instead of Git
integration:

```bash
bun run landing:deploy:cloudflare -- --project-name <pages-project-name>
```

The first run will ask you to authenticate Wrangler with Cloudflare if you have
not already done so.

## onequery.dev domain

After the Pages project is live:

1. Add `onequery.dev` in Cloudflare Pages under `Custom domains`.
2. Keep DNS for `onequery.dev` hosted in Cloudflare so the apex domain can be
attached directly to Pages.
3. Add `www.onequery.dev` too if you want a redirect or secondary hostname.

The landing page and installer now assume the public installer URL is:

```text
https://onequery.dev/install.sh
```
2 changes: 1 addition & 1 deletion apps/landing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"scripts": {
"dev": "bunx --bun vite",
"build": "bunx --bun vite build",
"build": "bun run --cwd ../../packages/self-host-runtime build && bunx --bun vite build",
"test": "vitest run",
"test:watch": "vitest",
"typecheck": "tsgo --noEmit -p tsconfig.json"
Expand Down
2 changes: 1 addition & 1 deletion apps/landing/src/landing-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const LANDING_REPOSITORY_URL =
export const LANDING_CLI_SOURCE_URL =
`${LANDING_REPOSITORY_URL}/tree/main/apps/cli` as const;
export const LANDING_INSTALL_SCRIPT_URL =
"https://onequery.wordbricks.ai/install.sh" as const;
"https://onequery.dev/install.sh" as const;
const LANDING_LOCAL_SERVER_URL = "http://127.0.0.1:5656" as const;

export const LANDING_DOWNLOAD_COMMAND =
Expand Down
4 changes: 2 additions & 2 deletions docs/self-host.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ official Node.js 24.x runtime under the OneQuery install directory when `node`
Install the CLI:

```bash
curl -fsSL https://onequery.wordbricks.ai/install.sh | sh
curl -fsSL https://onequery.dev/install.sh | sh
```

Or install it with Homebrew:
Expand Down Expand Up @@ -240,7 +240,7 @@ Upgrade flow:
```bash
onequery gateway stop
onequery backup --include-secrets --archive-path ./pre-upgrade.tar.gz
curl -fsSL https://onequery.wordbricks.ai/install.sh | sh
curl -fsSL https://onequery.dev/install.sh | sh
onequery gateway start
```

Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
"dev": "bun run dev:setup && turbo dev --filter='!@onequery/connector'",
"dev:with-connector": "bun run dev:setup && turbo dev",
"dev:setup": "bun run scripts/dev-setup.ts",
"landing:build": "bun run --cwd apps/landing build",
"landing:deploy:cloudflare": "bun run landing:build && bunx wrangler pages deploy apps/landing/dist/client",
"github:rulesets:check": "bun run --cwd packages/github-rulesets rulesets:check",
"github:rulesets:plan": "bun run --cwd packages/github-rulesets rulesets:plan",
"github:rulesets:apply": "bun run --cwd packages/github-rulesets rulesets:apply",
Expand Down
6 changes: 3 additions & 3 deletions packages/self-host-runtime/src/install-script.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {

describe("install script surface", () => {
it("keeps the SPA root for browser navigation", () => {
const request = new Request("https://onequery.wordbricks.ai/", {
const request = new Request("https://onequery.dev/", {
headers: {
accept: "text/html",
"user-agent":
Expand All @@ -20,14 +20,14 @@ describe("install script surface", () => {
});

it("exposes an explicit install.sh endpoint", () => {
const request = new Request("https://onequery.wordbricks.ai/install.sh");
const request = new Request("https://onequery.dev/install.sh");

expect(shouldServeInstallScript(request)).toBe(true);
});

it("returns a shell script response with the stable release assets", async () => {
const response = createInstallScriptResponse(
new Request("https://onequery.wordbricks.ai/install.sh")
new Request("https://onequery.dev/install.sh")
);
const script = await response.text();

Expand Down
Loading