---
name: "public-inbox-overview"
section: "7"
platform: "linux"
package: "public-inbox"
version: "1.9.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/public-inbox-overview"
---

# public-inbox-overview(7)

an overview of public-inbox

## NAME

public-inbox-overview - an overview of public-inbox

## DESCRIPTION

public-inbox consists of many pieces which may be used independently or in conjunction of each other for:

- 1\.

  Mirroring existing public-inboxes.

- 2\.

  Mirroring mailing lists.

- 3\.

  Hosting standalone inboxes.

### Mirroring existing public-inboxes

Mirroring existing public-inboxes is the easiest way to get started.  Your mirror will remain dependent on the REMOTE\_URL you are mirroring and you only need to use two new commands in addition to common [**git**(1)](/git/1.md) commands.

Instructions are different depending on whether the inbox is [**public-inbox-v1-format**(5)](/public-inbox-v1-format/5.md) or [**public-inbox-v2-format**(5)](/public-inbox-v2-format/5.md). See the "Archives are clonable:" part of the WWW interface of a given inbox for cloning instructions specific to that inbox.  The instructions are roughly:

```
  # for v1 inboxes:
  git clone --mirror URL INBOX_DIR
  # for v2 inboxes (each epoch needs to be cloned):
  git clone --mirror URL/EPOCH INBOX_DIR/git/EPOCH.git
  # The following should create the necessary entry in
  # ~/.public-inbox/config, use "-V2" only for v2 inboxes:
  public-inbox-init [-V2] NAME INBOX_DIR MY_URL LIST_ADDRESS
  # Optional but strongly recommended for hosting HTTP
  # (and required for NNTP)
  # enable overview (requires DBD::SQLite) and, if Search::Xapian is
  # available, search:
  public-inbox-index INBOX_DIR
  # Periodically fetch the repo using git-fetch(1)
  # for v1 inboxes:
  git --git-dir=INBOX_DIR fetch
  # for v2 (in most cases, only the newest epoch needs to be fetched):
  git --git-dir=INBOX_DIR/git/EPOCH.git fetch
  # index new messages after fetching:
  public-inbox-index INBOX_DIR
```

See "Serving public-inboxes" below for info on how to expose your mirror to other readers.

### Mirroring mailing lists

Mirroring mailing lists may be done by any reader of a mailing list using [**public-inbox-watch**(1)](/public-inbox-watch/1.md).

```
        # This will create a new v2 inbox:
        public-inbox-init -V2 NAME INBOX_DIR MY_URL LIST_ADDRESS
```

Then, see the [**public-inbox-watch**(1)](/public-inbox-watch/1.md) manual for configuring `"watch"`, `"watchheader"`, `"listid"` and the optional `"spamcheck"` and `"watchspam"` entries.

You will need to leave [**public-inbox-watch**(1)](/public-inbox-watch/1.md) running to keep the mailbox up-to-date as messages are delivered to the mailing list.

Running [**public-inbox-index**(1)](/public-inbox-index/1.md) to create search indices is recommended.  [**public-inbox-watch**(1)](/public-inbox-watch/1.md) will automatically maintain the indices if they were created by [**public-inbox-index**(1)](/public-inbox-index/1.md)

```
        public-inbox-index INBOX_DIR
```

Instead of using [**public-inbox-watch**(1)](/public-inbox-watch/1.md), using [**public-inbox-mda**(1)](/public-inbox-mda/1.md) with the `"--no-precheck"` option and relying on the `"listid"` directive in [**public-inbox-config**(5)](/public-inbox-config/5.md) is also an option.

### Hosting standalone inboxes

Using [**public-inbox-init**(1)](/public-inbox-init/1.md) to initialize the inbox as in the other methods is recommended.  See [**public-inbox-mda**(1)](/public-inbox-mda/1.md) for more details; but this also requires MTA-specific knowledge.

### Serving public-inboxes

Since public-inboxes are git repositories, they may be served to remote clients via [**git-daemon**(1)](/git-daemon/1.md) as well as specialized HTTP and NNTP daemons distributed with public-inbox.

See [**public-inbox-httpd**(1)](/public-inbox-httpd/1.md) and [**public-inbox-nntpd**(1)](/public-inbox-nntpd/1.md) for more information on using these daemons.

Hosting a public-inbox over HTTP or NNTP will never require write access to any files in the inbox directory.

Users familiar with PSGI and Plack may also use PublicInbox::WWW with the preferred server instead of [**public-inbox-httpd**(1)](/public-inbox-httpd/1.md)

## CONTACT

Feedback welcome via plain-text mail to \<mailto:meta@public-inbox.org\>

The mail archives are hosted at \<https://public-inbox.org/meta/\> and \<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/\>

## COPYRIGHT

Copyright 2016-2021 all contributors \<mailto:meta@public-inbox.org\>

License: AGPL-3.0+ \<https://www.gnu.org/licenses/agpl-3.0.txt\>
