User Guide
SysopHQ BBS Documentation
Everything you need to know — whether you're a new user connecting for the first time or a sysop managing your own BBS instance. Use the sidebar to jump to any section.
What is SysopHQ BBS?
A BBS (Bulletin Board System) is an online community you connect to via SSH — a secure terminal protocol built into every modern operating system. Think of it as a private, text-based internet from the early days of online culture, rebuilt on modern infrastructure.
SysopHQ BBS gives you message boards, private mail, live chat, classic door games, a file library, and more — all accessible from any terminal. No web browser required.
Connecting to the BBS
SysopHQ BBS runs over SSH on port 2222. No special software is needed — SSH is built into Windows 10+, macOS, and every Linux distribution.
Quick Connect
Step by Step
- Open your terminal application. Windows: search for "Terminal" or "PowerShell". Mac: open "Terminal" from Applications → Utilities. Linux: any terminal emulator.
- Type the connect command and press Enter.
Replace
guestwith your own handle once you have an account. - The BBS welcome screen appears — choose L to login or N to register.
alias bbs='ssh -p 2222 YourHandle@sysophq.io' to your ~/.bashrc or
~/.zshrc so you can connect by just typing bbs.
Terminal Size
The BBS auto-detects your terminal width and height. For the best experience use a terminal window at least 80 columns × 24 rows. Most UIs are designed for 80×24 but will adapt to wider terminals automatically.
Registration
Creating an account takes about 60 seconds. Your handle (screen name) is permanent and visible to other users — choose carefully.
Steps
- At the welcome screen press N for New User.
- Choose your handle. 2–32 characters. Letters, numbers, hyphens and underscores only. This is what everyone sees.
- Set a password. Minimum 8 characters. Your password is stored securely — even the sysop cannot read it. Choose something strong.
- Confirm your password. Type it again exactly.
- Personal info — real name, location, and email address. Real name and location are optional. An email address is required so the sysop can reach you if needed. It is never shown publicly.
- Your account is created. You'll receive a welcome message in your Private Mail inbox.
Logging In
At the welcome screen press L for Login.
| Field | Notes |
|---|---|
| Handle | Your screen name, case-insensitive. |
| Password | Hidden as you type. Too many failed attempts will close the connection. |
After a successful login you'll see the main menu. If you have unread private mail a notice appears at the top of the screen.
Message Boards [1] from main menu
Message boards are threaded discussion areas organized by topic. Each board has a name and description set by the sysop.
Browsing Boards
Select 1 from the main menu to see the board list. Each board shows the name, number of threads, and last post date. Enter a board number to open it.
Reading Threads
Inside a board you'll see a list of threads with the subject, author, reply count, and date. Enter a thread number to read it. Posts are displayed oldest-first.
Posting a Reply
- Open a thread you want to reply to.
- Press R to reply.
- Type your message. Press Enter on a blank line to finish, or follow the on-screen prompt.
- Confirm to post.
Starting a New Thread
- From the board listing press N for New Thread.
- Enter a subject line.
- Type your post body and confirm.
File Library [2] from main menu
A shared file library where users can browse, download, and upload files. All uploads go through a sysop approval queue before becoming public.
Browsing & Downloading
Files are listed with name, size, uploader, and a short description. Enter a file number to see details. Press D to download.
Uploading a File
- Press U from the file library menu.
- Enter a filename and description.
- Follow the transfer prompt to send the file.
- Your upload enters the approval queue. The sysop will review and approve it before it appears publicly.
Private Mail [3] from main menu
Send and receive private messages with any registered user on the BBS. Unread mail is flagged with a notification on the main menu every time you log in.
Reading Mail
Select 3 from the main menu to open your inbox. Messages are listed by date with sender and subject. Enter a message number to read it.
Sending a Message
- Press C to compose a new message.
- Enter the recipient's exact handle (case-insensitive).
- Enter a subject.
- Type your message body and confirm to send.
Replying
While reading a message press R to reply. The recipient and subject are pre-filled.
Door Games [4] from main menu
A classic-style RPG built directly into the BBS — no downloads or extra software needed.
Dungeons of Doom
A multi-floor RPG dungeon crawler with persistent character saves and full equipment progression. Your character, gear, gold, and dungeon progress are saved to your account — pick up exactly where you left off.
Town Menu Controls
| Key | Action |
|---|---|
| E | Enter the dungeon and begin exploring rooms |
| S | Open the Shop — buy weapons, armor, gloves, boots, capes, rings, or potions |
| N | Read the Dungeon News — recent level-ups, kills, and clears from all players |
| L | View the Hall of Fame leaderboard |
| Q | Save and quit — returns you to the main menu |
Inside the Dungeon
Each floor has a series of rooms. You navigate room by room and may encounter a monster, find treasure, or move on.
| Key | Action |
|---|---|
| Enter | Advance to the next room |
| Q | Retreat to town (saves your progress) |
Combat Controls
When a monster appears, choose your action each round:
| Key | Action |
|---|---|
| A | Attack — strike the monster for full damage |
| D | Defend — brace for the hit; reduces incoming damage this round |
| R | Run — attempt to flee; not always successful |
| P | Potion — drink a healing potion to restore ~40% of your max HP (max 10 carried) |
Character Classes
Choose your class when creating a character. Each has different starting stats and a unique passive perk.
| Class | Style | Perk |
|---|---|---|
| Warrior | High HP & DEF, durable frontliner | Most fights per day (12), best survivability |
| Mage | Extreme ATK, very low HP | Highest raw damage output |
| Thief | Balanced stats, fast | Earns 50% more gold from all sources |
| Paladin | Great DEF & HP, holy guardian | Replenishes 4 free potions every day |
| Ranger | Good ATK, light build | 25% bonus EXP and most fights per day (13) |
| Berserker | Massive ATK, near-zero DEF | High attack and 50% more gold, glass cannon |
Equipment Slots
Your character has six gear slots. Each can hold one item — buy from the Shop or find gear as Treasure in dungeon rooms. Equipped items show in green; empty slots show in red in your status display.
| Slot | Shop Key | Stat | Notes |
|---|---|---|---|
| Weapon | W | ATK bonus | 20 tiers, up to +25 ATK |
| Gloves | G | ATK bonus | 10 tiers, up to +20 ATK |
| Armor | A | DEF bonus | 16 tiers, up to +20 DEF |
| Boots | O | DEF bonus | 10 tiers, up to +20 DEF |
| Ring | R | ATK + DEF | 11 tiers, dual-stat accessory |
| Cape | C | ATK + DEF | 10 tiers, dual-stat, up to +8 ATK / +10 DEF |
Shop — Change Column
Item lists in the shop include a Chg column showing how each item compares to your currently equipped piece:
| Color / Label | Meaning |
|---|---|
| +N (green) | Upgrade — this item is stronger than what you have equipped |
| -N (red) | Downgrade — weaker than your current gear |
| = (yellow) | Same stat as your current item |
| EQ (green) | This is your currently equipped item |
Treasure
Rooms may contain treasure chests with gold, potions, or equipment drops. When you find gear, you'll see its stats compared to what you're wearing and can choose to equip it on the spot. Treasure items follow floor tier — deeper floors drop stronger gear.
Floors & The Boss
There are three dungeon floors. Each floor has progressively harder monsters. The final room of Floor 3 is home to The Dungeon Lord — a powerful boss. Defeating it counts as a full dungeon clear and is recorded on the leaderboard. Clears stack, so veterans become significantly stronger versions of that boss.
Daily Fight Limit & Reset
Each character has a limited number of fights per day (varies by class — 9 to 13). When you run out, you must wait until the next day when fights and HP are fully restored. The reset timer is based on real time, not login sessions.
Death
If a monster kills you, your character survives but wakes up at the dungeon entrance with 25% of your gold lost. HP is also spent — you may need to rest or use potions before re-entering. Deaths are tracked in your stats.
Who's Online [5] from main menu
See every user currently connected to the BBS, which node they're on, what they're doing, and how long they've been active.
This is a live snapshot updated each time you view it. If no one else is online you'll see only your own session.
Account Settings [6] from main menu
Manage your personal profile and security settings.
| Setting | Description |
|---|---|
| Real Name | Your display name. Optional — leave blank for privacy. |
| Location | City, state, country, or anything you like. Optional. |
| Email Address | Used for sysop contact only. Never shown publicly. |
| Change Password | Enter your current password, then set a new one. Must meet the minimum length set by the sysop. |
Help Center [7] from main menu
Built-in help text is available from within the BBS at any time.
Press 7 from the main menu to open the help center. You can also type
/help in most areas of the BBS to get context-sensitive assistance for that section.
Teleconference [8] from main menu
Real-time live chat between every user currently connected to the BBS. All messages are visible to everyone in the conference — like a classic BBS CB channel.
How It Works
- Select 8 from the main menu to enter the teleconference.
- Type your message and press Enter to send it to all connected users.
- Messages from other users appear as they send them.
- Type
/quitor press Ctrl+C to leave the conference and return to the main menu.
Private Rooms
Users can create private chat rooms with a password. When someone invites you to a private room you'll receive a pop-up notice. Ask the person who invited you for the password directly — it is never included in the invitation for privacy reasons.
Last Callers [9] from main menu
A log of the most recent users who connected to the BBS, shown in reverse chronological order. Displays handle, node number, and login time.
The number of entries shown is configured by the sysop (default: 15 most recent callers).
Admin Console [A] — Sysop / Co-Sysop
The full Admin Console is accessible to Sysop and Co-Sysop accounts. It provides complete management of users, content, and BBS settings from within the terminal. Users with a custom staff role see a limited Staff Panel — see the Staff Roles & Permissions section for details.
User Management
- List users — browse all registered accounts with last-login dates
- View profile — see full details for any user including connection history
- Set Role — assign any built-in or custom role to a user from a single numbered picker
- Ban user — immediately lock an account and optionally block the IP
- Delete user — remove an account (content is soft-deleted, not destroyed)
Role Manager [R] from Admin Console
The Role Manager lets the Sysop create custom role labels with a chosen access level and individual permissions. Custom roles appear in place of the built-in role name everywhere in the BBS — menus, who's online, and user lists.
- Create role — choose a display name, an access level, an optional description, and which permissions to grant
- Edit permissions — update what an existing role can do without deleting and recreating it; changes apply immediately to all online users with that role
- Delete role — removes the role; users assigned to it revert to standard member access
Individual permissions available on any custom role:
| Flag | What it grants |
|---|---|
| Moderate Boards | Edit and delete posts on any message board |
| Approve File Uploads | Access to the file approval queue — approve or reject pending uploads without full file management |
| Kick Connected Users | Disconnect active sessions from the Who's Online screen; Sysop accounts cannot be kicked |
| Broadcast Messages | Send a message to every connected node simultaneously |
| View Audit Log | Read the system audit log of logins, admin actions, and security events |
| View Server Statistics | View live server stats — online count, total users, posts, threads, banned count |
| Manage Message Boards | Create, edit, and delete boards — full board management without other admin access |
| Manage File Areas | Create, edit, and delete file areas — full file area management without other admin access |
Content Moderation
- Edit / remove posts — moderate any message board post or thread
- File approval — review and approve or reject pending file uploads
Audit Log
Every admin action, login, and security event is recorded in the audit log with timestamp and session details. Access it from the Admin Console to review system activity.
Broadcast & Moderation Tools
- Broadcast message — push a live message to every connected session at once
- Kick user — immediately disconnect a specific session from the Who's Online screen; Sysop accounts are protected and cannot be kicked by anyone
Module Settings & Access Levels [2] from Admin Console
Each BBS module has two independent controls: an on/off toggle and a minimum access level. The access level determines which role a user must hold before the module appears on their main menu and allows entry.
| Access Level | Who can enter |
|---|---|
| guest | Anyone, including unregistered visitors |
| user | Registered members only |
| co_sysop | Staff and Sysop only |
Locked modules appear greyed out on the main menu and are fully restricted regardless of how a user navigates. Changes take effect immediately for all connected users — no restart required.
user unless you have a specific reason.
BBS Settings
Common settings can be changed live from the Admin Console without restarting the server. Changes take effect immediately for all new connections.
Staff Roles & Permissions
Custom roles can be given individual permissions that unlock specific tools without granting full Sysop or Co-Sysop access. A user holding a custom staff role sees a Staff Panel instead of the full Admin Console — a limited menu showing only the tools their role permits.
How the Staff Panel Works
When a user with a custom permission role presses A on the main menu they reach the Staff Panel — a separate, restricted console showing only the tools their role permits. Full admin tools — user management, banning, deleting accounts, role manager, and BBS settings — remain Sysop and Co-Sysop only regardless of what a custom role grants.
Assigning a Staff Role
- In the Admin Console open the Role Manager and create or edit a custom role.
- Enable the permissions you want that role to have.
- From User Management open the target user and select [L] Set Role.
- Choose the custom role from the list. The user's display label and permissions update immediately.
Viewing Effective Permissions
Sysops, Co-Sysops, and custom staff role holders can check their own permissions via [V] View My Permissions in Account Settings. Sysops can also check any user's permissions via [P] View Permissions in the manage-user screen. Both views show each permission and whether it is currently granted for that role.
Configuration File Reference
All BBS settings live in the configuration file provided with your installation. Most changes take effect on the next connection — no restart required for display settings. Server and database settings require a restart.
BBS Settings
| Key | Default | Description |
|---|---|---|
| name | "SysopHQ BBS!" | BBS name shown on the welcome screen and main menu |
| sysop | your handle | Sysop's handle — also the account that receives new-user welcome replies |
| location | "The Internet" | Location shown on the welcome screen |
| max_nodes | Vaires | Maximum simultaneous connections allowed. This is decided by your node purchase. |
| last_callers_count | 15(Default) | How many recent logins to show in Last Callers |
SSH Settings
| Key | Default | Description |
|---|---|---|
| host | configured | Network interface to listen on. Managed by SysopHQ for hosted plans. |
| port | 2222 | SSH port your users connect to. |
| host_key | configured | Path to the SSH host key. Auto-generated on first run, managed automatically on hosted plans. |
Database Settings
| Key | Default | Description |
|---|---|---|
| driver | configured | Database backend — set automatically for your plan. Contact support to change. |
| db_path | configured | Path to the local database file. Set automatically for your plan. |
| db_url | — | Full connection URL for cloud database plans. Provided in your welcome email. |
Security Settings
Security thresholds are managed by SysopHQ and are not published. Sysop Pro subscribers may request custom threshold adjustments via support.
Registration Settings
| Key | Default | Description |
|---|---|---|
| open | configured | Controls whether public registration is enabled or invite-only mode is active |
| tagline | "A Modern Internet BBS" | Tagline shown on the welcome screen |
| welcome_message | "Welcome!" | Message shown to new users and sent in welcome mail |
| motd | "" | Message of the Day — shown to users on login when set |
| motd_urgent | false | If true, MOTD shows on every login. If false, only until the user has seen it. |
| goodbye_message | "" | Message shown when a user disconnects |
ANSI Art Theming
You can replace the default BBS screens with custom ANSI art by dropping files
into the ansi/ folder. No code changes or restarts required.
| Filename | Replaces |
|---|---|
| ansi/main_menu.ans | The header block shown at the top of the main menu |
ANSI art files should use standard CP437 encoding with ANSI escape sequences. Tools like PabloDraw, Moebius, or REXPaint can create compatible files.
.ans file to revert to default.
Security Settings
SysopHQ BBS is designed with security concerns from the beginning. Here's what's built in and what sysops can tune.
Password Security
All passwords are protected using an industry-standard hashing algorithm — the current gold standard for password security. Even if the database were ever compromised, passwords cannot be recovered in plaintext.
Rate Limiting
Multiple layers of automated throttling protect against repeated failed logins and connection floods. Thresholds are adjustable by the Sysop from the admin settings.
Session Timeout
Unauthenticated connections that linger without completing login are automatically disconnected. Idle authenticated sessions are also timed out after inactivity. Both durations are configurable.
Audit Logging
Every login (successful or failed), admin action, ban, and security event is written to the audit log with a timestamp and relevant session details. Accessible from the Admin Console.
SSH Client Setup
Any SSH client will work. Here are the recommended options by platform.
Windows
- Windows Terminal (recommended) — built-in SSH, excellent ANSI color support. Search "Terminal" in the Start menu.
- PowerShell — type
sshdirectly. Works fine, slightly limited color support. - MobaXterm — Not compatible. MobaXterm's terminal handling is incompatible with SysopHQ BBS and will result in display issues. Use Windows Terminal or PowerShell instead.
- PuTTY — classic Windows SSH client. Works but requires UTF-8 setup for best display.
macOS
- Terminal.app — built-in. Works well out of the box.
- iTerm2 (recommended) — best color support and font rendering on Mac.
Linux
- Any terminal emulator with
sshinstalled. GNOME Terminal, Konsole, Alacritty, Kitty all work great.
Tips & Tricks
Navigation
- At any prompt, pressing Enter on a blank line usually goes back or cancels.
- Type
/helpin most areas for context-sensitive help.
Staying Connected
- Add
ServerAliveInterval 60to your SSH config (~/.ssh/config) to prevent idle disconnects from your router or ISP. - Use tmux or screen locally if you want to detach and reconnect without losing your session place.
Getting the Most Out of the BBS
- Check Private Mail on every login — the unread badge only appears if you have new messages.
- Introduce yourself on the Message Boards when you first join.
- Keep an eye on the Last Callers list to see who's been active recently.
- Try the Teleconference during peak hours when more users are likely to be online simultaneously.