summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladislav2024-03-19 14:53:50 +0300
committerVladislav2024-03-19 14:53:50 +0300
commit12a08539a51ce0f851f6199ca13ed02ccbdbd670 (patch)
treee798d17d81c6c87835f2d13e226aa4a586572ee8
parentb15248de8f00f5347a3d339516e8f8a50cafc40e (diff)
downloadaur-12a08539a51ce0f851f6199ca13ed02ccbdbd670.tar.gz
1.28.4
-rw-r--r--.SRCINFO27
-rw-r--r--PKGBUILD70
-rw-r--r--teslamate.conf15
-rw-r--r--teslamate.install34
-rw-r--r--teslamate.service27
-rw-r--r--teslamate.sysusers1
-rw-r--r--teslamate.tmpfiles1
7 files changed, 81 insertions, 94 deletions
diff --git a/.SRCINFO b/.SRCINFO
index df0cad7eaf90..f5e506906b97 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 6142b7b8a7f0..7bd4f4422eea 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 -