diff options
Diffstat (limited to 'setup/linux/traccar.xml')
-rw-r--r-- | setup/linux/traccar.xml | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/setup/linux/traccar.xml b/setup/linux/traccar.xml new file mode 100644 index 000000000..99b66336a --- /dev/null +++ b/setup/linux/traccar.xml @@ -0,0 +1,286 @@ +<?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.new'>true</entry> + <entry key='web.path'>web</entry> + <entry key='web.mobile'>webm</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.createSchema'> + CREATE TABLE user ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(1024) NOT NULL, + email VARCHAR(256) NOT NULL UNIQUE, + hashedPassword VARCHAR(1024) NOT NULL, + salt VARCHAR(1024) DEFAULT '' NOT NULL, + readonly BOOLEAN DEFAULT false NOT NULL, + admin BOOLEAN DEFAULT false NOT NULL, + map VARCHAR(1024) DEFAULT 'osm' NOT NULL, + language VARCHAR(1024) DEFAULT 'en' NOT NULL, + distanceUnit VARCHAR(1024) DEFAULT 'km' NOT NULL, + speedUnit VARCHAR(1024) DEFAULT 'kmh' NOT NULL, + latitude DOUBLE DEFAULT 0 NOT NULL, + longitude DOUBLE DEFAULT 0 NOT NULL, + zoom INT DEFAULT 0 NOT NULL); + + CREATE TABLE device ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(1024) NOT NULL, + uniqueId VARCHAR(256) NOT NULL UNIQUE, + status VARCHAR(1024), + lastUpdate TIMESTAMP, + positionId INT, + dataId INT); + + CREATE TABLE user_device ( + userId INT NOT NULL, + deviceId INT NOT NULL, + `read` BOOLEAN DEFAULT true NOT NULL, + `write` BOOLEAN DEFAULT true NOT NULL, + FOREIGN KEY (userId) REFERENCES user(id) ON DELETE CASCADE, + FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE); + + CREATE INDEX user_device_user_id ON user_device(userId); + + CREATE TABLE position ( + id INT PRIMARY KEY AUTO_INCREMENT, + protocol VARCHAR(1024), + deviceId INT NOT NULL, + serverTime TIMESTAMP NOT NULL, + deviceTime TIMESTAMP NOT NULL, + fixTime TIMESTAMP NOT NULL, + valid BOOLEAN NOT NULL, + latitude DOUBLE NOT NULL, + longitude DOUBLE NOT NULL, + altitude DOUBLE NOT NULL, + speed DOUBLE NOT NULL, + course DOUBLE NOT NULL, + address VARCHAR(1024), + other VARCHAR(8192) NOT NULL, + FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE); + + CREATE TABLE data ( + id INT PRIMARY KEY AUTO_INCREMENT, + protocol VARCHAR(1024), + deviceId INT NOT NULL, + serverTime TIMESTAMP NOT NULL, + deviceTime TIMESTAMP NOT NULL, + other VARCHAR(8192) NOT NULL, + FOREIGN KEY (deviceId) REFERENCES device(id)); + + ALTER TABLE device ADD + FOREIGN KEY (positionId) REFERENCES `position`(id); + + ALTER TABLE device ADD + FOREIGN KEY (dataId) REFERENCES data(id); + + CREATE TABLE server ( + id INT PRIMARY KEY AUTO_INCREMENT, + registration BOOLEAN NOT NULL, + latitude DOUBLE NOT NULL, + longitude DOUBLE NOT NULL, + zoom INT NOT NULL); + + CREATE TABLE traccar ( + id INT PRIMARY KEY AUTO_INCREMENT); + </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 WHERE id = :id; + </entry> + + <entry key='database.loginUser'> + SELECT * FROM user + WHERE email = :email; + </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 + 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, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, other) + VALUES (:deviceId, NOW(), :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='detector.port'>5000</entry> + <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='mta6can.port'>5029</entry> + <entry key='tlt2h.port'>5030</entry> + <entry key='syrus.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='aplicom.can'>false</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='taip.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> + +</properties> |