Installing Bitrix24 On-Premise on the server

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Installing Bitrix24 On-Premise on a Server

Bitrix24 On-Premise is the boxed version for deployment on your own infrastructure. Unlike the cloud Bitrix24, you manage the server, data, and updates yourself. Installation takes 30-60 minutes with a prepared server.

Server Requirements

Minimum requirements to get started (up to 50 users):

  • CPU: 4 cores, RAM: 8 GB, disk: 40 GB SSD
  • OS: Ubuntu 20.04/22.04 LTS or CentOS 7/8 (Ubuntu is recommended)
  • PHP 8.0-8.2 (version 8.3+ is not yet stable)
  • MySQL 5.7+ or MariaDB 10.4+, PostgreSQL is not supported in Bitrix24
  • Nginx 1.18+ + PHP-FPM

For 50-200 users: 8 cores, 16 GB RAM, 100 GB SSD. If actively using video calls (Bitrix24 Video Calls) — add 4 GB more RAM.

Installation via BitrixVM or Manual

BitrixVM — ready-made virtual machine image (Vagrant box or VMware/VirtualBox). Downloaded from dev.1c-bitrix.ru. nginx, php-fpm, MySQL are already configured inside. Recommended for quick start and testing.

For production on a dedicated server — manual installation. Official installer bitrixsetup.php:

cd /var/www/html
wget https://www.1c-bitrix.ru/download/bitrix24_eshop.tar.gz
tar xzf bitrix24_eshop.tar.gz
# Then open /bitrixsetup.php in your browser

Before running the installer, configure php.ini:

memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
opcache.enable = 1
opcache.memory_consumption = 128

MySQL Configuration for Bitrix24

Create database and user:

CREATE DATABASE bitrix24 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bitrix'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON bitrix24.* TO 'bitrix'@'localhost';
FLUSH PRIVILEGES;

In my.cnf add settings for Bitrix24 load:

innodb_buffer_pool_size = 2G  # 50-70% of RAM for a dedicated server
innodb_log_file_size = 256M
query_cache_size = 0          # query cache is outdated in MySQL 8, disable it
max_connections = 200

nginx Configuration

Bitrix24 requires specific nginx configuration — standard Laravel/WordPress config doesn't work. Official config is available in the BitrixVM repository. Key blocks:

location / {
    try_files $uri $uri/ @bitrix;
}

location @bitrix {
    fastcgi_pass php-fpm;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}

location ~* ^/bitrix/admin {
    # Close from external access by IP or via basic auth
    allow 10.0.0.0/8;
    deny all;
}

Initial Setup After Installation

After going through the installation wizard (/bitrix/wizard/) be sure to:

  1. Set up cron — in /bitrix/cron_events.php and for Push server. Without cron, agents don't work, notifications don't arrive
  2. Configure email — in "Settings" → "Mail", otherwise user invitation emails won't be sent
  3. SSL — Bitrix24 works via HTTPS. For a corporate network you can use a self-signed certificate, for internet access — Let's Encrypt
  4. Pusher/push-server — for real-time chat to work. Local push server is raised as a separate daemon, configuration in push-server/nginx/nginx.conf

File Permissions

Typical post-installation error: files belong to root, but php-fpm runs as www-data. Fix it:

chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chmod -R 775 /var/www/html/upload /var/www/html/bitrix/cache