postie

command module
v0.0.34 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2026 License: MIT Imports: 18 Imported by: 0

README

Postie

Build Coverage Go Report Card

logo

A high-performance Usenet binary poster written in Go, inspired by Nyuu-Obfuscation.

Features

  • Multi-server support with automatic failover
  • Yenc encoding using rapidyenc for high performance
  • Post checking with multiple attempts
  • Configurable segment size
  • Automatic retry on failure
  • SSL/TLS support
  • Connection pooling for better performance
  • PAR2 support with configurable redundancy
  • Multiple obfuscation policies
  • Configurable group posting policies
  • File watching and automatic posting
  • Configurable posting schedules

Quick Start

# Create docker-compose.yml
curl -o docker-compose.yml https://raw.githubusercontent.com/kipsilabs/postie/main/docker-compose.yml

# Start Postie
docker-compose up -d

# Access web interface at http://localhost:8080
Binary Download

Download for Windows Download for macOS Download for Linux

Documentation

For detailed documentation, installation instructions, configuration options, and usage examples, please visit the Postie Documentation Site.

For Developers

Prerequisites
  • Go 1.26+
  • Bun — used for the frontend (do not use npm)
  • A C toolchain, because the native PAR2 encoder uses cgo. On Windows use MSYS2 with the MinGW-w64 GCC toolchain and build from the MSYS2 shell; on macOS the Xcode command line tools are enough.

Wails does not need to be installed separately — it is declared as a Go tool dependency and runs via go tool wails.

Building from Source

The Go binaries embed the compiled frontend, so the frontend must be built first. Skipping this step fails with pattern all:frontend/build: no matching files found.

git clone https://github.com/kipsilabs/postie.git
cd postie

make build-frontend   # cd frontend && bun i && bun run build
make build            # CLI + web server

Individual targets:

Command Builds Output
make build-cli CLI (./cmd/postie) ./postie-cli
make build-web Web server (./cmd/web) ./postie-web
make build-gui Desktop app via Wails ./build/bin/postie (.app on macOS)

Run make help for the full target list, and make check before opening a pull request (it runs go generate, go mod tidy, golangci-lint and the race tests).

Development Mode
make dev          # desktop app with hot reload
Installing with Go

go install cannot build this repository, because the embedded frontend assets are not present in a fresh module cache. Use the release binaries, or build from source as above.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
postie command
web command
internal
apikey
Package apikey manages the persistent HTTP API key used to authenticate callers of the gated upload endpoint.
Package apikey manages the persistent HTTP API key used to authenticate callers of the gated upload endpoint.
arr
manifest
Package manifest provides durable, streaming, zstd-compressed JSON Lines manifests describing every article (segment) of a source or PAR2 file in a transfer.
Package manifest provides durable, streaming, zstd-compressed JSON Lines manifests describing every article (segment) of a source or PAR2 file in a transfer.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
nzb
par2sweep
Package par2sweep removes orphaned PAR2 files from Postie's PAR2 work directory.
Package par2sweep removes orphaned PAR2 files from Postie's PAR2 work directory.
transfercleaner
Package transfercleaner performs post-verification cleanup for a durable transfer: once every file of a transfer has been verified, it runs the optional post-upload script, deletes originals whose policy requests it, removes generated PAR2 files (unless maintained), and removes the manifests.
Package transfercleaner performs post-verification cleanup for a durable transfer: once every file of a transfer has been verified, it runs the optional post-upload script, deletes originals whose policy requests it, removes generated PAR2 files (unless maintained), and removes the manifests.
transferstore
Package transferstore is the durable persistence layer for the process-wide upload architecture (issue 184).
Package transferstore is the durable persistence layer for the process-wide upload architecture (issue 184).
transferwriter
Package transferwriter records a durable manifest and a transfer_files row for each file of a transfer before its articles are posted.
Package transferwriter records a durable manifest and a transfer_files row for each file of a transfer before its articles are posted.
verification
Package verification provides the durable, lease-based post-upload verification service for the process-wide upload architecture (issue 184).
Package verification provides the durable, lease-based post-upload verification service for the process-wide upload architecture (issue 184).
wshub
Package wshub fans backend events out to browser clients over WebSocket in web mode.
Package wshub fans backend events out to browser clients over WebSocket in web mode.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL