What is Docker?
Docker is like a toolbox that lets you bundle 1CRM (the software) together with everything it needs (database, web server, configuration) so it can run the same way on any computer or server.
Instead of installing 1CRM piece by piece, Docker gives you containers — pre-packaged “mini-computers” inside your real computer. Each container has one job (like run the database, run the web server), and Docker makes sure they all talk to each other correctly. In simple terms, You should use Docker because it makes 1CRM (and its supporting services) easy to install, consistent across machines, secure, and simple to manage.
Before Installing 1CRM
Before jumping head first into installing 1CRM, you’ll want this checklist to complete to ensure you are set for success:
Operating System
Microsoft Windows
Apple macOS
Linux (most common in real deployments)
Docker Installed
Windows: Install Docker Desktop
macOS: Install Docker Desktop
Linux:
Install Docker + Docker Compose using your package manager, OR
Install Docker Desktop: Install Docker Desktop on Linux
3. Basic Terminal Knowledge
You should be comfortable running commands in a terminal (Command Prompt, PowerShell, or shell). If you are not, find someone that is. This can be the difference between a 10-minutes installation and permanent damage to your device.
4. Networking (depends on deployment type)
Private network:
Nothing special required beyond local access to your server’s IP address.
Public network:
A domain name pointing to your server’s IP (DNS record).
Internet access for Docker to fetch an SSL certificate automatically from Let’s Encrypt.
Public vs Private
Given the statement public vs private a lot of people will instantly gravitate towards private, this would be ill advised.
The best thing to do when considering public vs private is to think about your use-case. Are you going to want to see your customers emails inside of your CRM? Take payments? Upload data to a calendar? All of these things and more require a public connection. It is our recommendation that in all but extreme cases you install using the public method.
Note: When you choose the Public option, you are automatically generated a SSL certificate for free from Let’s Encrypt to ensure safety in transit between your client and your server.
You can download the template files from the following locations:
- Public Repository (recommended)
- Private Repository
Installing 1CRM on a Public Network
This documentation addresses how to install 1CRM on a public network, for a private network scroll to the next section.
Before you begin, below are some additional steps that you will need to take before running docker compose:
1. Prepare your server
Make sure you have a domain name (e.g.
1crm.mydomain.com
).Point your DNS A record to your server’s IP address.
Install Docker (Docker Desktop or Docker Engine + Docker Compose).
Open the following ports on your server’s firewall: (and ensure they are not being used by another active container)
80 → used by Certbot (for SSL certificate setup and renewal)
443 → used by 1CRM (secure HTTPS access)
2. Editing template files
On your server, create a directory (e.g.
mkdir ~/1crm-docker
).Copy the template files (from the repository’s
public
directory) into your new folder.- Edit the following files:
- env.txt
- Change the
ONECRM_DOCKER_DOMAIN
variable to your domain name - Set your base currency. Note: This cannot be changed after installation
- Optional – Remove the comment (#) from the line containing
ONECRM_INSTALLER_DEMO_DATA=1
. Note: This cannot be easily removed after installation.
- Change the
- db_password.txt
- Ensure this is a strong password and please note it down in a safe place
- db_root_password.txt
- Ensure this is a strong password and please note it down in a safe place.
- env.txt
You are now ready to deploy 1CRM
Starting 1CRM
Congratulations – you are most of the way through completing this task!
To start the system, you need to issue a command in the terminal window. Note that command is docker compose
. You will use that command when using Docker Desktop on any operating system. When using docker engine on Linux, you may need to use sudo docker compose
or sudo docker-compose
instead.
In the terminal window, make sure that the directory you created is the current directory, and run the following command:
docker compose up -d –pull always
It will look something like this image on the right…
Execution of this command will take some time. You will see messages saying that some container images are being downloaded. After the command completes, you need to wait about three minutes while the system is being installed. After that, you can access 1CRM with your web browser. For example if your server’s domain name is 1crm.mydomain.com
, open https://1crm.mydomain.com/ in the browser.
Updating 1CRM
After a new version is released, you can update your server. To do so, first you need to stop 1CRM usng the following command:
docker compose down
After the command is executed and terminal returns to the command prompt, execute this command:
docker compose up -d –pull always
It will download newest 1CRM version and start it.
Installing 1CRM on a Private (Offline) Network
Warning: Advanced users of 1CRM and those expecting a limited experience of the product should continue from here. Most users should look at deploying 1CRM using the Public network.
Preparing the Server
You will need a computer with a static IPv4 address that has Docker installed. Port 80 must not be blocked – that’s the port number used by 1CRM’s web server.
Alongside this documentation there are some template files to retrieve from the GitHub project. Create a directory of your choice on your server and copy the template file there.
To find your machines static IP address, use the following commands:
Linux: hostname -I or ip addr show
MacOS: ipconfig getifaddr en0
Windows: ipconfig
Make a note of your IP address in your notes app, you’ll need it shortly.
Now you need to edit the env.txt
file. Change the ONECRM_DOCKER_IP
variable to your server’s IP address (hopefully still in your notes app from 15 seconds ago). If you want demo data installed, you will also need to uncomment the line containing ONECRM_INSTALLER_DEMO_DATA=1
.
Next, edit db_root_password.txt
and db_password.txt
. The database server needs 2 passwords, one for the root
user that has unlimited access to the database, and the other for normal user that accesses the database during 1CRM operation. Edit those two files with passwords of your choice.
After saving the files, you are ready to start the system.
Starting 1CRM
To start the system, you need to issue a command in the terminal window. Note that command is docker compose
. You will use that command when using Docker Desktop on any operating system. When using docker engine on Linux, you may need to use sudo docker compose
or sudo docker-compose
instead.
In the terminal window, make sure that the directory you created is the current directiry, and run the following command:
docker compose up -d --pull always
Execution of this command will take some time. You will see messages saying that some container images are being downloaded. After the command completes, you need to wait about 3 minutes while the system is being installed. After that, you can access 1CRM with your web browser. For example if your server’s IP address is 192.168.1.100, open http://192.168.1.100/ in the browser.
Updating 1CRM
After a new version is released, you can update your server. To do so, first you need to stop 1CRM usng the following command:
docker compose down
After the command is executed and terminal returns to the command prompt, execute this command:
docker compose up -d --pull always
It will download newest 1CRM version and start it.
Alternative Deployment
Want to install 1CRM the ‘old fashion way’ – click the blog post below to be redirected to our documentation on how to install 1CRM on-premise using Ubuntu.