unpoller_unpoller/init/synology-docker-compose/README.md

112 lines
4.7 KiB
Markdown

# 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`)
```bash
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](https://github.com/unifi-poller/unifi-poller/wiki/Synology-HOWTO#method-2), 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.
```bash
#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
```