Skip to content

Commit b634f3c

Browse files
authored
Merge pull request #15 from geniusdynamics/dev
Dev
2 parents bedfd62 + 5e3c837 commit b634f3c

10 files changed

Lines changed: 95 additions & 63 deletions

File tree

build-images.sh

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,33 @@ images=()
1313
repobase="${REPOBASE:-ghcr.io/geniusdynamics}"
1414
# Configure the image name
1515
reponame="matomo"
16-
matomo_version="5.0.3"
16+
matomo_version="5.3.2"
1717
# Create a new empty container image
1818
container=$(buildah from scratch)
1919

2020
# Reuse existing nodebuilder-matomo container, to speed up builds
2121
if ! buildah containers --format "{{.ContainerName}}" | grep -q nodebuilder-matomo; then
22-
echo "Pulling NodeJS runtime..."
23-
buildah from --name nodebuilder-matomo -v "${PWD}:/usr/src:Z" docker.io/library/node:lts
22+
echo "Pulling NodeJS runtime..."
23+
buildah from --name nodebuilder-matomo -v "${PWD}:/usr/src:Z" docker.io/library/node:lts
2424
fi
2525

2626
echo "Build static UI files with node..."
2727
buildah run \
28-
--workingdir=/usr/src/ui \
29-
--env="NODE_OPTIONS=--openssl-legacy-provider" \
30-
nodebuilder-matomo \
31-
sh -c "yarn install && yarn build"
28+
--workingdir=/usr/src/ui \
29+
--env="NODE_OPTIONS=--openssl-legacy-provider" \
30+
nodebuilder-matomo \
31+
sh -c "yarn install && yarn build"
3232

3333
# Add imageroot directory to the container image
3434
buildah add "${container}" imageroot /imageroot
3535
buildah add "${container}" ui/dist /ui
3636
# Setup the entrypoint, ask to reserve one TCP port with the label and set a rootless container
3737
buildah config --entrypoint=/ \
38-
--label="org.nethserver.authorizations=traefik@node:routeadm" \
39-
--label="org.nethserver.tcp-ports-demand=1" \
40-
--label="org.nethserver.rootfull=0" \
41-
--label="org.nethserver.images=docker.io/matomo:${matomo_version} docker.io/mariadb:10.11.6" \
42-
"${container}"
38+
--label="org.nethserver.authorizations=traefik@node:routeadm" \
39+
--label="org.nethserver.tcp-ports-demand=1" \
40+
--label="org.nethserver.rootfull=0" \
41+
--label="org.nethserver.images=docker.io/matomo:${matomo_version} docker.io/mariadb:10.11.6" \
42+
"${container}"
4343
# Commit the image
4444
buildah commit "${container}" "${repobase}/${reponame}"
4545

@@ -57,14 +57,14 @@ images+=("${repobase}/${reponame}")
5757
#
5858

5959
#
60-
# Setup CI when pushing to Github.
60+
# Setup CI when pushing to Github.
6161
# Warning! docker::// protocol expects lowercase letters (,,)
6262
if [[ -n "${CI}" ]]; then
63-
# Set output value for Github Actions
64-
printf "images=%s\n" "${images[*],,}" >> "${GITHUB_OUTPUT}"
63+
# Set output value for Github Actions
64+
printf "images=%s\n" "${images[*],,}" >>"${GITHUB_OUTPUT}"
6565
else
66-
# Just print info for manual push
67-
printf "Publish the images with:\n\n"
68-
for image in "${images[@],,}"; do printf " buildah push %s docker://%s:%s\n" "${image}" "${image}" "${IMAGETAG:-latest}" ; done
69-
printf "\n"
66+
# Just print info for manual push
67+
printf "Publish the images with:\n\n"
68+
for image in "${images[@],,}"; do printf " buildah push %s docker://%s:%s\n" "${image}" "${image}" "${IMAGETAG:-latest}"; done
69+
printf "\n"
7070
fi

