unpoller_unpoller/init/synology-docker-compose
Cody Lee 1b0d74459b
fix compose files
also fix location of service file for deb
2022-12-03 16:49:01 -06:00
..
.gitignore Completed README 2020-07-31 14:31:33 -05:00
README.md Fixed Numbering Issue 2020-10-01 23:44:24 -05:00
docker-compose.example.env Variable Updates and Instructional Changes 2020-08-17 04:58:35 -05:00
docker-compose.yml fix compose files 2022-12-03 16:49:01 -06:00

README.md

Synology Docker Compose Example

This folder is an example docker-compose.yml file and a .env file for using docker through a Synology Server.

The .env file is a special environment/variable file that docker-compose automatically uses to make configuration of your containers easier.

Directions

Directories

First, create the directories where you want the containers to save everything. I use the same base directory for them, like: /volume1/Docker/unifi-poller, then inside the ./unifi-poller directory: ./grafana and ./influxdb.

NOTE: Its best to use the command line over SSH to create these directories, AFTER you have the root shared directory created. (Control Panel -> Shared Folder -> Create)

sudo mkdir -p /volume[#]/[Shared Directory]/unifi-poller/grafana
sudo mkdir -p /volume[#]/[Shared Directory]/unifi-poller/influxdbx

Where /volume[#] is the volume number corresponding to your volumes in Synology; [Shared Directory] is the shared directory from above, and then creating the grafana and influxdb directories.

User Accounts

You still have to do this prep work, creating the unifi-poller user, which I'll re-iterate here:

  1. Create a new user account on the Synology from the Control Panel:
    • Name the user unifi-poller
    • Set the password (you don't need to logon as unifipoller and change it)
    • Disallow Password Change
    • Assign them to the user group users
    • Give them r/w permission to the folder you created e.g. /docker/unifi-poller
    • Don't assign them anything else - the point of this user is for security's sake.
  2. SSH into your Synology
  3. Run the following command to find the PID of the user you created and set the variable GRAFANA_LOCAL_USERID in your .env file:
    • sudo id unifi-poller
    • GRAFANA_LOCAL_USERID=1026

Spin Up the Containers

At this point, you are able to run sudo docker-compose up -d from within the directory that you have the docker-compose.yml file and the .env file saved on your Synology.

And now, using your Synology's Web GUI, we have to create the Influx Database.

Create Influx Database

  1. Click Containers and then double click the running influxdb1 container
  2. Switch to the terminal tab
  3. Click the drop down next to Create and select launch with command
  4. Enter bash and click ok
  5. Select bash from the left hand side. You should now see an active command prompt
  6. In the command prompt, enter these commands: (note: pasting IS possible! You have to right click in the terminal window and select paste)

influx

After a couple of seconds you should be in the InfluxDB shell. Run the following commands in the InfluxDB shell, then close the window. The unifipoller username is the read-only user you created in the Unifi Web Management page.

CREATE DATABASE unifi
USE unifi
CREATE USER unifipoller WITH PASSWORD 'unifipoller' WITH ALL PRIVILEGES
GRANT ALL ON unifi TO unifipoller
exit

Grafana Login and Final Setup

From here, your three containers should show as running, no alerts of auto-restarting or other issues coming from your synology's web GUI.

Make sure to double check the log output of all three containers. If there are any issues, they should appear here.

Then, in your browser, go to http://{ip address of your synology}:3000. The default login is admin:admin. But, if you used the INFLUXDB_ADMIN_USER and INFLUXDB_ADMIN_PASSWORD in the variable file, use that login here.

#. Click Add Your First Data Source on the home page #. Select the influxdb source option #. Set the following fields:

  • Name = UniFi InfluxDB (or whatever name you want) and set to default URL = http://influxdb1:8086 Database = unifi Username = unifipoller Password = unifipoller

No other fields need to be changed or set on this page. Click Save & Test

You should get green banner above the save and test that says 'Data Source is Working'
To return to the homepage click the icon with 4 squares on the left nav-bar and select home

Variables

For all of the variables used in the docker-compose file, you'll find them in the docker-compose.example.env file. Please, cp docker-compose.example.env .env and open it in your favorite text editor. nano .env

For the /local/storage/location/ lines, change those to match your directories.

#influxdb
INFLUXDB_ADMIN_PASSWORD=changeme
INFLUXDB_LOCAL_VOLUME=/local/storage/location/influxdb

#grafana
GRAFANA_USERNAME=unifi-poller_username
GRAFANA_PASSWORD=changeme
GRAFANA_LOCAL_USERID=1026

UNIFI_PASS=set_this_on_your_controller
UNIFI_URL=https://127.0.0.1:8443