Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions docs/administration/DNS-configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# DNS configuration

This guide explains how to configure DNS records for your domain and point them to the Public IPv4 address of your server using CloudeFlare.

1\. Select the account.

![Select the account](../_static/images/administration/DNS-configuration/select-account.png)

2\. Go to Domain section

![Domain seaction](../_static/images/administration/DNS-configuration/domain-section.png)

3\. Go to DNS configuration

![DNS configuration](../_static/images/administration/DNS-configuration/DNS-conf.png)

4\. Define an IP address of your VPS server. If you are using a subdomain instead of the root domain, enter the subdomain name in the Name field instead of @. For example, enter crm to configure crm.example.com. The exact configuration may vary depending on your DNS provider.

![Defining an IP address](../_static/images/administration/DNS-configuration/define-IP.png)
50 changes: 50 additions & 0 deletions docs/administration/Fail2ban.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Fail2ban

Fail2Ban is a security tool that monitors system logs for repeated failed authentication attempts and temporarily blocks suspicious IP addresses. It helps protect the server against brute-force attacks.

The following steps demonstrate how to install and check that Fail2Ban is correctly configured on your server.

1\. Install
```
sudo apt update
sudo apt install fail2ban -y
```
2\. Create the SSH jail configuration
Create the file:
```
sudo nano /etc/fail2ban/jail.d/sshd.local
```
Add the following configuration:
```
[sshd]
enabled = true
port = ssh
filter = sshd
backend = systemd

findtime = 10m
maxretry = 5
bantime = 1h
```
3\. Test the configuration
Run:
```
sudo fail2ban-client -t
```
You should see:
```
OK: configuration test is successful
```
4\. Restart Fail2Ban
```
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
```
5\. Check the jail
```
sudo fail2ban-client status
```
Check SSH jail details:
```
sudo fail2ban-client status sshd
```
57 changes: 57 additions & 0 deletions docs/administration/docker/digital-ocean.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# DigitalOcean and EspoCRM

DigitalOcean is a cloud platform that provides scalable infrastructure, including virtual servers (Droplets), storage, networking, and other cloud services. In this guide, we will use a DigitalOcean Droplet to deploy and run a self-hosted EspoCRM instance.

1\. Sign up on the [official DigitalOcean website](https://cloud.digitalocean.com/registrations/new)

2\. Create a Droplet

![Create a droplet](../../_static/images/administration/digital-ocean/droplet-create.png)

3\. Choose a datacenter region that is convenient for you. The recommended OS is Ubuntu or Debian.

![Choose a datecenter](../../_static/images/administration/digital-ocean/datacenter.png)

4\. We recommend a Droplet plan with at least 2 GB of RAM. Higher plans may provide a smooother user experience.

![Choose a droplet plan](../../_static/images/administration/digital-ocean/droplet-plan.png)

5\. Attach an SSH key or create a password, although using a password provides lower security. Add Payment Method and complete the Droplet creation.

![Create an SSH key](../../_static/images/administration/digital-ocean/ssh-key.png)

!!! note

To make your EspoCRM instance accessible through a domain, configure a DNS record pointing the domain to the Public IPv4 address of your Droplet. See the [Domain Configuration Guide](../DNS-configuration.md) for an example using Cloudflare.

![puplic IPv4](../../_static/images/administration/digital-ocean/public-ip.png)

6\. Now, log in to your server using the "Web Console" button or any other convenient way (e.g., a terminal) as the root user.

![web-console position](../../_static/images/administration/digital-ocean/web-console.png)

7\. Right after you log in to your server you can already download the installation script and run it with a single command:
```
wget -N https://github.com/espocrm/espocrm-installer/releases/latest/download/install.sh
sudo bash install.sh --ssl
```
During installation process, the system will prompt you to choose appropriate SSL protocol and enter a domain name, if available.

It's also possible to run the installer with all necessary preset, for example:
```
wget -N https://github.com/espocrm/espocrm-installer/releases/latest/download/install.sh
sudo bash install.sh -y --ssl --letsencrypt --domain=espocrm-sandbox.com --email=email@my-domain.com
```

All available prompt options can be foud [here](../installation-by-script.md#available-options)

After a successful installation, the login credentials, including the URL that you can use to access EspoCRM, will be shown in the terminal.

![Login credentails in terminal](../../_static/images/administration/digital-ocean/credentials.png)

## Additional Security

To improve the security of your EspoCRM server, we recommend configuring Fail2ban to help protect against repeated unauthorized access attempts.

For more information, see the [Fail2ban Setup Guide](../Fail2ban.md).

2 changes: 2 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* [Caddy reverse proxy](administration/docker/caddy.md)
* [Installation](administration/installation.md)
* [Upgrading](administration/upgrading.md)
* Deployment Guides
* [DigitalOcean](administration/docker/digital-ocean.md)
* Miscellaneous
* [WebSocket](administration/websocket.md)
* Portal
Expand Down
4 changes: 4 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,12 @@ nav:
- 'Caddy reverse proxy': 'administration/docker/caddy.md'
- 'Installation': 'administration/installation.md'
- 'Upgrading': 'administration/upgrading.md'
- Deployment Guides:
- 'DigitalOcean': 'administration/docker/digital-ocean.md'
- Miscellaneous:
- 'WebSocket': 'administration/websocket.md'
- 'DNS configuration': 'administration/DNS-configuration.md'
- 'Fail2ban configuration': 'administration/Fail2ban.md'
- 'Portal':
- 'Configuring portal in Apache': 'administration/portal/apache-configuration.md'
- 'Configuring portal in Nginx': 'administration/portal/nginx-configuration.md'
Expand Down