diff options
author | Sandy Carter | 2021-09-30 17:37:22 -0400 |
---|---|---|
committer | Sandy Carter | 2021-09-30 17:43:08 -0400 |
commit | ea2bbe0e451552f50c67b7ba6674cee4ccad16a0 (patch) | |
tree | bd9783035ec34dc4bd7b972d3f6c5c378a4ee617 | |
download | aur-ea2bbe0e451552f50c67b7ba6674cee4ccad16a0.tar.gz |
initial package
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 70 | ||||
-rw-r--r-- | teslamate.install | 21 | ||||
-rw-r--r-- | teslamate.service | 32 |
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 |