๐Ÿ“ Knowledge Base โ€” company main site: acp-24.com โ†’

Self-Hosted Bitrix24: Hardware Sizing Guide for 50 to 1,000 Users

Published: ยท Updated: ยท 11 min read

Choosing the right server for an on-premise Bitrix24 installation is one of the first decisions that determines long-term stability. This guide gives concrete CPU, RAM, and storage figures for four deployment sizes โ€” 50, 100, 500, and 1,000+ users โ€” drawn from real production audits and migration projects.

Why Hardware Sizing Matters for On-Premise Bitrix24

Bitrix24's self-hosted edition is not a lightweight app. It runs a full-stack web environment โ€” nginx as a reverse proxy, Apache handling dynamic requests, PHP-FPM, and a Percona/MySQL database. Add push-and-pull for real-time chat, background cron jobs, and optional integrations (telephony, ERP, e-signature), and the resource footprint grows quickly.

Under-provisioning shows up as slow page loads, failed background tasks, and database lock timeouts. Over-provisioning wastes budget. The reference profiles below aim for the sweet spot based on production audit data from our project archive.

Key principle: Size for concurrent users, not registered users. In most organisations, 20โ€“30 % of registered users are active simultaneously during peak hours.


Software Stack: What Bitrix24 Actually Needs

Before looking at hardware numbers, understand what the server runs. The recommended web environment for the current Bitrix24 on-premise release is:

Component Minimum supported Recommended
Operating System CentOS Stream 8 / Ubuntu 22.04 CentOS Stream 9 / Ubuntu 24.04
Reverse proxy nginx 1.20+ nginx 1.26+
Web server Apache 2.4.40+ Apache 2.4.62+
PHP interpreter PHP 8.1 PHP 8.2+
Database Percona Server 5.7 / MySQL 5.7 Percona Server 8.0+

From our audit of a mid-size production portal (โ‰ˆ100 active users), the server ran on an outdated web environment โ€” nginx 1.20, Apache 2.4.6, PHP 8.1, and Percona 5.7 โ€” which the platform's own health check flagged as problematic. Upgrading the full stack, including the OS, resolved several stability warnings and closed security gaps.

Deployment tip: Use the official Bitrix24 virtual machine image for initial setup. It ships with a pre-tuned web environment and cuts provisioning time significantly. If you host on a customer-provided server, request root SSH access and both ports 80 and 443 before the deployment session.


Hardware Profiles by User Count

The table below represents the minimum production-grade specifications. "Test/demo" environments can be smaller, but should never be used as a migration target for real user data.

Tier Registered users Est. concurrent CPU cores RAM SSD storage Notes
Small up to 50 10โ€“15 4 cores 8 GB 100 GB Single-server, all components co-located
Medium up to 100 20โ€“30 8 cores 16 GB 200 GB Single-server or split DB
Large up to 500 80โ€“150 16 cores 48โ€“64 GB 500 GB + object storage Separate DB server recommended
Enterprise 1,000+ 250โ€“400 32+ cores 96โ€“128 GB 1 TB+ with tiered storage Multi-server cluster, dedicated push server

From a real production audit of a portal used by approximately 100 concurrent users: the server ran 16 CPU cores and 47 GB RAM, and the system health check rated both as excellent. The database at that time was ~28 GB โ€” described as normal for a mid-size portal. These real-world numbers validate the "Large" tier in the table above and confirm that a 100-user box can be run on a single well-provisioned server if the database size stays below ~50 GB.


Database Sizing and Tuning

The database is the most common performance bottleneck in self-hosted Bitrix24 deployments. Key InnoDB parameters need manual adjustment โ€” the defaults shipped with most OS packages are not suited for a busy portal.

Settings to tune at deployment:

  • innodb_log_file_size โ€” increase from the default 64 MB to at least 512 MB for medium portals, 1โ€“2 GB for large ones. A 64 MB value is flagged as undersized by the platform's own health check.
  • query_cache โ€” disable. Query cache causes contention under concurrent writes and has been removed in MySQL 8.0 entirely. Leaving it enabled on MySQL 5.7/Percona 5.7 degrades performance.
  • local_infile โ€” disable for security. This option allows file imports from the MySQL client and is a known attack surface.
  • join_buffer_size / sort_buffer_size โ€” 32 MB each is the common production value; tune upwards only if slow query logs show sort/join spills.

Database growth estimates:

User tier DB size at go-live DB size after 2 years (typical)
50 users 2โ€“5 GB 8โ€“15 GB
100 users 5โ€“15 GB 20โ€“40 GB
500 users 15โ€“50 GB 80โ€“150 GB
1,000+ users 50โ€“100 GB 200 GB+

