-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
github-actions[bot] edited this page Jun 26, 2026
·
2 revisions
- Node.js ≥ 20
- pnpm ≥ 10
git clone https://github.com/madebyaris/rankmyseo.git
cd rankmyseo
pnpm install
pnpm build
pnpm testTerminal 1 — API server (SQLite, seeded data):
pnpm dev:playground
# → http://localhost:3456
# → Manual test UI: http://localhost:3456/playgroundTerminal 2 — React dashboard (proxies to :3456):
pnpm dev:dashboard
# → http://localhost:5173Interactive (recommended):
npm i rankmyseo
npx rankmyseo installChoose Recommended (core + storage + server-hono + react), Full (all packages), or Custom (pick from a list).
Non-interactive:
npx rankmyseo install --yes --preset recommendedThen scaffold:
npx rankmyseo init
npx rankmyseo migrateSee Packages for manual @rankmyseo/* installs.
pnpm exec rankmyseo-cli init # creates rankmyseo.config.ts
pnpm exec rankmyseo-cli migrate # SQLite migrations
pnpm exec rankmyseo-cli schedule # one rank ingestion passimport { defineConfig } from "@rankmyseo/core";
import { createStore } from "@rankmyseo/storage";
import { createRankMySeoApp } from "@rankmyseo/server-hono";
const store = createStore("sqlite:///path/to/db.sqlite");
await store.projects.create({
id: "project-1",
tenantId: "tenant-a",
name: "My Site",
domain: "example.com",
});
const config = defineConfig({
databaseUrl: "sqlite:///path/to/db.sqlite",
tenantId: "tenant-a",
projectId: "project-1",
dataSources: [{ provider: "fixture", default: true }],
schedule: { cron: "0 6 * * *", enabled: false },
siteFeatures: {
sitemap: true,
llmsTxt: true,
collector: true,
markdownNegotiation: true,
blog: false,
},
});
export default createRankMySeoApp(store, { config });Every mutating and scoped read requires headers:
| Header | Purpose |
|---|---|
x-tenant-id |
Tenant scope |
x-project-id |
Project scope |
Example:
curl http://localhost:3456/keywords \
-H "x-tenant-id: tenant-a" \
-H "x-project-id: project-1"- Read Configuration for all config options
- See API-Reference for every route
- Add dashboard widgets via Dashboard-and-Widgets
- Enable blog optionally via Blog-Module