由 Jasmin R. 出售

Ghost is a professional open-source headless Node.js CMS for publishing, memberships, and newsletters. It ships a full backend, React and Ember admin interfaces, embeddable frontend widgets, and a comprehensive E2E test suite.
This block is the Ghost CMS open-source monorepo, providing the full backend, admin interface, and ActivityPub social integration layer built on Node.js. The typical buyer is a developer embedding Ghost's ActivityPub frontend components or AdminX app shell into an existing Node.js/TypeScript project, or self-hosting and extending the Ghost platform.
.agents/ - AI agent skill definitions for common Ghost development tasks (API endpoints, migrations, feature flags).codex/ - Codex environment configuration for automated development environments.cursor/ - Cursor IDE worktree configuration.github/ - CI/CD workflows, issue templates, contribution guidelines, and GitHub Actions.vscode/ - VS Code workspace settingsadr/ - Architecture Decision Records documenting major technical choicesapps/ - Frontend applications including activitypub (Fediverse integration UI) and admin appsdocker/ - Docker Compose files and container configurationdocs/ - Developer documentationghost/ - Core Ghost CMS packages (core, admin API, content API, models, etc.)scripts/ - Monorepo maintenance and utility scriptsnx.json - Nx monorepo task pipeline configurationpackage.json - Root workspace package manifestpnpm-workspace.yaml - pnpm workspace definition linking all packagesnpm install -g ghost-cli
npm install -g pnpm
pnpm install
For local development with the full stack:
# Node.js >= 18 required
node --version
# Install all workspace dependencies from root
pnpm install
# If using the ActivityPub app independently:
npm install react react-dom
npm install @tryghost/admin-x-framework
No native iOS/Android steps are required. The project is pure Node.js/TypeScript with no native build steps. Docker is optional but recommended for database and auxiliary services.
Clone or drop source/ into your project root. The monorepo uses pnpm workspaces; run pnpm install from source/ to bootstrap all packages.
启动隔离沙箱并在服务器端直接运行 — 无需本地配置。
此版本的 Tetrees AI Review
This TypeScript, JavaScript cli / script completed archive review. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately.
Deterministic AVCP artifact review
管道 avcp-2026-08-04.1 · SHA-256 de92d5d46d1f5278…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
审查日期 2026年8月4日
将此产品直接导入你的 AI IDE、网页构建器或云端 IDE。
将 Tetrees 连接到兼容的 AI IDE,列出你拥有的产品并获取已验证 ZIP,同时不会开放卖家上传权限。
暂无评价。
Sign in to join the discussion
Loading discussion…
Ensure your Node.js version is >= 18 (check .nvmrc or package.json engines if present). Use nvm use if applicable.
Configure environment variables by copying source/ghost/core/.env.example to source/ghost/core/.env and filling in database credentials, mail settings, and URL.
For TypeScript path resolution in a consuming project, add the following to your tsconfig.json:
{
"compilerOptions": {
"paths": {
"@tryghost/activitypub": ["./source/apps/activitypub/src/index.tsx"],
"@tryghost/activitypub/*": ["./source/apps/activitypub/src/*"]
}
}
}
Add source/apps/activitypub to your bundler's include or resolve.modules array (Vite/Webpack) so CSS and asset imports resolve correctly.
Wire the ActivityPub app into your admin shell by importing AdminXApp and mounting it at your chosen route.
For Docker-based local dev: docker compose -f source/compose.dev.yaml up -d starts the full backing stack (database, mail, storage).
import AdminXApp from '@tryghost/activitypub';
// or directly:
import AdminXApp from './source/apps/activitypub/src/app';
const AdminXApp: React.ComponentType<Record<string, unknown>>;
The root React application component for the ActivityPub admin interface. Mount this inside your admin shell or any React tree to render the full ActivityPub management UI including feeds, followers, and settings.
import { routes } from './source/apps/activitypub/src/index.tsx';
const routes: RouteObject[]; // React Router v6 route definitions
The exported React Router route configuration for the ActivityPub app. Use this to compose ActivityPub routes into an existing React Router setup rather than mounting the full AdminXApp.
import { FeatureFlagsProvider } from './source/apps/activitypub/src/index.tsx';
const FeatureFlagsProvider: React.ComponentType<{
children: React.ReactNode;
flags?: Record<string, boolean>;
}>;
Context provider that enables or disables experimental features within the ActivityPub UI. Wrap your component tree with this before mounting AdminXApp or any ActivityPub component to control feature visibility.
import { useNotificationsCountForUser } from './source/apps/activitypub/src/index.tsx';
function useNotificationsCountForUser(userId: string): {
count: number | undefined;
isLoading: boolean;
};
React hook that returns the unread ActivityPub notification count for a given user. Use this in nav bars or badge indicators to show live notification counts without mounting the full ActivityPub app.
Drop the full ActivityPub admin panel into an existing admin shell. Assumes React Router v6 is already configured.
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import AdminXApp from './source/apps/activitypub/src/app';
import { FeatureFlagsProvider } from './source/apps/activitypub/src/index.tsx';
export default function AdminShell() {
return (
<BrowserRouter>
<FeatureFlagsProvider flags={{ socialWeb: true }}>
<Routes>
<Route path="/activitypub/*" element={<AdminXApp />} />
</Routes>
</FeatureFlagsProvider>
</BrowserRouter>
);
}
When you already have a React Router root and want to nest ActivityPub routes without ceding full layout control.
import React from 'react';
import { createBrowserRouter, RouterProvider } from 'react-router-dom';
import { routes as activityPubRoutes } from './source/apps/activitypub/src/index.tsx';
import RootLayout from './layouts/RootLayout';
const router = createBrowserRouter([
{
path: '/',
element: <RootLayout />,
children: [
...activityPubRoutes,
// your other routes
],
},
]);
export default function App() {
return <RouterProvider router={router} />;
}
Display an unread notification count in a top nav bar without mounting the full ActivityPub app.
import React from 'react';
import { useNotificationsCountForUser } from './source/apps/activitypub/src/index.tsx';
interface NavBadgeProps {
userId: string;
}
export function ActivityPubNavBadge({ userId }: NavBadgeProps) {
const { count, isLoading } = useNotificationsCountForUser(userId);
if (isLoading || !count) return null;
return (
<span className="notification-badge">
{count > 99 ? '99+' : count}
</span>
);
}
.agents/ - Contains structured AI agent skill packs (e.g., add-admin-api-endpoint, create-database-migration) with markdown instructions for automated coding tasks..codex/ - Holds environment.toml defining the automated development environment specification for Codex-based workflows..cursor/ - Stores worktrees.json for Cursor IDE multi-worktree navigation support..github/ - Full GitHub ecosystem config: CI workflows, Renovate bot config, issue templates, PR templates, custom Actions, and agentic workflow definitions..vscode/ - Editor settings and recommended extensions for contributors.adr/ - Markdown Architecture Decision Records; read these to understand why key technical choices were made.apps/ - Standalone frontend applications. apps/activitypub is the Fediverse/social web UI; other apps include AdminX extensions.docker/ - Dockerfiles and supporting assets consumed by the compose.dev.*.yaml files.docs/ - Internal developer documentation not published to ghost.org/docs.ghost/ - The heart of the repo: all Ghost core packages, API layers, models, and services as individual npm packages.scripts/ - Monorepo-level scripts for version bumping, cleaning, and dependency inspection.nx.json - Nx task runner configuration defining caching, pipelines, and affected-project logic.package.json - Root manifest; defines the user@example.com package and workspace scripts.pnpm-workspace.yaml - Declares all workspace globs so pnpm links internal packages correctly.scripts/enforce-package-manager.js; install the pinned version with corepack enable && corepack prepare.apps/activitypub/src/styles/index.css must be processed by your bundler; add a CSS loader or Vite plugin — do not skip the CSS import in index.tsx.URL env var at runtime: Ghost core will refuse to start without a URL environment variable set to the site's public origin — set it before running any Ghost process.ghost/ packages publish both ESM and CJS; if your bundler picks the wrong condition, set "moduleResolution": "bundler" in tsconfig.json.pnpm exec nx reset to clear the Nx computation cache after modifying package.json files in any workspace package.I have the Ghost CMS monorepo source in the `source/` directory.
The upstream package is `user@example.com`.
I also have `USAGE.md` which documents the public exports and setup steps.
Please help me integrate the ActivityPub admin UI and notification hooks
into my existing React + TypeScript project step by step:
1. Read `USAGE.md` fully before making any changes.
2. Install all required dependencies listed in the "Required dependencies" section.
3. Update my `tsconfig.json` with the path aliases shown in "Project setup".
4. Mount `AdminXApp` from `source/apps/activitypub/src/app` inside my admin
shell at the `/activitypub` route, wrapped in `FeatureFlagsProvider`.
5. Add the `useNotificationsCountForUser` hook to my nav bar component.
6. Show me the exact file changes needed, with full file contents where modified.
7. Do not invent any exports — only use symbols documented in `USAGE.md`.
Ghost is released under the MIT License. See source/LICENSE for the full license text.
Upstream project: TryGhost/Ghost — maintained by the Ghost Foundation. The user@example.com package is the root of that repository.
This product’s unique contribution is clean room implementation of valuable code block into AVCP compatible standard.
完整安装指南与集成提示词将在购买后解锁。
CRM, ERP, Admin & Internal Tools
免费