> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.bearsampp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bearsampp Modules: Binaries, Tools, and Applications

> Bearsampp modules come in three types: binaries running as Windows services, command-line tools, and browser-based web apps like phpMyAdmin and phpPgAdmin.

Bearsampp organises everything it ships into three distinct module types: **Binaries** are services that run in the background as Windows processes (your web server, databases, and runtimes), **Tools** are command-line utilities you invoke directly in a console, and **Applications** are web interfaces you open in a browser. Every module lives in its own versioned folder, can be individually enabled or disabled, and can be switched to a different version at any time without touching the rest of your stack.

<CardGroup cols={3}>
  <Card title="Binaries" icon="server">
    Server processes registered as Windows services. Start, stop, and restart them from the tray menu.
  </Card>

  <Card title="Tools" icon="terminal">
    Command-line utilities available in any Bearsampp console session. No PATH editing required.
  </Card>

  <Card title="Applications" icon="browser">
    Web-based admin interfaces served by Apache and accessible at `http://localhost`.
  </Card>
</CardGroup>

## Binaries

Binaries (`TYPE: bins`) are the core server processes. Each binary is registered as a named Windows service and managed through the Windows Service Control Manager (SCM). You can start, stop, or restart them individually from the tray menu, or use **Start all services** / **Stop all services** to act on all of them at once.

| Module         | Purpose                                                       |
| -------------- | ------------------------------------------------------------- |
| **Apache**     | Web server — serves your PHP projects and static files        |
| **PHP**        | Server-side scripting language with PEAR and extra extensions |
| **MySQL**      | Relational database management system                         |
| **MariaDB**    | Community-developed MySQL-compatible database                 |
| **PostgreSQL** | Object-relational database management system                  |
| **Node.js**    | Server-side JavaScript runtime                                |
| **Memcached**  | Distributed in-memory object caching system                   |
| **Mailpit**    | Local SMTP server with a web UI for catching test emails      |
| **Xlight**     | Lightweight FTP server                                        |

## Tools

Tools (`TYPE: tools`) are command-line programs that don't run as persistent services. Bearsampp adds them to the environment PATH inside its own console sessions, so you can use them immediately without changing your system PATH.

| Module          | Purpose                                           |
| --------------- | ------------------------------------------------- |
| **Composer**    | Dependency manager for PHP                        |
| **Git**         | Version control system                            |
| **Ngrok**       | Secure tunnel to expose localhost to the internet |
| **Python**      | General-purpose programming language              |
| **Ruby**        | Dynamic, object-oriented programming language     |
| **Perl**        | General-purpose scripting language                |
| **PowerShell**  | Windows scripting and automation shell            |
| **Ghostscript** | PostScript and PDF interpreter                    |
| **Bruno**       | API client for testing HTTP requests              |

## Applications

Applications (`TYPE: apps`) are browser-based admin interfaces bundled as PHP web apps. They are served by Apache and accessible from the Bearsampp homepage at `http://localhost`.

| Module         | Purpose                                           |
| -------------- | ------------------------------------------------- |
| **phpMyAdmin** | Web interface for administering MySQL and MariaDB |
| **phpPgAdmin** | Web interface for administering PostgreSQL        |

## Versioned folders and version switching

Every module stores each of its versions in a dedicated subfolder named after the module ID and version number. For example, PHP 8.2.0 lives at `bin/php/php8.2.0/`. Bearsampp creates a `current` symlink inside each module's root folder that always points to the active version:

```
bin/
  php/
    php8.1.0/      ← installed version
    php8.2.0/      ← installed version
    current -> php8.2.0/   ← symlink to active version
```

To switch versions, right-click the tray icon, navigate to the module, and choose a version from the **Versions** submenu. Bearsampp updates the symlink, rewrites all affected configuration files, resets the Windows service, and restarts the service automatically.

<Note>
  You can have multiple versions of the same module installed at the same time. Only one version can be active per module, but switching takes only a few seconds.
</Note>

## Enabling and disabling modules

Each module can be enabled or disabled independently. A module is considered enabled when its versioned folder exists on disk. You can toggle a module from the tray menu under the module's submenu using **Enable / Disable**. Disabled modules do not start at launch and do not appear as active services.

<Tip>
  If you don't use PostgreSQL or Xlight, disable them to reduce startup time and free up system ports.
</Tip>
