diff options
author | Vladislav | 2024-03-19 14:53:50 +0300 |
---|---|---|
committer | Vladislav | 2024-03-19 14:53:50 +0300 |
commit | 12a08539a51ce0f851f6199ca13ed02ccbdbd670 (patch) | |
tree | e798d17d81c6c87835f2d13e226aa4a586572ee8 | |
parent | b15248de8f00f5347a3d339516e8f8a50cafc40e (diff) | |
download | aur-12a08539a51ce0f851f6199ca13ed02ccbdbd670.tar.gz |
1.28.4
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | PKGBUILD | 70 | ||||
-rw-r--r-- | teslamate.conf | 15 | ||||
-rw-r--r-- | teslamate.install | 34 | ||||
-rw-r--r-- | teslamate.service | 27 | ||||
-rw-r--r-- | teslamate.sysusers | 1 | ||||
-rw-r--r-- | teslamate.tmpfiles | 1 |
7 files changed, 81 insertions, 94 deletions
@@ -1,21 +1,28 @@ pkgbase = teslamate - pkgdesc = A self-hosted data logger for your Tesla 🚘 - pkgver = 1.28.3 + pkgdesc = A self-hosted data logger for your Tesla + pkgver = 1.28.4 pkgrel = 1 url = https://teslamate.org install = teslamate.install arch = any license = MIT makedepends = npm - depends = elixir - depends = nodejs - depends = grafana - depends = postgresql - source = teslamate-1.28.3.tar.gz::https://github.com/teslamate-org/teslamate/archive/refs/tags/v1.28.3.tar.gz + makedepends = elixir + makedepends = nodejs + backup = etc/teslamate.conf + source = teslamate-1.28.4.tar.gz::https://github.com/teslamate-org/teslamate/archive/refs/tags/v1.28.4.tar.gz + source = teslamate.conf source = teslamate.service + source = teslamate.sysusers source = teslamate.install - sha256sums = d6743b3f11bab83bc96e32e674b3e441d37e41c15e8c1ce876a9535c4d5abccf - sha256sums = 455b9f75b17ee31bfed34fb3b7ab149947e7691b3b1c07c51eb298d0ac4adf67 - sha256sums = 1f599b27539320c874e55d3430c8375179a69893c38e10d0fed7952450a3f347 + source = teslamate.tmpfiles + sha512sums = eb94f78d111e4fc9f41d15f40d860827830be036fb1140f123463ef854fdbc84fd0515f3030c735b1bca72d5f17622ef0d0e69a275149cfa0895bc4659cac8c4 + sha512sums = 09e43822410d04a92d407474e677efdf4c46642244a37dd429fbfe234b12a8f3ae938717dcbb5d18e92f71fa73e75674f1c7324a7633f3d3abf070e605fe4563 + sha512sums = fd306d395b9c5f5c7e0a4e17015235ef674e24fcd7022538872f8661e1964e23b12ed4b27335755b666a3e5fd9aef3e47e94436f1068e6f5908a27507cf7ffcb + sha512sums = bfb718592f7ca86049f81f1b8b9efae4bbcf600846d0c3d14d965a8062c9a571d0243768fd753052d62fe4c690c76c5f28171c9a7a50ff4219149f49a489f128 + sha512sums = 3fceac6686975feed7162f06f5a87eefd7fcee5caa0c68ba12cbda3fe0ad531e575d2ef1feccbf0b0445379ea5fae00ccc0a09497ba6116d6cd926865c041c69 + sha512sums = 6321ecf0d88206a962078c264b166ce10f8089bc252d4ca4d78810100fefd5d3e675b3d4fcc4f09d3ca929f8937966699be9447872131b82fe3acade0262ff5b pkgname = teslamate + depends = grafana + depends = postgresql @@ -1,73 +1,53 @@ # Maintainer: Stephan Springer <buzo+arch@Lini.de> +# Maintainer: Vladislav Minakov <v@minakov.pro> # Contributor: Sandy Carter <bwrsandman [at] gmail dot com> pkgname=teslamate -pkgver=1.28.3 +pkgver=1.28.4 pkgrel=1 -pkgdesc="A self-hosted data logger for your Tesla 🚘" +pkgdesc="A self-hosted data logger for your Tesla" arch=('any') url="https://teslamate.org" license=("MIT") -depends=("elixir" "nodejs" "grafana" "postgresql") -makedepends=("npm") +makedepends=("npm" "elixir" "nodejs") source=("$pkgname-$pkgver.tar.gz::https://github.com/teslamate-org/teslamate/archive/refs/tags/v${pkgver}.tar.gz" + "teslamate.conf" "teslamate.service" - "teslamate.install") -sha256sums=('d6743b3f11bab83bc96e32e674b3e441d37e41c15e8c1ce876a9535c4d5abccf' - '455b9f75b17ee31bfed34fb3b7ab149947e7691b3b1c07c51eb298d0ac4adf67' - '1f599b27539320c874e55d3430c8375179a69893c38e10d0fed7952450a3f347') + "teslamate.sysusers" + "teslamate.install" + "teslamate.tmpfiles") +sha512sums=('eb94f78d111e4fc9f41d15f40d860827830be036fb1140f123463ef854fdbc84fd0515f3030c735b1bca72d5f17622ef0d0e69a275149cfa0895bc4659cac8c4' + '09e43822410d04a92d407474e677efdf4c46642244a37dd429fbfe234b12a8f3ae938717dcbb5d18e92f71fa73e75674f1c7324a7633f3d3abf070e605fe4563' + 'fd306d395b9c5f5c7e0a4e17015235ef674e24fcd7022538872f8661e1964e23b12ed4b27335755b666a3e5fd9aef3e47e94436f1068e6f5908a27507cf7ffcb' + 'bfb718592f7ca86049f81f1b8b9efae4bbcf600846d0c3d14d965a8062c9a571d0243768fd753052d62fe4c690c76c5f28171c9a7a50ff4219149f49a489f128' + '3fceac6686975feed7162f06f5a87eefd7fcee5caa0c68ba12cbda3fe0ad531e575d2ef1feccbf0b0445379ea5fae00ccc0a09497ba6116d6cd926865c041c69' + '6321ecf0d88206a962078c264b166ce10f8089bc252d4ca4d78810100fefd5d3e675b3d4fcc4f09d3ca929f8937966699be9447872131b82fe3acade0262ff5b') +backup=('etc/teslamate.conf') install=teslamate.install -prepare() { - cd "$pkgname-$pkgver" - - sed -i 's,grafana-map-panel,grafana-worldmap-panel,g' grafana/dashboards/charging-stats.json - - sed -i 's,/dashboards_reports,/dashboards/reports,g' grafana/dashboards.yml - sed -i 's,/dashboards_internal,/dashboards/internal,g' grafana/dashboards.yml - sed -i 's,/dashboards,/var/lib/grafana/conf/provisioning/dashboards,g' grafana/dashboards.yml - - sed -i 's,$DATABASE_HOST,localhost,g' grafana/datasource.yml - sed -i 's,$DATABASE_PORT,5432,g' grafana/datasource.yml - sed -i 's,$DATABASE_NAME,teslamate,g' grafana/datasource.yml - sed -i 's,$DATABASE_USER,teslamate,g' grafana/datasource.yml - sed -i 's,$DATABASE_PASS,secret,g' grafana/datasource.yml -} - build() { cd "$pkgname-$pkgver" + sed -i -e '/teslamate_internal/,$d' -e 's,/dashboards,/var/lib/grafana/conf/provisioning/dashboards,g' grafana/dashboards.yml export HEX_HOME=${srcdir}/.hex export MIX_HOME=${srcdir}/.mix export MIX_ENV=prod - mix local.hex --force mix local.rebar --force mix deps.get --only prod npm install --cache "${srcdir}/.npm" --prefix ./assets npm run deploy --cache "${srcdir}/.npm" --prefix ./assets - - mix do phx.digest, release --overwrite } package() { + depends+=("grafana" "postgresql") cd "$pkgname-$pkgver" - export HEX_HOME=${srcdir}/.hex - export MIX_HOME=${srcdir}/.mix - export MIX_ENV=prod - - mix do phx.digest, release --overwrite --path=${pkgdir}/opt/${pkgname} - mkdir -p ${pkgdir}/usr/bin - ln -s /opt/${pkgname}/bin/teslamate ${pkgdir}/usr/bin/teslamate - - mkdir -p ${pkgdir}/etc/systemd/system - install ${srcdir}/teslamate.service ${pkgdir}/etc/systemd/system/teslamate.service - - mkdir -p ${pkgdir}/var/lib/grafana/conf/provisioning + HEX_HOME=${srcdir}/.hex MIX_HOME=${srcdir}/.mix MIX_ENV=prod mix do phx.digest, release --overwrite --path=${pkgdir}/usr/share/webapps/${pkgname} + install -Dm 644 "${srcdir}/teslamate.service" "${pkgdir}/usr/lib/systemd/system/teslamate.service" + install -Dm 644 "${srcdir}/teslamate.sysusers" "${pkgdir}/usr/lib/sysusers.d/teslamate.conf" + install -Dm 644 "${srcdir}/teslamate.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/teslamate.conf" + install -Dm 644 grafana/dashboards.yml ${pkgdir}/var/lib/grafana/conf/provisioning/dashboards/teslamate.yml cp -r grafana/dashboards ${pkgdir}/var/lib/grafana/conf/provisioning - install grafana/dashboards.yml ${pkgdir}/var/lib/grafana/conf/provisioning/dashboards/teslamate.yml - - mkdir -p ${pkgdir}/var/lib/grafana/conf/provisioning/datasources - install grafana/datasource.yml ${pkgdir}/var/lib/grafana/conf/provisioning/datasources/teslamate.yml +# install -dm 750 "grafana/dashboards/" "${pkgdir}/var/lib/grafana/conf/provisioning/" +# install -Dm 644 grafana/dashboards.yml ${pkgdir}/var/lib/grafana/conf/provisioning/dashboards/teslamate.yml + install -Dm 644 grafana/datasource.yml ${pkgdir}/var/lib/grafana/conf/provisioning/datasources/teslamate.yml } - -# vim:set ts=2 sw=2 et: diff --git a/teslamate.conf b/teslamate.conf new file mode 100644 index 000000000000..97558bf798e9 --- /dev/null +++ b/teslamate.conf @@ -0,0 +1,15 @@ +ENCRYPTION_KEY="secret" +HOME=/usr/share/webapps/teslamate +LANG=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +DATABASE_USER=teslamate +DATABASE_PASS=secret +DATABASE_NAME=teslamate +DATABASE_HOST=127.0.0.1 +VIRTUAL_HOST=teslamate.example.com +CHECK_ORIGIN=true +PORT=8080 +HTTP_BINDING_ADDRESS=127.0.0.1 +MQTT_HOST=127.0.0.1 +DISABLE_MQTT=false +TZ=Europe/Moscow diff --git a/teslamate.install b/teslamate.install index 5acc04c92d15..c3b550d49cab 100644 --- a/teslamate.install +++ b/teslamate.install @@ -1,21 +1,17 @@ post_install() { - echo "Username is \"teslamate\" and password is \"secret\"." - echo "" - echo "Create the teslamate database:" - echo " # sudo -u postgres psql" - echo " postgres=# create database teslamate;" - echo " postgres=# create user teslamate with encrypted password 'secret';" - echo " postgres=# grant all privileges on database teslamate to teslamate;" - echo " postgres=# ALTER USER teslamate WITH SUPERUSER;" - echo " postgres=# \\q" - echo "" - echo "To change the username or password make sure to edit:" - echo " * /etc/systemd/system/teslamate.service" - echo " * /var/lib/grafana/conf/provisioning/datasources/teslamate.yml" - echo "" - echo "To have all the grafana plugins run the following:" - echo " # grafana-cli plugins install natel-discrete-panel" - echo " # grafana-cli plugins install grafana-piechart-panel" - echo " # grafana-cli plugins install grafana-worldmap-panel" - echo " # grafana-cli plugins install pr0ps-trackmap-panel" +echo "Now you need to create database and check credentials in config files: + * /etc/teslamate.conf + * /var/lib/grafana/conf/provisioning/datasources/teslamate.yml + +Create the teslamate database: +# psql -U postgres -c \"create database teslamate;\" +# psql -U postgres -c \"create user teslamate with encrypted password 'secret';\" +# psql -U postgres -c \"grant all privileges on database teslamate to teslamate;\" +# psql -U postgres -c \"ALTER USER teslamate WITH SUPERUSER;\" + +To install needed grafana plugins run the following: +# grafana-cli plugins install natel-discrete-panel +# grafana-cli plugins install grafana-piechart-panel +# grafana-cli plugins install grafana-worldmap-panel +# grafana-cli plugins install pr0ps-trackmap-panel" } diff --git a/teslamate.service b/teslamate.service index f043ff277bfa..6d0dd828a003 100644 --- a/teslamate.service +++ b/teslamate.service @@ -5,28 +5,15 @@ After=postgresql.service [Service] Type=simple -# User=username -# Group=groupname - +User=teslamate +Group=teslamate Restart=on-failure RestartSec=5 - -Environment="HOME=/opt/teslamate" -Environment="LANG=en_US.UTF-8" -Environment="LC_CTYPE=en_US.UTF-8" -# Environment="TZ=Europe/Berlin" -Environment="PORT=4000" -Environment="DATABASE_USER=teslamate" -Environment="DATABASE_PASS=secret" -Environment="DATABASE_NAME=teslamate" -Environment="DATABASE_HOST=127.0.0.1" -Environment="MQTT_HOST=127.0.0.1" - -WorkingDirectory=/opt/teslamate - -ExecStartPre=/usr/bin/teslamate eval "TeslaMate.Release.migrate" -ExecStart=/usr/bin/teslamate start -ExecStop=/usr/bin/teslamate stop +EnvironmentFile=/etc/teslamate.conf +WorkingDirectory=/usr/share/webapps/teslamate +ExecStartPre=/usr/share/webapps/teslamate/bin/teslamate eval "TeslaMate.Release.migrate" +ExecStart=/usr/share/webapps/teslamate/bin/teslamate start +ExecStop=/usr/share/webapps/teslamate/bin/teslamate stop [Install] WantedBy=multi-user.target diff --git a/teslamate.sysusers b/teslamate.sysusers new file mode 100644 index 000000000000..7a7dfcbb2dca --- /dev/null +++ b/teslamate.sysusers @@ -0,0 +1 @@ +u teslamate - "TeslaMate" / /sbin/nologin diff --git a/teslamate.tmpfiles b/teslamate.tmpfiles new file mode 100644 index 000000000000..f7a57e8485a0 --- /dev/null +++ b/teslamate.tmpfiles @@ -0,0 +1 @@ +Z /usr/share/webapps/teslamate/lib/tzdata-1.1.1/priv/ 0750 teslamate teslamate - |