BinktermPHP is a multi-protocol BBS platform built around native FTN messaging. It provides a full browser-based community interface with a native BinkP mailer, a real-time event bus, and a door game framework — accessible from browsers, Telnet/SSH terminals, Gemini clients, QWK readers, AI assistants, and mesh radio nodes. No third-party mailer required.
awehttam operates a live instance at claudes.lovelybits.org — Claude's own BBS, and a point system at mypoint.lovelybits.org.
BinktermPHP was featured in the Calling All Nodes YouTube video: CALLING ALL NODES — BinktermPHP
This code is released under the terms of a BSD License.
Full documentation: docs/index.md
- Why BinktermPHP?
- Screenshots
- Features
- Architecture
- Installation
- Configuration
- Upgrading
- Joining LovlyNet Network
- Customization
- Optional Features
- For Developers
- Contributors Wanted
- Contributing
- Registration
- License
- Support
- About the BinktermPHP Logo
- Acknowledgments
- FTN connectivity built in — no separate mailer, tosser, or AreaFix tool to install or configure. Inbound polling, packet processing, and hub subscriptions are all handled out of the box.
- Full BBS experience on any device — echomail, netmail, doors, and chat work on any smartphone or browser, installable as a PWA with no app store required. Telnet, SSH, Gemini, QWK, and MCP are also built in.
- A ready network on day one — LovlyNet (Zone 227) is BinktermPHP's home FTN, with automated node registration via a single script, giving you a live network and operator support community immediately.
- Doors for every era — classic DOS games via DOSBox-X, native PTY doors, HTML5 WebDoors, and browser-based WASM for 3D games and C64 emulation, with credit charging built in across all types.
- Admin tools that show you what's happening — web-based admin dashboard, activity analytics, credits economy viewer, and AI features, so you can manage your BBS without grepping log files.
- Credits economy — built-in points system with login rewards, door session charging, referral bonuses, and user-to-user transfers. Full economy viewer and credit ledger give you visibility into how your community earns and spends.
- AI integration — provider-agnostic AI layer supports OpenAI, Anthropic, and Ollama (local inference); expose echo areas via MCP, give users an in-reader AI assistant, and deploy chatbots to any chat room.
BinktermPHP runs in any modern browser across different features and themes.
Echomail List![]() |
Echomail Reader![]() |
Netmail![]() |
Cyberpunk Theme![]() |
ANSI Decoder![]() |
Nodelist Browser![]() |
Mobile Echoread![]() |
Mobile Echolist![]() |
Doors![]() |
User Settings![]() |
Admin Menu![]() |
Telnet Server![]() |
Activity Stats![]() |
Gemini Home![]() |
Markdown![]() |
- Browser-based echomail and netmail with full-text search, Markdown/StyleCodes authoring, and message sharing via expiring web links
- Rich media rendering — inline images, video, audio, and platform embeds (YouTube, SoundCloud, etc.) in messages; ANSI art decoder; RIPscrip graphics; pipe code / MCI color codes (Synchronet, Renegade, Mystic); Sixel-aware web interface
- File areas — file browsing, upload, and download; TIC file distribution via FTN; FREQ serving; automated processing rules; anti-virus integration; ISO area support; file comments via linked echo areas
- Mobile-responsive UI, installable as a PWA
- Multiple themes — ANSI-inspired, cyberpunk, amber terminal, and more
- Credits economy — reward logins and participation, charge for features and door games, referral bonuses and transfers
- Bulletins, shoutbox, polls, interests-based echo area discovery, and user profiles
- QWK offline mail — download and upload packets for external readers
- Echomail digests via email (daily or weekly)
- BBS Directory — community-maintained node listing with geocoded map view
- Web — full HTML5 interface, installable as a PWA
- Telnet — built-in server with ANSI art, Sixel graphics, screen rotation, and a browser-based terminal via PubTerm
- SSH — built-in SSH server for secure terminal access
- Gemini — capsule hosting for Gemini-protocol clients
- QWK — packet download/upload via built-in passive FTP daemon
- MCP — Model Context Protocol access for AI assistants and automation clients
- PacketBBS — compact one-line command interface for mesh radio nodes; supports MeshCore (TCP/IP) and AX.25 KISS TNC interfaces
- FTP — standalone passive FTP daemon for file area transfers
- Native BinkP mailer — inbound server, polling scheduler, and on-demand poll
- Multiple simultaneous FTN network connections (FidoNet, fsxnet, DoveNet, LovlyNet, and others)
- AreaFix and FileFix for automated subscription management with hub uplinks
- Nodelist browser with text/address/flag search, map view, and crashmail routing
- LovlyNet — Zone 227 FTN with automated node registration (
scripts/lovlynet_setup.php)
- DOS Doors — classic door games via DOSBox-X (headless, no display required)
- Native Doors — Linux/Windows programs via PTY
- WebDoors — HTML5/JavaScript games embedded in the browser, with credit integration and a full SDK
- JS-DOS Doors — browser-side DOS emulation via js-dos/DOSBox WASM (no server process)
- C64 Doors — Commodore 64 emulated door games
- BinkStream — WebSocket and SSE event delivery; incoming FTN mail notifies open browser tabs in real time
- Local chat & DMs — built-in room-based group chat and direct messages between users, delivered in real time via BinkStream
- Multi-room chat — Matterbridge bridging to Discord, Slack, IRC, Telegram, and others
- MRC — Multi-Relay Chat protocol integration
- Shoutbox — public 280-character message wall
- MCP server — AI assistants read echo areas and messages via Model Context Protocol
- Multiple AI providers — OpenAI, Anthropic, and Ollama (local inference) via a shared provider-agnostic interface; per-feature provider and model overrides; usage and cost accounting in the admin dashboard
- AI message assistant — in-reader AI assistant for echomail and netmail with credit charging
- AI bots — configurable per-room chatbot middleware with a custom middleware pipeline
- Broadcast/Advertising — scheduled postings, ad rotation, bulletins, weather reports, and related content workflows
- Echomail robots — automated processing bots for designated echo areas
- Weather reports — automated weather data posted to echo areas on a schedule
- Share summarizer — AI-generated
og:descriptionfor shared message links
- Full admin web interface — no config file editing required for day-to-day operations
- Activity analytics — logins by source, echomail, netmail, doors, files, nodelist, hourly distribution
- Economy viewer — credit ledger, balance distribution, top earners and spenders
- Ad analytics — impressions, clicks, and CTR per ad (licensed feature)
- Advertising manager — rotate ANSI, RIPscrip, Sixel, or plain-text ads; Broadcast Manager for automated postings
- Customizable appearance — shells, themes, announcements, and template overrides
- Localization — i18n support with English, French, Spanish, Italian, and more
BinktermPHP is structured in layers. A PHP web application handles all HTTP requests; cooperating daemons handle FTN networking, real-time delivery, terminal access, and door games. All processes share a single PostgreSQL database.
See docs/ARCHITECTURE.md for the full component diagram, FTN packet lifecycle, daemon IPC model, door subsystem, and AI pipeline.
BinktermPHP supports two installation methods:
- Installer (recommended) - download and run
binkterm-installer.pharfor a guided, automated setup that handles PHP, PostgreSQL, web server configuration, and migrations - Git (for developers) - clone the repository and run setup scripts for full control over the installation
BinktermPHP is intended for a VPS, dedicated server, Raspberry Pi, or similar environment where you control PostgreSQL, background daemons, and multiple network ports. Shared hosting is not recommended.
For complete installation instructions - system requirements, Ubuntu/Debian package setup, PostgreSQL configuration, web server configuration (Caddy, Nginx, Apache), cron job setup, and a network port reference - see docs/INSTALL.md.
Two files must be configured before first run. If you use the installer, it creates and populates these for you during setup:
.env— database, SMTP, daemon ports, and feature flags. Copy.env.exampleto.envand fill in values.config/binkp.json— your FTN system identity, uplinks, binkp daemon, security, and crashmail. Copyconfig/binkp.json.exampleas a starting point.
After first run, ongoing BBS settings are managed through the Admin web interface (Admin → BBS Settings). After editing any config file, restart services with bash scripts/restart_daemons.sh.
Full configuration reference: docs/CONFIGURATION.md
Review version-specific upgrade notes in docs/index.md before upgrading — individual versions may have specific steps you must take.
Current release notes: docs/UPGRADING_1.9.8.md
The general steps:
- Pull the latest code —
git pull - Run setup —
php scripts/setup.php(handles database migrations automatically) - Update configurations — review
.envandconfig/binkp.jsonfor new options - Restart daemons —
bash scripts/restart_daemons.sh
Using the installer: Re-run binkterm-installer.phar to upgrade.
LovlyNet is the home FTN for BinktermPHP: a FidoNet Technology Network built specifically for BinktermPHP systems, with automated registration and echo areas for operators sharing knowledge, troubleshooting, and community. It also carries LVLY_BINKTERMPHP, the main support area for BinktermPHP sysops.
php scripts/lovlynet_setup.phpSee docs/LovlyNet.md for the complete guide including public vs passive node setup, AreaFix configuration, and troubleshooting.
The easiest way to customize your BBS is through Admin → Appearance: shells, branding, announcements, navigation links, and SEO. Manual options include template overrides in templates/custom/, custom stylesheets, and local route files — all upgrade-safe.
See docs/CUSTOMIZING.md for the full reference.
These features are disabled by default and require additional setup:
| Feature | Documentation |
|---|---|
| DOS Doors (DOSBox-X) | docs/DOSDoors.md |
| Native Doors (PTY) | docs/NativeDoors.md |
| WebDoors (HTML5 games) | docs/WebDoors.md |
| JS-DOS Doors (browser WASM) | docs/JSDOSDoors.md |
| C64 Doors (emulated) | docs/C64Doors.md |
| Gemini Browser & Capsule Hosting | docs/GeminiCapsule.md |
| MCP Server (AI assistant access) | docs/MCPServer.md |
| PacketBBS Gateway (MeshCore / AX.25 KISS TNC) | docs/PacketBBS.md |
| Telnet Server | docs/TelnetServer.md |
| SSH Server | docs/SSHServer.md |
| File Areas | docs/FileAreas.md |
| FTP Server | docs/FTPServer.md |
| Matterbridge Chat Bridge | docs/Matterbridge.md |
See docs/index.md for the full documentation index.
| Topic | Guide |
|---|---|
| Codebase architecture & conventions | docs/DEVELOPER_GUIDE.md |
| System architecture diagram | docs/ARCHITECTURE.md |
| Database model | docs/DATA_MODEL.md |
| HTTP API reference | docs/API.md |
| Building a WebDoor | docs/WebDoor-Tutorial.md |
| MCP server & client setup | docs/MCPServer.md · docs/MCPClientHelp.md |
| AI providers & accounting | docs/AIProviders.md |
| BinkStream real-time events | docs/BinkStreamChannel.md |
| Contributing | CONTRIBUTING.md |
BinktermPHP is developed using modern AI-assisted workflows alongside traditional software engineering and systems administration practices.
We're looking for experienced PHP developers interested in contributing to BinktermPHP. Areas include FTN networking, WebDoors game development, themes, telnet, real-time features, and more. See HELP_WANTED.md for details.
Before contributing, review:
- docs/DEVELOPER_GUIDE.md — codebase architecture, conventions, and migrations
- HELP_WANTED.md — areas where contributions are especially needed
- CONTRIBUTING.md — PR workflow, coding standards, and testing guidelines
All contributions must be submitted via pull request and will be reviewed by project maintainers.
BinktermPHP is open source and fully functional without registration. Registering supports development and unlocks premium features: custom branding, netmail email forwarding, echomail digests, the Economy Viewer, Referral Analytics, and more.
See REGISTER.md for how to register.
This project is licensed under a BSD License. See LICENSE.md for more information.
- Documentation: docs/index.md
- FAQ: FAQ.md
- Issues: GitHub issue tracker
- Community: claudes.lovelybits.org — live BBS; Fidonet echo areas
- Reddit: r/BinktermPHP
Kludge, the BinktermPHP mascot, is a corvid inspired by the messenger and trickster archetypes found throughout Pacific Northwest storytelling and early network culture. Rendered in a bold woodcut-inspired style, Kludge carries a glowing ANSI tile representing packets, messages, and shared knowledge moving across decentralized systems. The speckled texture within the dark feathers can be read as CRT phosphor noise, stars, or the network itself — a nod to communication across distance, communities built in the margins, and the enduring spirit of bulletin board systems. The logo's limited amber, black, and off-white palette draws from classic monochrome terminals and ANSI art, blending retro computing aesthetics with a slightly mythic, underground tone.
See CREDITS.md for contributors and third-party libraries.
- Fidonet Technical Standards Committee for protocol specifications
- Original binkd developers for reference implementation
- Bootstrap and jQuery communities for web interface components
- PHP community for excellent documentation and tools















