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

    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)

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

      # 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).

            # 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) manual for configuring "watch",
    "watchheader", "listid" and the optional "spamcheck" and "watchspam"

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

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

            public-inbox-index INBOX_DIR

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

  Hosting standalone inboxes
    Using public-inbox-init(1) to initialize the inbox as in the other
    methods is recommended. See public-inbox-mda(1) 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) as well as specialized HTTP and NNTP daemons
    distributed with public-inbox.

    See public-inbox-httpd(1) and public-inbox-nntpd(1) 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)

    Feedback welcome via plain-text mail to <>

    The mail archives are hosted at <> and

    Copyright 2016-2021 all contributors <>

    License: AGPL-3.0+ <>