- Home
- Workspace
- Installation
- Community
- Docker
- Installing all ONLYOFFICE Workspace Community components integrated
Installing all ONLYOFFICE Workspace Community components integrated
Introduction
The easiest way to install ONLYOFFICE Workspace is to use our Docker script. If you prefer to have full control over the installation process, you can install all the components manually.
ONLYOFFICE Workspace includes the following components: ONLYOFFICE Community Server, ONLYOFFICE Control Panel, ONLYOFFICE Docs and ONLYOFFICE Mail. To install all of them and integrate with each other, follow the steps below.
System requirements
- CPUat least 4-core (6-core recommended)
- RAMat least 8 GB (12 GB recommended)
- HDDat least 40 GB of free space
- SWAPat least 4 GB, but depends on the host OS. More is better
- OSamd64 Linux distribution with kernel version 3.10 or later
- Additional requirements
- Docker: any version supported by Docker team
Step 1. Installing prerequisites
You need the latest Docker version installed. If you do not have it, please see the Installation section on Docker website to learn how to get it.
/etc/default/docker
file and change the IP address in the following line to the IP address of a DNS server in your local network:
docker_OPTS="--dns 8.8.8.8"
For the RPM based operating systems like CentOS:
- Create the
/etc/docker/daemon.json
configuration file with the following contents:{ "dns" : [ "8.8.8.8" ] }
- Restart the Docker service:
sudo systemctl restart docker.service
Before you start the installation, you need to create the following folders:
- For MySQL server
sudo mkdir -p "/app/onlyoffice/mysql/conf.d"; sudo mkdir -p "/app/onlyoffice/mysql/data"; sudo mkdir -p "/app/onlyoffice/mysql/initdb";
- For ONLYOFFICE Community Server data and logs
sudo mkdir -p "/app/onlyoffice/CommunityServer/data"; sudo mkdir -p "/app/onlyoffice/CommunityServer/logs"; sudo mkdir -p "/app/onlyoffice/CommunityServer/letsencrypt";
- For ONLYOFFICE Docs data and logs
sudo mkdir -p "/app/onlyoffice/DocumentServer/data"; sudo mkdir -p "/app/onlyoffice/DocumentServer/logs";
- And for ONLYOFFICE Mail data and logs
sudo mkdir -p "/app/onlyoffice/MailServer/data/certs"; sudo mkdir -p "/app/onlyoffice/MailServer/logs";
- For ONLYOFFICE Control Panel data and logs
sudo mkdir -p "/app/onlyoffice/ControlPanel/data"; sudo mkdir -p "/app/onlyoffice/ControlPanel/logs";
Then create the onlyoffice
network:
sudo docker network create --driver bridge onlyoffice
Step 2. Installing MySQL
After that, you need to create MySQL server Docker container. Create the configuration file:
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
Create the SQL script which will generate the users and issue the rights to them. The onlyoffice_user
is required for ONLYOFFICE Community Server, and the mail_admin
is required for ONLYOFFICE Mail, in case it is going to be installed:
echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
%
). If you want to limit the access, you can specify hosts which will have access to SQL server.Now you can create MySQL container, setting MySQL version to 8.0.29:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:8.0.29
Step 3. Installing ONLYOFFICE Docs
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/fonts:/usr/share/fonts/truetype/custom \
-v /app/onlyoffice/DocumentServer/forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten \
onlyoffice/documentserver
To learn more, refer to the ONLYOFFICE Docs documentation.
Step 4. Installing ONLYOFFICE Mail
sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 \
-e MYSQL_SERVER=onlyoffice-mysql-server \
-e MYSQL_SERVER_PORT=3306 \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-h yourdomain.com \
onlyoffice/mailserver
In the command above, the
"yourdomain.com"
parameter must be understood as a service domain for ONLYOFFICE Mail. It is usually specified in the MX record of the domain that will be used for maintaining correspondence. As a rule, the "yourdomain.com"
looks like mx1.onlyoffice.com
The additional parameters for mail server are available here.
Step 5. Installing ONLYOFFICE Control Panel
Use this command to install ONLYOFFICE Control Panel:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-control-panel \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /app/onlyoffice/CommunityServer/data:/app/onlyoffice/CommunityServer/data \
-v /app/onlyoffice/ControlPanel/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/ControlPanel/logs:/var/log/onlyoffice onlyoffice/controlpanel
Step 6. Installing ONLYOFFICE Community Server
Finally, ONLYOFFICE Community Server can be installed:
sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 --cgroupns=host \
-e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice \
-e MYSQL_SERVER_HOST=onlyoffice-mysql-server \
-e MYSQL_SERVER_USER=onlyoffice_user \
-e MYSQL_SERVER_PASS=onlyoffice_pass \
-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
-e MAIL_SERVER_API_HOST=${MAIL_SERVER_IP} \
-e MAIL_SERVER_DB_HOST=onlyoffice-mysql-server \
-e MAIL_SERVER_DB_NAME=onlyoffice_mailserver \
-e MAIL_SERVER_DB_PORT=3306 \
-e MAIL_SERVER_DB_USER=root \
-e MAIL_SERVER_DB_PASS=my-secret-pw \
-e CONTROL_PANEL_PORT_80_TCP=80 \
-e CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel \
-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
onlyoffice/communityserver
Where ${MAIL_SERVER_IP}
is the IP address for ONLYOFFICE Mail. You can easily get it using the command:
MAIL_SERVER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server)
After the successful installation, the solution will become available at the http://localhost/ address.