imageroot/actions/configure-module/10EnvMatomo

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,3 @@ data = json.load(sys.stdin)
1515

1616
# Setup configuration from user input.
1717

18-
agent.set_env("MATOMO_DATABASE_HOST", data.get("matomo_database_host",""))
19-
agent.set_env("MATOMO_DATABASE_USERNAME",data.get("matomo_database_username"))
20-
agent.set_env("MATOMO_DATABASE_PASSWORD", data.get("matomo_database_password"))
21-
agent.set_env("MATOMO_DATABASE_DBNAME", data.get("matomo_database_dbname"))
22-
agent.set_env("MARIADB_AUTO_UPGRADE",data.get("mariadb_auto_upgrade","1"))
23-
agent.set_env("MARIADB_DISABLE_UPGRADE_BACKUP",data.get("mariadb_disable_upgrade_backup","1"))
24-
agent.set_env("MATOMO_DATABASE_TABLES_PREFIX",data.get("matomo_database_tables_prefix","matomo"))
25-
agent.set_env("MATOMO_DATABASE_ADAPTER",data.get("matomo_database_adapter","mysql"))

imageroot/actions/create-module/20Env-default

Lines changed: 49 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,66 @@ import json
99
import sys
1010
import agent
1111
import os
12+
import secrets
1213
from pathlib import Path
1314

15+
data = json.load(sys.stdin)
16+
1417
# try to find the timezone except to UTC
1518
symlink_path = "/etc/localtime"
1619
resolved_path = Path(symlink_path).resolve()
1720
timezone = str(resolved_path.relative_to(Path("/usr/share/zoneinfo")))
1821
if not timezone:
1922
timezone = "UTC"
2023

24+
25+
def generate_random_password():
26+
return secrets.token_urlsafe(16)
27+
28+
29+
MARIADB_AUTO_UPGRADE = data.get("MARIADB_AUTO_UPGRADE", "1")
30+
MARIADB_DISABLE_UPGRADE_BACKUP = data.get("MARIADB_DISABLE_UPGRADE_BACKUP", "1")
31+
MARIADB_ROOT_PASSWORD = generate_random_password()
32+
MARIADB_DATABASE = data.get("MARIADB_DATABASE", "matomo")
33+
MARIADB_USER = data.get("MARIADB_USER", "matomo")
34+
MARIADB_PASSWORD = generate_random_password()
35+
MARIADB_INITDB_SKIP_TZINFO = data.get("MARIADB_INITDB_SKIP_TZINFO", "1")
36+
37+
database_config = {
38+
"MARIADB_AUTO_UPGRADE": MARIADB_AUTO_UPGRADE,
39+
"MARIADB_DISABLE_UPGRADE_BACKUP": MARIADB_DISABLE_UPGRADE_BACKUP,
40+
"MARIADB_ROOT_PASSWORD": MARIADB_ROOT_PASSWORD,
41+
"MARIADB_DATABASE": MARIADB_DATABASE,
42+
"MARIADB_USER": MARIADB_USER,
43+
"MARIADB_PASSWORD": MARIADB_PASSWORD,
44+
"MARIADB_INITDB_SKIP_TZINFO": MARIADB_INITDB_SKIP_TZINFO,
45+
}
46+
agent.write_envfile("database.env", database_config)
47+
48+
MATOMO_DATABASE_HOST = data.get("MATOMO_DATABASE_HOST", "matomo-mariadb")
49+
MATOMO_DATABASE_USERNAME = MARIADB_USER
50+
MATOMO_DATABASE_PASSWORD = MARIADB_PASSWORD
51+
MATOMO_DATABASE_DBNAME = MARIADB_DATABASE
52+
MATOMO_DATABASE_TABLES_PREFIX = data.get("MATOMO_DATABASE_TABLES_PREFIX", "matomo")
53+
MATOMO_DATABASE_ADAPTER = data.get("MATOMO_DATABASE_ADAPTER", "mysql")
54+
PHP_MEMORY_LIMIT = data.get("PHP_MEMORY_LIMIT", "2048M")
55+
56+
matomo_config = {
57+
"MATOMO_DATABASE_HOST": MATOMO_DATABASE_HOST,
58+
"MATOMO_DATABASE_USERNAME": MATOMO_DATABASE_USERNAME,
59+
"MATOMO_DATABASE_PASSWORD": MATOMO_DATABASE_PASSWORD,
60+
"MATOMO_DATABASE_DBNAME": MATOMO_DATABASE_DBNAME,
61+
"MATOMO_DATABASE_TABLES_PREFIX": MATOMO_DATABASE_TABLES_PREFIX,
62+
"MATOMO_DATABASE_ADAPTER": MATOMO_DATABASE_ADAPTER,
63+
"PHP_MEMORY_LIMIT": PHP_MEMORY_LIMIT,
64+
}
65+
agent.write_envfile("matomo.env", matomo_config)
66+
67+
2168
# Create default vars
22-
agent.set_env("MATOMO_DATABASE_ADAPTER", "mysql")
23-
agent.set_env("MATOMO_DATABASE_TABLES_PREFIX", "matomo")
24-
agent.set_env("MARIADB_DISABLE_UPGRADE_BACKUP", 1)
25-
agent.set_env("MARIADB_AUTO_UPGRADE", 1)
26-
agent.set_env("PHP_MEMORY_LIMIT", 2048)
27-
agent.set_env("MARIADB_INITDB_SKIP_TZINFO", "1")
2869

