# Requirements

> What the host machine needs before you install the Community Edition.

> For the complete documentation index, see [llms.txt](https://helpdesk.orangescrum.com/llms.txt).

Source: https://helpdesk.orangescrum.com/guide/community/get-started/requirements

---
There are two ways to run the Community Edition, with different prerequisites.

- [Docker (recommended)](https://helpdesk.orangescrum.com/guide/community/install/docker): Everything is in the image. You need Docker and nothing else.

- [Manual install](https://helpdesk.orangescrum.com/guide/community/install/manual): You provide PHP, PostgreSQL and a web server yourself.

## Docker

| Requirement | Minimum |
| --- | --- |
| Docker Engine | 20.10+ |
| Docker Compose | v2 (the `docker compose` subcommand) |
| Free disk | ~2 GB for images plus your attachments |
| Free port | `8091` by default |

Check with:

```bash
docker --version
docker compose version
```

## Manual install

| Requirement | Minimum |
| --- | --- |
| PHP | 8.2 or higher |
| PostgreSQL | 12 or higher (16 recommended) |
| Web server | Apache or Nginx |
| Composer | Latest |

### PHP extensions

All of these must be present:

`pdo_pgsql` · `mbstring` · `intl` · `openssl` · `tokenizer` · `json` · `xml` ·
`ctype` · `curl` · `gd` · `zip`

Verify:

```bash
php -v
php -m | grep -E "pdo_pgsql|mbstring|intl|openssl|tokenizer|json|xml|ctype|curl|gd|zip"
```

> **pdo_pgsql is the one people miss**
>
> Orangescrum runs on PostgreSQL only — there is no MySQL support. A host with
> `pdo_mysql` but not `pdo_pgsql` will fail at the database step of the
> installer.

## Sizing

For a small team, modest hardware is fine:

| Users | vCPU | RAM | Disk |
| --- | --- | --- | --- |
| Up to 25 | 2 | 4 GB | 20 GB + attachments |
| Up to 100 | 4 | 8 GB | 50 GB + attachments |

Attachment storage is the variable that grows. Plan disk around how much your
team uploads, and keep it on a volume you can extend.

## Network

- **Outbound SMTP** if you want email notifications. Without a mail server
  configured, invitations and notifications will not be delivered.
- **A hostname and TLS certificate** for anything beyond local testing. The
  default compose file serves plain HTTP on `localhost` and explicitly relaxes
  the secure-cookie setting to allow it — see
  [Configuration](https://helpdesk.orangescrum.com/guide/community/install/configuration) before exposing it.

> **Do not expose the default setup to the internet**
>
> The shipped `docker-compose.yml` uses well-known database credentials and
> disables secure cookies for plain-HTTP localhost development. Change both
> before the instance is reachable from anywhere but your machine.

## Before you start

**Pick your hostname**

    Decide the URL now. It goes into `FULL_BASE_URL` and changing it later means
    editing config and clearing caches.

**Plan your database**

    Docker gives you a PostgreSQL container. For production, consider an
    external managed database you can back up independently.

**Have SMTP details ready**

    Host, port, username, password and the from-address.

**Decide your backup story**

    See [Backup and restore](https://helpdesk.orangescrum.com/guide/community/operate/backup-and-restore) —
    worth reading before you have data to lose.
