The most convenient way to install the Bluecherry docker image is to use this script below. This does the following:
-
Installs git and docker based on your distribution
-
Clones this GitHub project, copies mailenv.example to .mailenv (for SMTP configuration)
-
Prompts the user for credentials for a SMTP server, login, password, SMTP port (not required, but useful)
-
Prompts the user for NFS server (again not required, but useful)
Once installed you can configure Bluecherry to use the hotname 'bc-mail' to send emails, if you want to do this make sure you configure the SMTP server
sudo bash -c "$(curl -s https://raw.githubusercontent.com/bluecherrydvr/bluecherry-docker/master/scripts/install.sh)"
The included Dockerfile generates an image based on an Ubuntu 20.04 docker image. The latest tagged version of the Bluecherry Server v3.x.x from the bluecherry-apps source repository. The included docker-compose file uses MySQL version 8.x.x to host the bluecherry database.
Instead, needed configuration parameters such as database and server passwords are passed into the docker container via environment variables. Environment variables are defined and passed using typical methods with docker
or docker-compose
commands.
This repository includes a docker-compose.yml file, which makes it easier to manage and run both the bluecherry-server and mysql database containers by using docker compose to manage the containers.
If your host environment supports VAAPI (https://wiki.libav.org/Hardware/vaapi) AND you have a /dev/dri entry on the host machine (for Linux) you can enable GPU transcoding in docker-compose.yml by uncommenting this section:
#devices:
# - /dev/dri:/dev/dri
To view logs from the Bluecherry server, you can use the typical docker logs
or docker-compose logs
facilities from the host machine. However, it may be useful to inspect the server logs directly from within the container... the subsections below show one method to do so.
To view the bluecherry.log file, you can run a tail
command inside the running bluecherry docker container like so:
sudo docker exec -it bc-server /bin/bash -c "tail -f /var/log/bluecherry.log"
An example log output from a bluecherry server that started up successfully is shown below:
May 7 13:50:14 93036b43197e bc-server[14]: I(): Status reports are served at /tmp/bluecherry_status
May 7 13:50:14 93036b43197e bc-server[14]: I(): Status reports are served at /tmp/bluecherry_trigger
May 7 13:50:14 93036b43197e bc-server[14]: I(): Started bc-server 3.0.5 (toolchain 9.3.0) 69a7f17 heads/master
May 7 13:50:14 93036b43197e bc-server[14]: I(): SQL database connection opened
You can check the status of the processes running inside the container. There should be processes for apache2, rsyslog, and bc-server at the very least. An example command to check the container's running processes is:
sudo docker exec -it bc-server /bin/bash -c "ps ax"
An example process list (ps) output from a running bluecherry docker container is shown below:
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/sh -c "/entrypoint.sh"
7 ? S 0:00 /bin/bash /entrypoint.sh
10 ? Ssl 0:00 /usr/sbin/rsyslogd
13 ? Ss 0:00 /usr/sbin/apache2
15 ? S 0:00 /usr/sbin/apache2
16 ? S 0:00 /usr/sbin/apache2
17 ? S 0:00 /usr/sbin/apache2
18 ? S 0:00 /usr/sbin/apache2
19 ? S 0:00 /usr/sbin/apache2
20 ? Ssl 0:00 /usr/sbin/bc-server -u bluecherry -g bluecherry
221 ? S 0:00 sleep 15
230 pts/0 Rs+ 0:00 ps ax
Bluecherry server documentation can be found at https://docs.bluecherrydvr.com