For AI agents: a documentation index is available at /llms.txt. A markdown version of this page is available at /guide/self-hosted/get-started/prerequisites.md.
Prerequisites
Hardware, operating system, database and network requirements for a production self-hosted deployment.
Sizing below is for a production deployment supporting 100 or more concurrent users. Smaller teams can scale down; larger or unusual workloads should be sized with Orangescrum directly.
These are starting points, not hard limits
The figures come from typical processing and operational requirements. For tailored sizing, contact sales@orangescrum.com.
#Servers
A production install is three roles. They can be separate machines or co-located on fewer, larger ones — but the database should not share a disk with attachment storage.
#Application server
| Specification | Requirement |
|---|---|
| Instances | 1 |
| Load balancer | 1 — required for high availability |
| CPU | 8 cores minimum |
| RAM | 32 GB or more |
| App install directory | ~100 GB |
| File attachments | 1 TB or more |
| Application logs | 1 GB minimum |
| Total disk | 500 GB or more |
#Database server
| Specification | Requirement |
|---|---|
| Instances | 1 |
| CPU | 8 cores minimum |
| RAM | 32 GB or more |
| Total disk | 1 TB or more |
#Auxiliary server — Advanced Dashboard & Wiki
| Specification | Requirement |
|---|---|
| Instances | 1 |
| CPU | 8 cores minimum |
| RAM | 32 GB or more |
| Total disk | 500 GB or more |
Attachment storage grows without bound
A NAS can be mounted to extend attachment capacity beyond the initial disk allocation. Plan for this before the disk fills rather than after — it is the volume that fills first on every long-running install.
#Operating system
| Operating system | Version | Status |
|---|---|---|
| Red Hat Enterprise Linux | 9.6 | Fully supported |
| CentOS Stream | 9 | Fully supported |
| Ubuntu LTS | 22.04 | Fully supported |
#Database
PostgreSQL is the only supported database — there is no MySQL option.
| Component | Version | Notes |
|---|---|---|
| PostgreSQL Server | 16.10 or above | Latest stable |
| EDB Postgres Advanced Server (EPAS) or Community Edition | 16.10 or above | Either is supported |
| pgAdmin | 8.x | Administration and monitoring |
| PostGIS extension | 3.4 | Only if you need geospatial data |
psql CLI client | 16.x | Bundled with the server |
libpq | 16.x | Client connection library |
pg_dump / pg_restore | 16.x | Backup and restore |
| cURL | Latest stable | Extension installs and integrations |
Version guidance differs by deployment model
The current prerequisites specify PostgreSQL 16.10+. Older Enterprise documentation states a floor of PostgreSQL 12 for traditional installs. Deploy against 16.x unless Orangescrum support tells you otherwise for your licence and version — see Deployment options.
#Application runtime
Required for a traditional (non-container) install. The Docker deployment bundles all of this in the image.
| Component | Requirement |
|---|---|
| PHP | 8.2 or higher |
| PHP extensions | pdo_pgsql, mbstring, intl, openssl, tokenizer, json, xml, ctype, curl, gd, zip |
| Web server | Apache or Nginx |
| Composer | Latest |
Verify before you start:
php -v
php -m | grep -E "pdo_pgsql|mbstring|intl|openssl|tokenizer|json|xml|ctype|curl|gd|zip"
psql --version
composer --version
For the container deployment you need Docker instead:
| Component | Minimum |
|---|---|
| Docker Engine | 24.x |
| Docker Compose plugin | 2.x |
docker --version
docker compose version
#Network and connectivity
| Requirement | Detail |
|---|---|
| Internet access | Required during initial setup to download packages and images |
| Domain name | A valid domain pointed at the server |
| SSL certificate | TLS recommended — Let's Encrypt or a commercial certificate |
| Firewall | Open 80 (HTTP) and 443 (HTTPS); restrict 5432 (PostgreSQL) to the internal network |
| Outbound SMTP | Required for notifications and user invitations |
Never expose PostgreSQL publicly
Port 5432 must be reachable only from the application server. An internet-facing database is the single most damaging misconfiguration on a self-hosted install.
#Licence
A valid Orangescrum Enterprise licence email is verified during installation and the key is stored with your instance. Have it to hand before you begin — see Licence and versions.
#Before you begin
Decide the hostname
It goes into configuration and every generated email link. Changing it later means editing config and clearing caches.
Have SMTP details ready
Host, port, username, password and from-address. SMTP is set during installation.
Plan the backup target
Somewhere off this machine. See Backup.
Confirm your licence and add-ons
Which optional modules are covered determines whether you need the auxiliary server.
What actually runs once it is deployed.