tacticalrmm/docker/readme.md

73 lines
2.4 KiB
Markdown
Raw Normal View History

2020-02-12 16:18:43 +00:00
# Docker Setup
2020-11-20 00:03:44 +00:00
- Install docker and docker-compose
2020-11-25 19:53:38 +00:00
- Obtain valid wildcard certificate for your domain. If certificates are not provided, a self-signed certificate will be generated and most agent functions won't work. See below on how to generate a free Let's Encrypt!
2020-02-12 16:18:43 +00:00
2020-11-25 19:53:38 +00:00
## Generate certificates with certbot
2020-02-12 16:18:43 +00:00
Install Certbot
2020-04-06 18:21:52 +00:00
```
2020-02-12 16:18:43 +00:00
sudo apt-get install certbot
```
2020-11-20 00:03:44 +00:00
Generate the wildcard certificate. Add the DNS entry for domain validation. Replace `example.com` with your root doamin
2020-02-12 16:18:43 +00:00
```
sudo certbot certonly --manual -d *.example.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns
2020-02-12 16:18:43 +00:00
```
2020-11-25 19:53:38 +00:00
## Configure DNS and firewall
2021-01-20 22:11:54 +00:00
You will need to add DNS entries so that the three subdomains resolve to the IP of the docker host. There is a reverse proxy running that will route the hostnames to the correct container. On the host, you will need to ensure the firewall is open on tcp ports 80, 443 and 4222.
2020-11-25 19:53:38 +00:00
## Setting up the environment
2020-02-12 16:18:43 +00:00
2020-11-20 00:03:44 +00:00
Get the docker-compose and .env.example file on the host you which to install on
2020-02-12 16:18:43 +00:00
2020-02-12 18:48:05 +00:00
```
2020-11-20 00:03:44 +00:00
wget https://raw.githubusercontent.com/wh1te909/tacticalrmm/master/docker/docker-compose.yml
wget https://raw.githubusercontent.com/wh1te909/tacticalrmm/master/docker/.env.example
mv .env.example .env
2020-02-12 16:18:43 +00:00
```
2020-11-20 00:03:44 +00:00
Change the values in .env to match your environment.
2020-02-12 16:18:43 +00:00
2020-11-20 00:03:44 +00:00
If you are supplying certificates through Let's Encrypt or another source, see the section below about base64 encoding the certificate files.
2020-11-20 00:03:44 +00:00
## Base64 encoding certificates to pass as env variables
2020-04-06 18:21:52 +00:00
2020-11-20 00:03:44 +00:00
Use the below command to add the the correct values to the .env.
2020-04-06 18:21:52 +00:00
2020-11-20 00:03:44 +00:00
Running this command multiple times will add redundant entries, so those will need to be removed.
2020-04-16 14:56:52 +00:00
2020-11-25 19:53:38 +00:00
Let's encrypt certs paths are below. Replace ${rootdomain} with your own.
2020-04-16 14:56:52 +00:00
2020-11-20 00:03:44 +00:00
public key
`/etc/letsencrypt/live/${rootdomain}/fullchain.pem`
2020-11-20 00:03:44 +00:00
private key
2020-11-25 19:53:38 +00:00
`/etc/letsencrypt/live/${rootdomain}/privkey.pem`
2020-05-07 03:42:42 +00:00
2020-11-20 00:03:44 +00:00
```
echo "CERT_PUB_KEY=$(sudo base64 -w 0 /path/to/pub/key)" >> .env
echo "CERT_PRIV_KEY=$(sudo base64 -w 0 /path/to/priv/key)" >> .env
2020-11-20 00:03:44 +00:00
```
2020-11-25 19:53:38 +00:00
## Starting the environment
Run the below command to start the environment.
```
sudo docker-compose up -d
```
Removing the -d will start the containers in the foreground and is useful for debugging.
## Get MeshCentral EXE download link
Run the below command to get the download link for the mesh central exe. This needs to be uploaded on first successful signin.
```
sudo docker-compose exec tactical-backend python manage.py get_mesh_exe_url
```