Plan storage with a 3ร— headroom over current DB size, and implement daily backups to a separate volume or remote location. Backup jobs should cover both the database dump and the /home/bitrix/www/ file tree.


Network and Storage Architecture

The diagram below shows the component layout for a medium-to-large self-hosted Bitrix24 deployment. For small (โ‰ค50 users) installations all components sit on a single server; for 500+ users, separating the database and file storage reduces I/O contention on the application server.

The diagram illustrates how users reach Bitrix24 through nginx (reverse proxy), which routes static assets from disk and forwards dynamic requests to Apache/PHP-FPM. The database runs on Percona Server, optionally on a dedicated host, while backups and large file storage go to an external volume or object storage bucket.

flowchart LR
    USERS[Users / Browsers] --> NGINX[nginx\nReverse Proxy]
    NGINX --> STATIC[Static Files\n/home/bitrix/www]
    NGINX --> APACHE[Apache + PHP-FPM\nDynamic Requests]
    APACHE --> DB[(Percona Server\nMySQL)]
    APACHE --> PUSH[Push & Pull Server\nReal-time Chat]
    DB --> BACKUP[Backup Storage\nRemote / S3]
    APACHE --> FILES[File Storage\nDisk / Object Store]

Disk I/O notes: - Use SSD or NVMe for the database data directory. Spinning disks cause severe latency under concurrent write loads. - Separate the database data directory (/var/lib/mysql) onto its own volume to avoid contention with application logs and uploaded files. - For portals with heavy file sharing, consider object-compatible storage (e.g., MinIO or a cloud bucket) mounted as the Bitrix24 disk module backend.

Networking: - The portal needs outbound SMTP access for system notifications. Configure a dedicated transactional mail account (SMTP, port 587, TLS) โ€” do not rely on the OS sendmail binary. - Push-and-pull for real-time chat requires a persistent WebSocket connection; ensure your firewall and load balancer pass WebSocket upgrade headers. - For remote-access deployments, restrict the admin panel (/bitrix/admin/) to a specific IP allowlist at the nginx level.


SSL, Security Hardening, and Post-Install Checklist

Hardware sizing is only part of the story. A production on-premise Bitrix24 installation also needs a security baseline before it goes live. The following checklist is drawn from security audit findings on live portals:

