Giter VIP home page Giter VIP logo

matomo-buildpack's Introduction

Matomo-buildpack

Buildpack for running a Matomo instance on a Cloud Platform (Scalingo, Clever Cloud, Dokku, Heroku, etc.).

Matomo

Matomo is a free and open source web analytics application, designed to be an open and compliant with GDPR alternative to Google Analytics.

It is mainly a PHP + MySQL/MariaDB application (with a little bit of AngularJS).

History

This repository was originally designed to run Matomo and its Tag Manager System part on Scalingo (a french PaaS) platform.

Scalingo proposed an adapted application forked from the original Matomo project, installable with a "one-click deploy button".

There were some critical problems with this application:

  • the TMS part and some other important plugins were not installed/available
  • one could not pre-install and pre-activate Matomo purchased plugins ; thus, when the application restarted, installed plugins disappeared
  • the upgrade of the application was too dependant of Scalingo capacity and willness to merge the parent forked repository (that is not easy)

After a failing first attempt to improve the Scalingo/matomo repository, we decided to radically change our approach, and try a new one inspired by the Metabase buildpack.

All that we want is to run an already packaged software. It seems then better to strat from the released program than to package it ourselves. This is what this buildpack does.

Buildpack

This buildpack does the following, see bin/compile:

  • for a given release/tag, it downloads (via a cUrl command) the Matomo archive
  • unzip it
  • install some plugins, useful in a Cloud-based context
    • AdminCommands
    • DbCommands
    • LicenseKeyCommands

The first two plugins are custom ones, initially developed by the Scalingo Team ๐Ÿ’ช.

The version of the Matomo is defined in the bin/version file.

This buildpack follows the Cloud Native Buildpacks Specification. So it should be compatible with Scalingo, Dokku or Heroku.

Matomo releases

Each tag of this repository corresponds to a Matomo official release.

For example, tag v3.14.1 corresponds to Matomo#3.14.1.

Usage

In your Cloud application, define it as a multi-buildpacks application with matomo-buildpack and a php-based buildpack.

For example, for Scalingo, create a .buildpacks with:

https://github.com/1024pix/matomo-buildpack#v3.14.1
https://github.com/Scalingo/php-buildpack

You can find a production-ready application here.

Upgrading

Releasing a new version of this buildpack is as easy as running the command:

./upgrade-matomo-version <new_matomo_version> #ex: 3.14.2

This script does the following:

  • change the bin/version with the one given in parameter
  • declare and push a new tag named vX.Y.Z

Rebuild an already published version

If you need to re-publish a version for some reasons, simply make your changes, then run:

# some changes and git operations
git tag -d v3.14.1 && \
  git push --delete origin v3.14.1 && \
  git tag -a "v3.14.1" -m "Release v3.14.1" && \
  git push --tag

License

This software has been distributed under AGPL-3.0 license.

matomo-buildpack's People

Contributors

francois2metz avatar jbuget avatar jonasgrilleres avatar jonathanperret avatar vincenthardouin avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

matomo-buildpack's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.