summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandy Carter2021-09-30 17:37:22 -0400
committerSandy Carter2021-09-30 17:43:08 -0400
commitea2bbe0e451552f50c67b7ba6674cee4ccad16a0 (patch)
treebd9783035ec34dc4bd7b972d3f6c5c378a4ee617
downloadaur-ea2bbe0e451552f50c67b7ba6674cee4ccad16a0.tar.gz
initial package
-rw-r--r--.SRCINFO21
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD70
-rw-r--r--teslamate.install21
-rw-r--r--teslamate.service32
5 files changed, 148 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..2e0af12e5407
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = teslamate
+ pkgdesc = A self-hosted data logger for your Tesla 🚘
+ pkgver = 1.24.1
+ pkgrel = 1
+ url = https://testlamate.org
+ install = teslamate.install
+ arch = any
+ license = MIT
+ makedepends = npm
+ depends = elixir
+ depends = nodejs
+ depends = grafana
+ depends = postgresql
+ source = https://github.com/adriankumpf/teslamate/archive/refs/tags/v1.24.1.tar.gz
+ source = teslamate.service
+ source = teslamate.install
+ sha512sums = 1b9c95e06e4581731bad5b0a48e2b9476548c1c6f71361d03243f0c38401dae27f77d040c4023b508d69d42b7cb2c8309cc1f41383d0f2361a5bd0b6b6a47ca2
+ sha512sums = 92231f298529164d47109cf6d59e6c8ee7bd20ae4a49a30cb5f21b6ba501bb6e66afdadedf86d3a7ab7745deb0c36627cc89c7f197c8f312333c025a6b1c5e5b
+ sha512sums = 9f345a7ac9977b298af7620e75f8585e0d75502c394e165ac7e694baa6342ce0144e663d88c3d1e4af12ae4011afa8ef6dddbb006b4b463d23a1452b6abe79bc
+
+pkgname = teslamate
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..43e40455076c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+src/
+pkg/
+*.pkg.tar.xz
+*.tar.gz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..eba237574031
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,70 @@
+pkgname=teslamate
+pkgver=1.24.1
+pkgrel=1
+pkgdesc="A self-hosted data logger for your Tesla 🚘"
+arch=('any')
+url="https://testlamate.org"
+license=("MIT")
+depends=("elixir" "nodejs" "grafana" "postgresql")
+makedepends=("npm")
+source=("https://github.com/adriankumpf/teslamate/archive/refs/tags/v${pkgver}.tar.gz"
+ "teslamate.service"
+ "teslamate.install")
+sha512sums=('1b9c95e06e4581731bad5b0a48e2b9476548c1c6f71361d03243f0c38401dae27f77d040c4023b508d69d42b7cb2c8309cc1f41383d0f2361a5bd0b6b6a47ca2'
+ '92231f298529164d47109cf6d59e6c8ee7bd20ae4a49a30cb5f21b6ba501bb6e66afdadedf86d3a7ab7745deb0c36627cc89c7f197c8f312333c025a6b1c5e5b'
+ '9f345a7ac9977b298af7620e75f8585e0d75502c394e165ac7e694baa6342ce0144e663d88c3d1e4af12ae4011afa8ef6dddbb006b4b463d23a1452b6abe79bc')
+install=teslamate.install
+
+prepare() {
+ cd ${srcdir}/${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 ${srcdir}/${pkgname}-${pkgver}
+ 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() {
+ cd ${srcdir}/${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
+ 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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/teslamate.install b/teslamate.install
new file mode 100644
index 000000000000..5acc04c92d15
--- /dev/null
+++ b/teslamate.install
@@ -0,0 +1,21 @@
+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"
+}
diff --git a/teslamate.service b/teslamate.service
new file mode 100644
index 000000000000..f043ff277bfa
--- /dev/null
+++ b/teslamate.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=TeslaMate
+After=network.target
+After=postgresql.service
+
+[Service]
+Type=simple
+# User=username
+# Group=groupname
+
+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
+
+[Install]
+WantedBy=multi-user.target