29-
# agent.set_env("MATOMO_DATABASE_HOST", "localhost")
30-
# agent.set_env("MATOMO_DATABASE_USERNAME", "matomo")
31-
# agent.set_env("MATOMO_DATABASE_PASSWORD", "Nethesis,1234")
32-
# agent.set_env("MATOMO_DATABASE_DBNAME", "matomo")
70+
agent.set_env("PHP_MEMORY_LIMIT", 2048)
3371

3472
# Try to parse the stdin as JSON.
35-
73+
agent.dump_env()
3674

imageroot/actions/get-configuration/20read

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ config = {}
1212
# Read current configuration from the environment file
1313
config["host"] = os.getenv("TRAEFIK_HOST","")
1414
config["lets_encrypt"] = os.getenv("TRAEFIK_LETS_ENCRYPT") == "True"
15-
config["http2https"] = os.getenv("TRAEFIK_HTTP2HTTPS") == "True"
1615
config["matomo_database_username"] = os.getenv("MATOMO_DATABASE_USERNAME","matomo")
1716
config["matomo_database_password"] = os.getenv("MATOMO_DATABASE_PASSWORD","Matomo,1234")
1817
config["matomo_database_dbname"] = os.getenv("MATOMO_DATABASE_DBNAME","matomo")

imageroot/actions/restore-module/40restore_database

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,5 @@ podman run \
3333
--network=none \
3434
--volume=./initdb.d:/docker-entrypoint-initdb.d:z \
3535
--volume mysql-data:/var/lib/mysql/:Z \
36-
--env MARIADB_ROOT_PASSWORD=Nethesis,1234 \
37-
--env MARIADB_DATABASE=matomo \
38-
--env MARIADB_USER=matomo \
39-
--env MARIADB_PASSWORD=Matomo,1234 \
40-
--replace --name=restore_db \
41-
${MARIADB_IMAGE}
36+
--env-file=database.env \
37+
"${MARIADB_IMAGE}"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
#
4+
# Copyright (C) 2023 Nethesis S.r.l.
5+
# SPDX-License-Identifier: GPL-3.0-or-later
6+
#
7+
set -e
8+
9+
# Redirect any output to the journal (stderr)
10+
exec 1>&2
11+
12+
# If the control reaches this step, the service can be enabled and started
13+
14+
touch smarthost.env
15+
16+
systemctl --user enable --now matomo.service
17+
systemctl --user restart --now matomo.service

