mirror of
https://github.com/traccar/traccar.git
synced 2025-01-09 04:07:38 +08:00
298 lines
10 KiB
XML
298 lines
10 KiB
XML
<?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.address'></entry>-->
|
|
<entry key='web.port'>8082</entry>
|
|
<!--<entry key='web.application'>../traccar-web/traccar-web.war</entry>
|
|
<entry key='web.old'>true</entry>-->
|
|
<entry key='web.path'>web</entry>
|
|
<entry key='web.mobile'>webm</entry>
|
|
|
|
<entry key='geocoder.enable'>false</entry>
|
|
<entry key='geocoder.type'>nominatim</entry>
|
|
<entry key='geocoder.url'>http://nominatim.openstreetmap.org/reverse</entry>
|
|
|
|
<!--<entry key='filter.enable'>true</entry>
|
|
<entry key='filter.limit'>3600</entry>
|
|
<entry key='filter.invalid'>true</entry>
|
|
<entry key='filter.zero'>true</entry>
|
|
<entry key='filter.duplicate'>true</entry>
|
|
<entry key='filter.distance'>50</entry>-->
|
|
|
|
<entry key='logger.enable'>true</entry>
|
|
<entry key='logger.level'>all</entry>
|
|
<entry key='logger.file'>target/tracker-server.log</entry>
|
|
|
|
<!-- DATABASE CONFIG -->
|
|
|
|
<!--<entry key='database.driverFile'>hsqldb.jar</entry>-->
|
|
<entry key='database.driver'>org.h2.Driver</entry>
|
|
<entry key='database.url'>jdbc:h2:./target/database</entry>
|
|
<entry key='database.user'>sa</entry>
|
|
<entry key='database.password'></entry>
|
|
<entry key='database.mock'>true</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 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 INDEX position_deviceId_fixTime ON `position`(deviceId, fixTime);
|
|
|
|
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='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='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='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>
|
|
|
|
</properties>
|