Piwik with Docker

28 February 2016 #vps#services#docker

С недавних пор стал использовать для сбора статистики посещаемости сайта бесплатный Piwik. Для размещения использовал бесплатный сервис OpenShift. Но OpenShift в своем бесплатном варианте не гарантирует бесперебойной работы сервиса и указывает на то, что возможны простои в работе серверов.

Решил попробовать установить Piwik на свой сервер. Просмотрел документацию, требования, понял, что настройка сервера займет довольно много времени. И если в дальнейшем потребуется перенос данных, опять потребуется масса времени на повторение всех настроек. В качестве решения возникшей проблемы решил использовать Docker, так как он уже показал свою состоятельность, в момент организации своего VPN-сервера. Но поиск в интернете давал различные варианты, ни один из которых у меня нормально так и не заработал. Пришлось писать самому.

Исходный код полученных конфигурационных файлов можно найти в репозитории Juev/docker-piwik.

Репозиторий содержит в себе как файлы необходимые для генерации образа, так и файл, необходимый для запуска сервиса. Образ успешно опубликован в репозитории docker и теперь его можно использовать уже в готовом виде.

Рассмотрим вариант установки piwik на сервер. С момента знакомства с Docker я стал активно использовать операционную систему Core OS, которая ориентирована на безопасное и простое управление рабочими контейнерами. А DigitalOcean предоставляет возможность ее использования.

Итак создает новый Droplet, в качестве операционной системы выбираем Core OS (beta), я предпочитаю использовать стабильные версии, но в данном случае нам потребуется использовать docker-compose, утилита, для работы которой требуется docker входящий только в beta-версию Core OS.

После создания, заходим на сервер по ssh, под именем core и используем следующие команды для установки требуемой утилиты:

$ sudo mkdir -p /opt/bin
$ curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > docker-compose
$ chmod +x docker-compose
$ sudo mv docker-compose /opt/bin/

Core OS поставляется с файловой системой в ReadOnly режиме и не имеет своего пакетного менеджера, все необходимые сервисы и рабочее окружение создается через Docker, обновление проводиться путем замены образа файловой системы и быстрой перезагрузки с переключением в новый образ. Это и безопасно и удобно.

Теперь запускаем собственно piwik:

$ mkdir Projects && cd Projects
$ git clone https://github.com/Juev/docker-piwik.git
$ cd docker-piwik
$ docker-compose up -d

Просто, не правда ли? Да, да, на это все. Сервер готов к использованию, больше ничего не нужно делать. Осталось только настроить сам piwik к использованию. Для этого просто переходим по адресу вашего сервера и проходим стандартную конфигурацию через мастер. Единственное, на что стоит обратить внимание, при настройке соединения с базой данных необходимо использовать следующие значения:

Database Server: mysql
Login: piwik
Password: vdZggFUwSZcKcq9fFczH7AsjAfgF59r
Database name: piwik

Если вас смущает то, что логины и пароль уже заданы, можете в любой момент их сменить, изменив файл docker-compose.yml. Главное, что при настройке piwik вам нужно использовать значения из данного файла. Обратиться к mysql извне невозможно, доступ к контейнеру с базой данных есть только у контейнера с piwik и оба контейнера размещаются за NAT.

Если у вас есть замечания или предложения по данному сервису, не стесняйтесь создавать Issue или Pull Request в репозитории на GitHub.