#!perl -w
# Copyright (C) all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
#
# Standalone NNTP server for public-inbox.
use v5.12;
use PublicInbox::Daemon;
PublicInbox::Daemon::run('nntp://0.0.0.0:119');
