aboutsummaryrefslogtreecommitdiff
path: root/setup/unix/traccar.xml
diff options
context:
space:
mode:
Diffstat (limited to 'setup/unix/traccar.xml')
-rw-r--r--setup/unix/traccar.xml321
1 files changed, 321 insertions, 0 deletions
diff --git a/setup/unix/traccar.xml b/setup/unix/traccar.xml
new file mode 100644
index 000000000..70270b7d1
--- /dev/null
+++ b/setup/unix/traccar.xml
@@ -0,0 +1,321 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
+
+<properties>
+
+ <!-- SERVER CONFIG -->
+
+ <entry key='web.enable'>true</entry>
+ <entry key='web.port'>8082</entry>
+ <entry key='web.path'>/opt/traccar/web</entry>
+
+ <entry key='geocoder.enable'>true</entry>
+ <entry key='geocoder.type'>google</entry>
+
+ <entry key='logger.enable'>true</entry>
+ <entry key='logger.level'>all</entry>
+ <entry key='logger.file'>/opt/traccar/logs/tracker-server.log</entry>
+
+ <!-- DATABASE CONFIG -->
+
+ <entry key='database.driver'>org.h2.Driver</entry>
+ <entry key='database.url'>jdbc:h2:/opt/traccar/data/database</entry>
+ <entry key='database.user'>sa</entry>
+ <entry key='database.password'></entry>
+
+ <entry key='database.checkTable'>traccar</entry>
+
+ <entry key='database.selectSchemaVersion'>
+ SELECT * FROM traccar;
+ </entry>
+
+ <entry key='database.createSchema'>
+ CREATE TABLE "user" (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ name VARCHAR(128) NOT NULL,
+ email VARCHAR(128) NOT NULL UNIQUE,
+ hashedPassword VARCHAR(128) NOT NULL,
+ salt VARCHAR(128) DEFAULT '' NOT NULL,
+ readonly BIT DEFAULT 0 NOT NULL,
+ admin BIT DEFAULT 0 NOT NULL,
+ map VARCHAR(128),
+ language VARCHAR(128),
+ distanceUnit VARCHAR(128),
+ speedUnit VARCHAR(128),
+ latitude FLOAT DEFAULT 0 NOT NULL,
+ longitude FLOAT DEFAULT 0 NOT NULL,
+ zoom INT DEFAULT 0 NOT NULL);
+
+ CREATE TABLE device (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ name VARCHAR(128) NOT NULL,
+ uniqueId VARCHAR(128) NOT NULL UNIQUE,
+ status VARCHAR(128),
+ lastUpdate TIMESTAMP,
+ positionId INT,
+ dataId INT);
+
+ CREATE TABLE user_device (
+ userId INT NOT NULL,
+ deviceId INT NOT NULL,
+ "read" BIT DEFAULT 1 NOT NULL,
+ "write" BIT DEFAULT 1 NOT NULL,
+ FOREIGN KEY (userId) REFERENCES "user" (id) ON DELETE CASCADE,
+ FOREIGN KEY (deviceId) REFERENCES device (id) ON DELETE CASCADE);
+
+ CREATE INDEX user_device_userId ON user_device(userId);
+
+ CREATE TABLE position (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ protocol VARCHAR(128),
+ deviceId INT NOT NULL,
+ serverTime TIMESTAMP NOT NULL,
+ deviceTime TIMESTAMP NOT NULL,
+ fixTime TIMESTAMP NOT NULL,
+ valid BIT NOT NULL,
+ latitude FLOAT NOT NULL,
+ longitude FLOAT NOT NULL,
+ altitude FLOAT NOT NULL,
+ speed FLOAT NOT NULL,
+ course FLOAT NOT NULL,
+ address VARCHAR(512),
+ other VARCHAR(4096) NOT NULL,
+ FOREIGN KEY (deviceId) REFERENCES device (id) ON DELETE CASCADE);
+
+ CREATE INDEX position_deviceId_fixTime ON position (deviceId, fixTime);
+
+ CREATE TABLE data (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ protocol VARCHAR(128),
+ deviceId INT NOT NULL,
+ serverTime TIMESTAMP NOT NULL,
+ deviceTime TIMESTAMP NOT NULL,
+ other VARCHAR(4096) NOT NULL,
+ FOREIGN KEY (deviceId) REFERENCES device (id) ON DELETE CASCADE);
+
+ ALTER TABLE device ADD
+ FOREIGN KEY (positionId) REFERENCES position (id) ON DELETE CASCADE;
+
+ ALTER TABLE device ADD
+ FOREIGN KEY (dataId) REFERENCES data (id) ON DELETE CASCADE;
+
+ CREATE TABLE server (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ registration BIT NOT NULL,
+ map VARCHAR(128),
+ language VARCHAR(128),
+ distanceUnit VARCHAR(128),
+ speedUnit VARCHAR(128),
+ latitude FLOAT DEFAULT 0 NOT NULL,
+ longitude FLOAT DEFAULT 0 NOT NULL,
+ zoom INT DEFAULT 0 NOT NULL);
+
+ CREATE TABLE traccar (
+ version INT DEFAULT 0 NOT NULL);
+
+ INSERT INTO traccar (version) VALUES (301);
+ </entry>
+
+ <entry key='database.selectServers'>
+ SELECT * FROM server;
+ </entry>
+
+ <entry key='database.insertServer'>
+ INSERT INTO server (registration, latitude, longitude, zoom)
+ VALUES (:registration, :latitude, :longitude, :zoom);
+ </entry>
+
+ <entry key='database.updateServer'>
+ UPDATE server SET
+ registration = :registration,
+ map = :map,
+ language = :language,
+ distanceUnit = :distanceUnit,
+ speedUnit = :speedUnit,
+ latitude = :latitude,
+ longitude = :longitude,
+ zoom = :zoom
+ WHERE id = :id;
+ </entry>
+
+ <entry key='database.loginUser'>
+ SELECT * FROM "user"
+ WHERE email = :email;
+ </entry>
+
+ <entry key='database.selectUser'>
+ SELECT * FROM "user"
+ WHERE id = :id;
+ </entry>
+
+ <entry key='database.selectUsersAll'>
+ SELECT * FROM "user";
+ </entry>
+
+ <entry key='database.insertUser'>
+ INSERT INTO "user" (name, email, hashedPassword, salt, admin)
+ VALUES (:name, :email, :hashedPassword, :salt, :admin);
+ </entry>
+
+ <entry key='database.updateUser'>
+ UPDATE "user" SET
+ name = :name,
+ email = :email,
+ admin = :admin,
+ map = :map,
+ language = :language,
+ distanceUnit = :distanceUnit,
+ speedUnit = :speedUnit,
+ latitude = :latitude,
+ longitude = :longitude,
+ zoom = :zoom
+ WHERE id = :id;
+ </entry>
+
+ <entry key='database.updateUserPassword'>
+ UPDATE "user" SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id;
+ </entry>
+
+ <entry key='database.deleteUser'>
+ DELETE FROM "user" WHERE id = :id;
+ </entry>
+
+ <entry key='database.getPermissionsAll'>
+ SELECT userId, deviceId FROM user_device;
+ </entry>
+
+ <entry key='database.selectDevicesAll'>
+ SELECT * FROM device;
+ </entry>
+
+ <entry key='database.selectDevices'>
+ SELECT * FROM device d INNER JOIN user_device ud ON d.id = ud.deviceId WHERE ud.userId = :userId;
+ </entry>
+
+ <entry key='database.insertDevice'>
+ INSERT INTO device (name, uniqueId) VALUES (:name, :uniqueId);
+ </entry>
+
+ <entry key='database.updateDevice'>
+ UPDATE device SET name = :name, uniqueId = :uniqueId WHERE id = :id;
+ </entry>
+
+ <entry key='database.deleteDevice'>
+ DELETE FROM device WHERE id = :id;
+ </entry>
+
+ <entry key='database.linkDevice'>
+ INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId);
+ </entry>
+
+ <entry key='database.selectPositions'>
+ SELECT * FROM position WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to;
+ </entry>
+
+ <entry key='database.insertPosition'>
+ INSERT INTO position (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, other)
+ VALUES (:deviceId, :protocol, CURRENT_TIMESTAMP(), :time, :time, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :other);
+ </entry>
+
+ <entry key='database.selectLatestPositions'>
+ SELECT * FROM position WHERE id IN (SELECT positionId FROM device);
+ </entry>
+
+ <entry key='database.updateLatestPosition'>
+ UPDATE device SET positionId = :id WHERE id = :deviceId;
+ </entry>
+
+ <!-- PROTOCOL CONFIG -->
+
+ <entry key='gps103.port'>5001</entry>
+ <entry key='tk103.port'>5002</entry>
+ <entry key='gl100.port'>5003</entry>
+ <entry key='gl200.port'>5004</entry>
+ <entry key='t55.port'>5005</entry>
+ <entry key='xexun.port'>5006</entry>
+ <entry key='xexun.extended'>false</entry>
+ <entry key='totem.port'>5007</entry>
+ <entry key='enfora.port'>5008</entry>
+ <entry key='meiligao.port'>5009</entry>
+ <entry key='maxon.port'>5010</entry>
+ <entry key='suntech.port'>5011</entry>
+ <entry key='progress.port'>5012</entry>
+ <entry key='h02.port'>5013</entry>
+ <entry key='jt600.port'>5014</entry>
+ <entry key='ev603.port'>5015</entry>
+ <entry key='v680.port'>5016</entry>
+ <entry key='pt502.port'>5017</entry>
+ <entry key='tr20.port'>5018</entry>
+ <entry key='navis.port'>5019</entry>
+ <entry key='meitrack.port'>5020</entry>
+ <entry key='skypatrol.port'>5021</entry>
+ <entry key='gt02.port'>5022</entry>
+ <entry key='gt06.port'>5023</entry>
+ <entry key='megastek.port'>5024</entry>
+ <entry key='navigil.port'>5025</entry>
+ <entry key='gpsgate.port'>5026</entry>
+ <entry key='teltonika.port'>5027</entry>
+ <entry key='mta6.port'>5028</entry>
+ <entry key='tzone.port'>5029</entry>
+ <entry key='tlt2h.port'>5030</entry>
+ <entry key='taip.port'>5031</entry>
+ <entry key='wondex.port'>5032</entry>
+ <entry key='cellocator.port'>5033</entry>
+ <entry key='galileo.port'>5034</entry>
+ <entry key='ywt.port'>5035</entry>
+ <entry key='tk102.port'>5036</entry>
+ <entry key='intellitrac.port'>5037</entry>
+ <entry key='xt7.port'>5038</entry>
+ <entry key='wialon.port'>5039</entry>
+ <entry key='carscop.port'>5040</entry>
+ <entry key='apel.port'>5041</entry>
+ <entry key='manpower.port'>5042</entry>
+ <entry key='globalsat.port'>5043</entry>
+ <entry key='atrack.port'>5044</entry>
+ <entry key='pt3000.port'>5045</entry>
+ <entry key='ruptela.port'>5046</entry>
+ <entry key='topflytech.port'>5047</entry>
+ <entry key='laipac.port'>5048</entry>
+ <entry key='aplicom.port'>5049</entry>
+ <entry key='gotop.port'>5050</entry>
+ <entry key='sanav.port'>5051</entry>
+ <entry key='gator.port'>5052</entry>
+ <entry key='noran.port'>5053</entry>
+ <entry key='m2m.port'>5054</entry>
+ <entry key='osmand.port'>5055</entry>
+ <entry key='easytrack.port'>5056</entry>
+ <entry key='gpsmarker.port'>5057</entry>
+ <entry key='khd.port'>5058</entry>
+ <entry key='piligrim.port'>5059</entry>
+ <entry key='stl060.port'>5060</entry>
+ <entry key='cartrack.port'>5061</entry>
+ <entry key='minifinder.port'>5062</entry>
+ <entry key='haicom.port'>5063</entry>
+ <entry key='eelink.port'>5064</entry>
+ <entry key='box.port'>5065</entry>
+ <entry key='freedom.port'>5066</entry>
+ <entry key='telik.port'>5067</entry>
+ <entry key='trackbox.port'>5068</entry>
+ <entry key='visiontek.port'>5069</entry>
+ <entry key='orion.port'>5070</entry>
+ <entry key='riti.port'>5071</entry>
+ <entry key='ulbotech.port'>5072</entry>
+ <entry key='tramigo.port'>5073</entry>
+ <entry key='tr900.port'>5074</entry>
+ <entry key='ardi01.port'>5075</entry>
+ <entry key='xt013.port'>5076</entry>
+ <entry key='autofon.port'>5077</entry>
+ <entry key='gosafe.port'>5078</entry>
+ <entry key='autofon45.port'>5079</entry>
+ <entry key='bce.port'>5080</entry>
+ <entry key='xirgo.port'>5081</entry>
+ <entry key='calamp.port'>5082</entry>
+ <entry key='mtx.port'>5083</entry>
+ <entry key='tytan.port'>5084</entry>
+ <entry key='avl301.port'>5085</entry>
+ <entry key='castel.port'>5086</entry>
+ <entry key='mxt.port'>5087</entry>
+ <entry key='cityeasy.port'>5088</entry>
+
+</properties>