polaricserver / aprsd Goto Github PK
View Code? Open in Web Editor NEWAPRS daemon for Polaric Server
License: Other
APRS daemon for Polaric Server
License: Other
In-memory search is fast, no problem, but saving/restore of the data can take some time and the data uses some memory. The idea is that if the Database plugin is active, data could be stored in the SQL database.
Some of the properties of point objects could be tags that could be added programmatically, by user or by filter actions. Implement tags on point objects. This could be realised by a full semantic RDF store, but I guess we start with something simpler, e.g. that each object can have a set of textual tags. Maps (name->value) could also be considered.
There should be some rules for tags. They could be prefixed by some domain name, eg. "aprs", "ais", "sar", etc..
Currently, we use an Apache frontend for this and for SSL/TLS. Now, do this in the aprsd. Use a framework that easily can be configured with alternative authentication methods: Basic-auth, forms, oauth2, openid, etc... Consider Pac4j.
Hello
thank you for developing this program.
I tried to install on a RPI B+ v1.2
but it was not possible, because of this error, I suppose it is too old for the required software.
Error occurred during initialization of VM Server VM is only supported on ARMv7+ VFP
raw output apt install . . https://pastebin.com/raw/7r4EUW9A
the RPI B+ v1.2 uname result
Linux raspberrypi-aprs 5.4.51+ #1333 Mon Aug 10 16:38:02 BST 2020 armv6l GNU/Linux
i will try on a RPI 3 B+
:D
I'm suddenly seeing lots of NullPointerExceptions in the log. No changes in the setup, so I'm guessing this is due to some recent data in AIS feed that trigged this.
aprsd_1 | java.lang.NullPointerException
aprsd_1 | at no.polaric.aprsd.TrackerPoint.saveToTrail(TrackerPoint.java:182)
aprsd_1 | at no.polaric.ais.AisChannel.updatePos(AisChannel.java:106)
aprsd_1 | at no.polaric.ais.AisChannel.updatePosExtra(AisChannel.java:116)
aprsd_1 | at no.polaric.ais.AisChannel$1.accept(AisChannel.java:195)
aprsd_1 | at no.polaric.ais.AisChannel$1.accept(AisChannel.java:184)
aprsd_1 | at dk.dma.ais.reader.AisReader.distribute(AisReader.java:218)
aprsd_1 | at dk.dma.ais.reader.AisReader.readLoop(AisReader.java:200)
aprsd_1 | at dk.dma.ais.reader.AisTcpReader.run(AisTcpReader.java:113)
Line 182 in 0e1dbb2
It might be unrelated, but the webapp2 frontend code started failing at the same time:
On a default install, aprds complains about /etc/polaric-aprsd/signs missing.
Directly between users, between users on different servers or APRS messaging. REST API for sending messages or reading the mailbox. Notifications of new messages.
Change class hierarchy to better support other types of position objects than APRS. Some parts of APRS specific classes can be moved to a new generic class. This include functionality like waiter notification, labels, aliases, icon-selection, persistence, expiry, etc.
As described in APRS protocol reference chapter 14. Try to follow recommendations. Alert users using notifications.
Support for run-time changes to config and re-loading config in configurable classes and objects.
For example to hide signs from users that are not logged in.
For adding or updating objects. For deleting objects.
Consider if objects should be owned by users. Maybe at a later stage.
I.e. tags that can only be set or changed by the admin user or system itself. We can also consider if all tags need to be shown to the user or if some tags should be sent over to the client.
Use the pub/sub service to allow server to push notifications to clients. See PolaricServer/webapp2#23
hi im configuring a tnc-pi using serial port.
but get this error
okt. 21 14:19:10 ERROR (TncChannel): [rf0] Serial port /dev/serial0 not found gnu.io.NoSuchPortException at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:269) at no.polaric.aprsd.TncChannel.connect(TncChannel.java:105) at no.polaric.aprsd.TncChannel.run(TncChannel.java:153) at java.base/java.lang.Thread.run(Thread.java:834
the por its up and running , i can acces to tnc-pi usign serial 0
How should the port permissions be configured so that polaric can access the port?
See http://aprs.no/dokuwiki/doku.php?id=xmloverlay.
How could this be improved to make it easier to make and maintain front-ends like polaric-webapp?
It is not exactly a REST API. Should it?
Run-time config. Default parameters are in server.ini. In addition we want to be able to change some parameters at run-time. Such overrides should also be made persistent.
Those are additional build depends for Debian that are necessary to successfully build aprsd (validated on Debian Buster for RPi) :
:)
This would be more efficient and less error prone than blocking ordinary HTTP requests. It should be used for pushing XmlOverlays. See issue posted on webapp: PolaricServer/webapp#12. Websockets could also be used for instant messaging.
We may also consider using JSON instead of XML.
A branch is created. The simple framework supports this.
When server shuts down/restarts, logins are lost. Consider saving them.
Hello,
I've been looking around on the aprs.no site as well as a third-party site (APRS Box) and I'm struggling to find documentation that has more "real world" examples of how to configure Polaric APRS and the corresponding web server.
One very basic thing I haven't been able to find is how to reconfigure the language for the web interface to English. What am I missing here?
Is there any other documentation other than what's on aprs.no and Github that you can share?
Thank you!
Not so much an issue as an enhancement: it would be great to add support for telemetry packets in aprsd, so that telemetry stations can be displayed in the web app. I am planning to do experimental broadcasting of telemetry information my my base station, and would love to see those displayed on Polaric.
Great resource on APRS telemetry - very clear description: https://github.com/wb2osz/direwolf/blob/dev/doc/APRS-Telemetry-Toolkit.pdf
If connection to "parent" fails, we may use an alternative.
For online services we currently access the webserver via an Apache proxy that is configured with SSL/TLS and proper certificates. Consider implementing this in aprsd since we have moved to Jetty. Perhaps not a big issue since we use Apache for mapcache anyway. It may simplify things and making it more secure though.
There is at least one practical problem doing this:
Debian stable doesn't have Java 9, it is available as a backport, but Scala breaks. Scala seems to be updated in Debian Buster (Testing) but there is no backport. The release is estimated to be mid 2019 which in my opinion is far to long to wait!! This is a known problem with Debian releases.
So, is it ok if the next version of Polaric aprsd requires Debian Testing, Unstable, Ubuntu 18 or later?
The following packet is decoded by aprsd as "moving faster than 500km/h" ?
direwolf: [0.3] AE6LA-12>APU25N,N6ZX-3,WIDE1*,WIDE2-1:@062116z3756.87N/12200.49WR236/040/A=000181 Ken from Arnold {UIV32N}<0x0d>
direwolf: Position with time, REC. VEHICLE, UIview 32 bit apps
direwolf: N 37 56.8700, W 122 00.4900, 46 MPH, course 236, alt 181 ft
direwolf: Ken from Arnold {UIV32N}
polaric [rf0] AE6LA-12>APU25N,N6ZX-3_,WIDE1_,WIDE2-1:@062116z3756.87N/12200.49WR236/040/A=000181 Ken from Arnold {UIV32N}
polaric APRS *** Moving faster than 500km/h. ignore.
Objects like balloons (\O) or motocycles (/<) or jogger (/[) have no trail on the map.
Hello,
is it possible that the installation instructions on the wiki are outdated? The key seems invalid and the keyserver acts weird. Could someone take a look?
Some work is done and documented here: http://aprs.no/dokuwiki/doku.php/xmloverlay
There are still some services that could be REST instead.
The old webapp is now decommisioned and the old XML overlay service is now removed. There may be some more code that can be removed - the codebase is somewhat complex, any way of simplifying is useful.
Hi,
According to the wiki the deb repo should be verified using the key with fingerprint 89E7229CFFD59B2F
. I have successfully installed that key in my keychain as described in the wiki.
However, when I try to run apt update
it refuses because it is unable to verify the key AC382CF55FAC3327
. That key signature is not known to keys.openpgp.org, and differs from the one mentioned on the wiki page.
Am I doing something wrong, or did you switch keys for the repo without publishing it to a known keyserver? π
Log output:
#6 0.569 Err:2 http://aprs.no/debian-rep binary-dev/ InRelease
#6 0.569 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AC382CF55FAC3327
#6 0.811 Reading package lists...
#6 1.447 W: GPG error: http://aprs.no/debian-rep binary-dev/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AC382CF55FAC3327
Hei Γyvind π
This bug seems to be related to commit b28d908. The commit message ("postinst fix") indicates that it fixes some other issue related to these files, but does not reference the actual change that required this "fix". I believe I'm experiencing another bug related to what b28d908 fixed.
The installation was working flawlessly with aprsd 2.6.2 and webapp2 1.5.1, so the issue seems to have been introduced in some release after those.
Here is the gist of my output when trying to install polaric-aprsd and polaric-webapp2:
Setting up polaric-webapp2 (1.6) ...
chown: cannot access '/var/lib/polaric/mapcache/*.db': No such file or directory
dpkg: error processing package polaric-webapp2 (--configure):
installed polaric-webapp2 package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.28-10) ...
Errors were encountered while processing:
polaric-webapp2
Any idea what's changed related to these files?
I have a feeling these (missing) files are generated after the first run of aprsd(?), and the installation of webapp2 is failing because it requires aprsd to be started on the system prior to installation. Any way this can be fixed?
Here is my Dockerfile, showing all commands executed:
FROM debian:stable-slim
# Add polaric-server apt repo
RUN apt-get update && apt-get -y install gnupg2 dirmngr
RUN gpg --keyserver pool.sks-keyservers.net --recv-keys 89E7229CFFD59B2F && gpg --export --armor 3E61003E24632585EB3DFE3D89E7229CFFD59B2F | apt-key add -
RUN echo "deb http://aprs.no/debian-rep binary-dev/" >> /etc/apt/sources.list && apt-get update
# Install Java (with hack for slim image)
RUN mkdir -p /usr/share/man/man1
RUN apt-get -y install default-jdk-headless
# Install polaric components
RUN apt-get -y install polaric-aprsd polaric-webapp2 polaric-ais-plugin
The problem is that the version of Scala supported by the current Debian Stable breaks with Java 8 and the version supported by Debian Testing/Unstable has removed the XML coding stuff that we rely on.
The current fix is to force the use of Java 7 compatibility mode when compiling and running.
Maybe linked to telemetry support? The reports below never end up on the Polaric Webapp map, though they are forwarded by aprsd (they show up on aprsdroid):
polaric APRS 03 nov 2015 01:12:09 [rf0] N8QH-9>APOT30,N6ZX-3*,WIDE1*,WIDE2-1:
direwolf APRS Nov 3 01:17:10 aprs direwolf: [0.4] N8QH-9>APOT30,N8QH-9,N6ZX-3,WIDE2*:<0x0a>$ULTW012F00F502A700772765000085A0000102390131041A000000CD<0x0d>
polaric APRS 03 nov 2015 01:17:10 [rf0] N8QH-9>APOT30,N8QH-9*,N6ZX-3*,WIDE2*:
direwolf APRS Nov 3 01:22:10 aprs direwolf: [0.4] N8QH-9>APOT30,N8QH-9,N6ZX-3,WIDE2*:<0x0a>$ULTW012900EF02A600772764000085A00001023B0131041F000000BE<0x0d>
polaric APRS 03 nov 2015 01:22:10 [rf0] N8QH-9>APOT30,N8QH-9*,N6ZX-3*,WIDE2*:
direwolf APRS Nov 3 01:27:08 aprs direwolf: [0.3] N8QH-9>APOT30,N6ZX-3,WIDE1*,WIDE2-1:<0x0a>$ULTW00D2001602A500772763FFFF85A00001023D013104240000008F<0x0d>
polaric APRS 03 nov 2015 01:27:09 [rf0] N8QH-9>APOT30,N6ZX-3*,WIDE1*,WIDE2-1:
direwolf APRS Nov 3 01:27:44 aprs direwolf: [0.3] N8QH-9>APOT30,N6ZX-3,WIDE1*,WIDE2-1:/012741h/;Qr(/QwDY st 13.1V 71F HDOP00.7 SATS16
polaric APRS 03 nov 2015 01:27:44 [rf0] N8QH-9>APOT30,N6ZX-3*,WIDE1*,WIDE2-1:/012741h/;Qr(/QwDY st 13.1V 71F HDOP00.7 SATS16
direwolf APRS Nov 3 01:27:47 aprs direwolf: [0.4] N8QH-9>APOT30,N8QH-9,N6ZX-3,WIDE2*:T#092,132,059,063,041,048,00000000
polaric APRS 03 nov 2015 01:27:48 [rf0] N8QH-9>APOT30,N8QH-9*,N6ZX-3*,WIDE2*:T#092,132,059,063,041,048,00000000
direwolf APRS Nov 3 01:32:10 aprs direwolf: [0.3] N8QH-9>APOT30,N8QH-9,N6ZX-3,WIDE2*:<0x0a>$ULTW00BD002202A300772763FFFF85A00001023D0131042900000080<0x0d>
polaric APRS 03 nov 2015 01:32:10 [rf0] N8QH-9>APOT30,N8QH-9_,N6ZX-3_,WIDE2*:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.