> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pendpost.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Boot pendpost in under a minute via git, npx, or docker, then open the dashboard or drive it over MCP.

pendpost runs as a single local process. It runs live by default: a lane with no credentials is live-but-unauthenticated and waits for you to connect it, so nothing publishes until you do. To walk the whole loop risk-free first, start it in mock mode with `PENDPOST_MODE=mock`. Pick whichever path fits your workflow.

## Install and run

**git**

Clone the repository and enter it:

```bash theme={null}
git clone https://github.com/pendpost/pendpost.git
cd pendpost
```

The server has zero runtime dependencies, so no root install is needed. Just start it. This builds the dashboard on first run, then boots:

```bash theme={null}
npm start
```

Or run the binary directly. This is equivalent, the same build-on-first-run entry point:

```bash theme={null}
node bin/pendpost.mjs
```

Then open:

```
http://127.0.0.1:8090
```

**npx**

A single command boots the server and builds the dashboard on first run:

```bash theme={null}
npx pendpost
```

When it is up, open the dashboard:

```
http://127.0.0.1:8090
```

**docker**

```bash theme={null}
docker compose up
```

The host exposure stays loopback-only. When the container is up, open:

```
http://127.0.0.1:8090
```

## First run

Start it with `PENDPOST_MODE=mock` and every platform lane runs through the credential-free mock driver: no real API calls. Mock mode runs in a private demo workspace in your temp folder, which opens on an example `Acme Launch` campaign so the dashboard shows real content instead of an empty screen. Without `PENDPOST_MODE=mock`, pendpost is live, so an unconnected lane waits for its credential rather than publishing. On pendpost 2.8.0 and earlier, also set `PENDPOST_ROOT=/tmp/pendpost-demo` for mock mode (see [Mock mode](https://docs.pendpost.com/mock-mode.md)).

From the dashboard you can walk the full loop: draft a post, approve it, schedule it, watch it publish through the mock driver, and read back fabricated insights. See [Mock mode](https://docs.pendpost.com/mock-mode.md) for the complete walkthrough.

Mock runs do not exercise rate limits, native scheduling, or the Meta 368 breaker; those engage only on a live lane. See [Mock mode](https://docs.pendpost.com/mock-mode.md) for what mock does and does not cover.

## Drive it headless

The same `npx pendpost` (or `npm start`) boot also exposes the MCP server, so an agent can run onboarding without the dashboard. Connect an MCP client, call `pendpost_health` to confirm readiness, then `plan_list` to read the workspace (a fresh install shows the example Acme Launch campaign), then `campaign_create` to start your own. See [MCP](https://docs.pendpost.com/mcp-server.md) to connect a client.

> [!NOTE]
>
> pendpost binds `127.0.0.1` (loopback) by default. The docker image binds `0.0.0.0` inside the container, but docker compose still maps the port to loopback on your host only.

## Going live later

When you are ready to publish for real, add credentials for the platforms you use in your own `.env`. Every lane is already live; adding a credential is what lets that lane actually publish instead of waiting unauthenticated. (A lane only runs through the mock driver when you set `PENDPOST_MODE=mock`.) See:

> **[Meta](https://docs.pendpost.com/credentials/meta.md)**
>
> Facebook and Instagram.

> **[LinkedIn](https://docs.pendpost.com/credentials/linkedin.md)**
>
> Organization page posting.

> **[YouTube](https://docs.pendpost.com/credentials/youtube.md)**
>
> Video uploads with native scheduling.

> **[X (Twitter)](https://docs.pendpost.com/credentials/x.md)**
>
> OAuth 1.0a or 2.0 PKCE posting.

> **[Telegram](https://docs.pendpost.com/credentials/telegram.md)**
>
> Channel posting via a bot.

> **[Discord](https://docs.pendpost.com/credentials/discord.md)**
>
> Channel posting via a webhook.

> **[Reddit](https://docs.pendpost.com/credentials/reddit.md)**
>
> Subreddit posting (beta).

> **[Pinterest](https://docs.pendpost.com/credentials/pinterest.md)**
>
> Board pins (beta).

> **[TikTok](https://docs.pendpost.com/credentials/tiktok.md)**
>
> Video uploads (beta).

> **[Mastodon](https://docs.pendpost.com/credentials/mastodon.md)**
>
> Instance posting via an access token.

> **[Nostr](https://docs.pendpost.com/credentials/nostr.md)**
>
> Text notes to relays (Node 22+).

> **[WordPress](https://docs.pendpost.com/credentials/wordpress.md)**
>
> Posts via an application password.

> **[Ghost](https://docs.pendpost.com/credentials/ghost.md)**
>
> Posts via the Admin API.

> **[Google Business Profile](https://docs.pendpost.com/credentials/gbp.md)**
>
> Local posts (beta).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.