Critical (do before go-live): - [ ] Issue and configure an SSL certificate (Let's Encrypt works well for internet-facing portals); enable HTTP โ†’ HTTPS redirect. - [ ] Add an HSTS header at the nginx/Apache level. - [ ] Disable PHP error display (display_errors, display_startup_errors โ†’ Off in php.ini). Leaving these on exposes file paths, SQL queries, and stack traces to end users. - [ ] Disable local_infile in MySQL/Percona. - [ ] Enable two-factor authentication (2FA) for all admin accounts via Bitrix24's built-in OTP module. - [ ] Restrict admin panel access to a defined IP range.

High priority (within first week): - [ ] Run the platform's built-in database structure check; fix all auto-correctable errors and manually review remaining ones. - [ ] Configure firewall rules; maintain a blocklist of IPs with repeated brute-force or injection attempts. - [ ] Enable frame-busting protection in Bitrix24 security settings. - [ ] Enable the built-in web antivirus (note: activating it adds a small CPU overhead โ€” test under load before enabling in production).

Ongoing: - [ ] Keep the web environment (OS, nginx, Apache, PHP, Percona) up to date. Outdated stacks โ€” even minor version lags โ€” are the single most common finding in our portal audits. - [ ] After any update, run the platform's "System Check" tool to catch version mismatches and configuration drift. - [ ] Document and audit any core file modifications. In one production portal we audited, 23 out of 109,188 files had been modified (0.02% modification rate). That level is manageable, but undocumented changes block safe updates.

For a deeper look at what the on-premise edition offers compared to cloud, see Self-Hosted CRM: Why Choose Bitrix24 On-Premise for Data Sovereignty.


Cloud-to-On-Premise Migration: Server Readiness

Many deployments begin as cloud portals and later migrate to self-hosted โ€” either for data sovereignty, cost control at scale, or compliance requirements. Before migration starts, the target server must satisfy all hardware specs for the expected user tier, and the following must be ready:

  1. SSH root access for the implementation partner.
  2. Open ports 80 and 443 (HTTP/HTTPS) accessible from the internet or internal network as required.
  3. DNS record pointing the subdomain (e.g., crm.yourdomain.com) to the server's public IP โ€” this needs to be done before SSL issuance.
  4. SMTP credentials for system notification emails (invitations, password resets, task alerts).
  5. Backup volume separate from the main OS disk.

The deployment work itself โ€” environment provisioning, license key registration, push-and-pull setup, SSL, test user creation, module cleanup, and backup configuration โ€” typically takes around 7 hours of engineer time on a prepared server.

If you are planning to move from a cloud CRM to a self-hosted Bitrix24, the data architecture considerations in our HubSpot to Bitrix24 migration guide apply to the data-mapping phase regardless of the source platform.


Estimating Total Cost of Ownership

Hardware is only one line in the TCO calculation. For reference, a self-hosted Bitrix24 deployment in the 50-user tier involves:

  • License โ€” the on-premise Corporate Portal licence for 50 users is a one-time purchase with annual renewal at approximately 25โ€“30% of the original licence fee. Exact pricing in USD/AED depends on region and your reseller agreement.
  • Server โ€” a cloud VPS meeting the "Small" tier specs above costs roughly $30โ€“80/month depending on provider and region, or a one-time capex for bare-metal hardware.
  • Implementation โ€” setup, configuration, and user onboarding typically runs 4โ€“7 weeks for a 50โ€“100 user deployment. See Bitrix24 Implementation Cost & Timeline: Real Data from 1,300+ Projects for a full breakdown.
  • Annual maintenance โ€” OS patching, module updates, and periodic security audits. Budget for at least one audit cycle per year; findings in production portals consistently show that unpatched environments accumulate high-priority risks within 18โ€“24 months.

Before committing to on-premise, it is worth reviewing the Bitrix24 vs HubSpot comparison if you are evaluating cloud alternatives alongside self-hosted options.


Updating a Live On-Premise Installation

Module and core updates on a production self-hosted portal require a structured process โ€” pushing updates directly to a live server with active users is the most common cause of post-update incidents. The safe update workflow:

  1. Take a full backup: database dump + all files + configuration files.
  2. Spin up a test server and restore the backup there.
  3. Move any custom code from /bitrix/php_interface/ to /local/ (the correct location for customisations that survive updates).
  4. Apply the update on the test server; verify all critical functionality: CRM entities, tasks, business processes, third-party integrations (telephony, ERP).
  5. Only after successful test validation, apply the same update to production.
  6. Run the platform health check immediately after the production update.

This process adds 1โ€“2 days to the update cycle but prevents the far more expensive recovery from a botched live update.

For teams running AI-powered call analysis or other compute-intensive add-ons, test those workloads specifically on the staging server during step 4 โ€” they are disproportionately sensitive to PHP version changes.

Frequently Asked Questions

What are the minimum server specs for a 50-user self-hosted Bitrix24?

A 4-core CPU, 8 GB RAM, and 100 GB SSD is the practical minimum for a 50-user production portal. For comfortable headroom โ€” especially if you use video calls, telephony integration, or heavy automation โ€” go to 8 cores and 16 GB RAM from the start.

Can Bitrix24 on-premise run on a single server, or does it need a cluster?

For up to around 100 concurrent users a single well-provisioned server is sufficient. Beyond 150โ€“200 concurrent users, separating the database onto a dedicated host significantly reduces I/O contention. A full multi-server cluster is typically necessary only at the 500โ€“1,000+ user scale.

How large does the Bitrix24 database grow over time?

A 100-user portal typically starts at 5โ€“15 GB and grows to 20โ€“40 GB over two years, depending on CRM activity, chat volume, and file storage. In a real production audit of a mid-size portal we reviewed, the database was approximately 28 GB โ€” rated as normal for that tier.

Which operating system should I use for a new Bitrix24 on-premise deployment?

Use CentOS Stream 9 or Ubuntu 22.04/24.04 LTS. CentOS 7 reached end-of-life and is flagged as a critical vulnerability by Bitrix24's own system check. The simplest path is to deploy from the official Bitrix24 virtual machine image, which ships with a pre-configured and supported web environment.

How long does initial server deployment take?

On a prepared server with root SSH access, ports 80/443 open, and DNS already configured, the core deployment work โ€” environment setup, licence registration, push-and-pull, SSL, backups โ€” typically takes around 7 engineer hours.

Do I need to do anything special before updating Bitrix24 modules on a live server?

Yes. Always take a full backup (database + files + configs), restore it to a staging server, and test the update there first. Move any custom code to the /local/ directory before updating, as files in /bitrix/ are overwritten. Only apply to production after the staging test passes.

Based on real practice

This article is based on 9 internal documents from the practice of ACP Group โ€” work plans, specs, questionnaires and Bitrix24 implementation cases.

Need help implementing Bitrix24?

ACP Group โ€” Gold Partner of Bitrix24. 7+ years, 1300+ projects.
Call us +971 55 780 1481 or visit our main site.

Go to acp-24.com โ†’