imageroot/etc/state-include.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
state/matomo.sql
2+
state/database.env
3+
state/matomo.env
24
volumes/matomo-app
35
volumes/./config
46
volumes/configs

imageroot/systemd/user/matomo-app.service

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ ExecStartPost=/usr/bin/bash -c "while ! /usr/bin/podman exec matomo-app /usr/bin
2222
ExecStart=/usr/bin/podman run --conmon-pidfile %t/matomo-app.pid \
2323
--cidfile %t/matomo-app.ctr-id --cgroups=no-conmon \
2424
--pod-id-file %t/matomo.pod-id --replace -d --name matomo-app \
25-
--env=MATOMO_* \
26-
--env MATOMO_DATABASE_ADAPTER=mysql \
27-
--env MATOMO_DATABASE_HOST=127.0.0.1 \
28-
--env MATOMO_DATABASE_TABLES_PREFIX=matomo \
29-
--env MATOMO_DATABASE_USERNAME=matomo \
30-
--env MATOMO_DATABASE_PASSWORD=Matomo,1234 \
31-
--env MATOMO_DATABASE_DBNAME=matomo \
25+
--env-file=%S/state/matomo.env \
3226
--volume matomo-app:/var/www/html/:Z \
3327
--volume ./config:/tmp:Z \
3428
--volume configs:/var/www/html/config \

imageroot/systemd/user/matomo-mariadb.service

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,18 @@ After=matomo.service
1212
[Service]
1313
Environment=PODMAN_SYSTEMD_UNIT=%n
1414
EnvironmentFile=%S/state/environment
15+
EnvironmentFile=%S/state/database.env
1516
Restart=always
1617
TimeoutStopSec=70
1718
ExecStartPre=/bin/rm -f %t/matomo-mariadb.pid %t/matomo-mariadb.ctr-id
1819
ExecStart=/usr/bin/podman run --conmon-pidfile %t/matomo-mariadb.pid \
1920
--cidfile %t/matomo-mariadb.ctr-id --cgroups=no-conmon \
2021
--pod-id-file %t/matomo.pod-id --replace -d --name matomo-mariadb \
21-
--env-file=%S/state/environment \
22+
--env-file=%S/state/database.env \
2223
--volume mysql-data:/var/lib/mysql/:Z \
23-
--env MARIADB_AUTO_UPGRADE=1 \
24-
--env MARIADB_DISABLE_UPGRADE_BACKUP=1 \
25-
--env MARIADB_ROOT_PASSWORD=Nethesis,1234 \
26-
--env MARIADB_DATABASE=matomo \
27-
--env MARIADB_USER=matomo \
28-
--env MARIADB_PASSWORD=Matomo,1234 \
29-
--env MARIADB_AUTO_UPGRADE=1 \
3024
${MARIADB_IMAGE} \
3125
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
32-
ExecStartPost=/usr/bin/podman exec matomo-mariadb /bin/bash -c 'printf "[client] \npassword=Nethesis,1234" > /root/.my.cnf'
26+
ExecStartPost=/usr/bin/podman exec matomo-mariadb /bin/bash -c 'printf "[client] \npassword=${MARIADB_ROOT_PASSWORD}" > /root/.my.cnf'
3327
ExecStartPost=/usr/bin/podman exec matomo-mariadb /bin/bash -c "while ! mysqladmin ping -h localhost -P 3306 -u root; do sleep 1; done"
3428
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/matomo-mariadb.ctr-id -t 10
3529
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/matomo-mariadb.ctr-id

ui/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# NS8 kickstart UI development
1+
# NS8 matomo UI development
22

3-
To develop kickstart UI please refer to [this section of the Developer manual](https://nethserver.github.io/ns8-core/ui/modules/#module-ui-development).
3+
To develop matomo UI please refer to [this section of the Developer manual](https://nethserver.github.io/ns8-core/ui/modules/#module-ui-development).

0 commit comments

Comments
 (0)