mirror of
https://github.com/hassio-addons/addon-traccar.git
synced 2025-05-04 11:01:29 +00:00
✨ Automatically use and discovery MySQL service
This commit is contained in:
parent
e1425bae6b
commit
6d7aaaedee
3 changed files with 56 additions and 0 deletions
|
@ -14,9 +14,11 @@ WORKDIR /opt/traccar
|
|||
# Setup base
|
||||
RUN \
|
||||
apk add --no-cache \
|
||||
mariadb-client=10.4.12-r0 \
|
||||
nginx=1.16.1-r6 \
|
||||
nss=3.48-r0 \
|
||||
openjdk8-jre=8.242.08-r0 \
|
||||
xmlstarlet=1.6.1-r0 \
|
||||
\
|
||||
&& curl -J -L -o /tmp/traccar.zip \
|
||||
"https://github.com/traccar/traccar/releases/download/v4.8/traccar-other-4.8.zip" \
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
"80/tcp": "Web interface (Not required for Ingress)"
|
||||
},
|
||||
"map": ["config:rw", "ssl"],
|
||||
"services": ["mysql:want"],
|
||||
"options": {
|
||||
"ssl": true,
|
||||
"certfile": "fullchain.pem",
|
||||
|
|
53
traccar/rootfs/etc/cont-init.d/mysql.sh
Normal file
53
traccar/rootfs/etc/cont-init.d/mysql.sh
Normal file
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/with-contenv bashio
|
||||
# ==============================================================================
|
||||
# Home Assistant Community Add-on: Traccar
|
||||
# Pre-configures the MySQL clients, if the service is available
|
||||
# ==============================================================================
|
||||
readonly CONFIG="/etc/traccar/hassio.xml"
|
||||
declare host
|
||||
declare password
|
||||
declare port
|
||||
declare username
|
||||
declare url
|
||||
|
||||
if bashio::services.available "mysql"; then
|
||||
host=$(bashio::services "mysql" "host")
|
||||
password=$(bashio::services "mysql" "password")
|
||||
port=$(bashio::services "mysql" "port")
|
||||
username=$(bashio::services "mysql" "username")
|
||||
|
||||
# Create database if not exists
|
||||
echo "CREATE DATABASE IF NOT EXISTS traccar;" \
|
||||
| mysql -h "${host}" -P "${port}" -u "${username}" -p"${password}"
|
||||
|
||||
# Update Traccar XML configuration for database
|
||||
xmlstarlet ed -L -s /properties \
|
||||
-t elem -n entry_placeholder -v "com.mysql.jdbc.Driver" \
|
||||
-i //entry_placeholder -t attr -n "key" -v "database.driver" \
|
||||
-r //entry_placeholder -v entry \
|
||||
"${CONFIG}"
|
||||
|
||||
url="jdbc:mysql://${host}:${port}/traccar?serverTimezone=UTC&useSSL=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode=''"
|
||||
xmlstarlet ed -L -s /properties \
|
||||
-t elem -n entry_placeholder -v "${url}" \
|
||||
-i //entry_placeholder -t attr -n "key" -v "database.url" \
|
||||
-r //entry_placeholder -v entry \
|
||||
"${CONFIG}"
|
||||
|
||||
xmlstarlet ed -L -s /properties \
|
||||
-t elem -n entry_placeholder -v "${username}" \
|
||||
-i //entry_placeholder -t attr -n "key" -v "database.user" \
|
||||
-r //entry_placeholder -v entry \
|
||||
"${CONFIG}"
|
||||
|
||||
xmlstarlet ed -L -s /properties \
|
||||
-t elem -n entry_placeholder -v "${password}" \
|
||||
-i //entry_placeholder -t attr -n "key" -v "database.password" \
|
||||
-r //entry_placeholder -v entry \
|
||||
"${CONFIG}"
|
||||
else
|
||||
bashio::log.warning "Traccar is using the internal H2 default database!"
|
||||
bashio::log.warning "THIS IS NOT RECOMMENDED!!!"
|
||||
bashio::log.warning "Please install the official MariaDB add-on, to ensure"
|
||||
bashio::log.warning "you are using a solid database for Traccar."
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue