Skip to main content

taky

taky - A simple COT server for ATAK

Features (and anti-Features!)

  • Should support multiple ATAK clients simultaneously! You can see them on the map!
  • GeoChats are routed to appropriate groups / UIDs, unless broadcast!
  • SSL support with optional client keys!
  • Some design consideration for XML security!
  • Actually somewhat decent CoT routing uses Marti for other items. If unspecified, packets are considered broadcast.
  • A hacked up XML parser written by someone who barely understands XML!
  • Advanced Pythonic implementation of CoT model, with only 5 hours of combined industry experience in implementing CoT technology!
  • Server shuts down with only one Ctrl+C!
  • Does not require root to run!
  • Thread safety? Why would you need thread safety?
  • Slightly less-than-broken Data Package Server
  • Requires no SQlite / databases! (For now!)
  • Only one version away from having systemd scripts!
  • Tools spit backtraces out instead of giving a nice error message!

Requirements

  • Python 3.7 or greater
  • lxml
  • dateutil
  • flask
  • pyopenssl
  • gunicorn

This application was developed with Python 3.8, and tested with ATAK v4.2.0.4. It is slowly progressing towards a beta state, and should work for playing around.

But, really. Using this is for anything important is probably a very-bad-idea (TM).

Installation

Inside the taky folder, run

$ git clone https://github.com/tkuester/taky
$ cd taky
$ python3 setup.py install

Alternatively, you can use pip!

$ python3 -m pip install taky

Usage

$ taky -h
usage: taky [-h] [-l {debug,info,warning,error,critical}] [-c CFG_FILE] [--version]

Start the taky server

optional arguments:
  -h, --help            show this help message and exit
  -l {debug,info,warning,error,critical}
                        Log verbosity
  -c CFG_FILE           Path to configuration file
  --version             show program's version number and exit

# Run taky on 0.0.0.0:8087
$ taky

More Complicated Setup

While taky can run as a standalone CoT server, there are more advanced features that are available if the server is fully setup. Fortunately, there is a simple tool to make this easy! You don't even need root!

The only thing needed is your public IP address. The rest is configured automatically for your convenience.

$ takyctl setup -h
usage: takyctl setup [-h] [--p12_pw P12_PW] [--host HOSTNAME] [--bind-ip IP] --public-ip PUBLIC_IP
                     [--user USER] [--no-ssl]
                     [path]

positional arguments:
  path                  Optional path for taky install

optional arguments:
  -h, --help            show this help message and exit
  --p12_pw P12_PW       Password for server .p12 [atakatak]
  --host HOSTNAME       Server hostname [devbox]
  --bind-ip IP          Bind Address [0.0.0.0]
  --public-ip PUBLIC_IP
                        Public IP address
  --user USER           User/group for file permissions
  --no-ssl              Disable SSL for the server

$ takyctl setup --public-ip 192.168.1.100 my_install
$ cd my_install
my_install $ taky

# (in another window, we'll start the data package server)
my_install $ taky_dps

Taky will automatically find the config file located in my_install, load the SSL certificates, and start running. You can find user uploaded data packages in my_install/dp-user.

If you are using SSL (highly recommended!), it is simple to generate client certificates in a zip file for the import manager. You can also run this through the CLI tool.

my_install $ takyctl build_client -h
usage: takyctl build_client [-h] [--p12_pw P12_PW] name

positional arguments:
  name             Name for client

optional arguments:
  -h, --help       show this help message and exit
  --p12_pw P12_PW  Password for server .p12 [atakatak]

my_install $ takyctl build_client JENNY

Transferring the .zip file to your device is an exercise left to the reader. (Although, we hope to have this as a feature eventually!)

This "installation" is local, and can be edited to your hearts content. When you are done, you can simply delete the folder and start again.

Metadata

Release files for taky 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taky 0.5.3
File Size Uploaded
taky-0.5.3.tar.gz 26.5 kB Details

Release files / taky-0.5.3.tar.gz

Download URL taky-0.5.3.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
47fdeed3b5529731ea450e04667a24002aa3f97309e3d3c8bef62e567c163f0b
BLAKE2b-256 checksum
How to use checksums
94f4ad059026ed863d903c47e2511da1ad7840ff3c0cdcf72b019e6655569784
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

Release history Release notifications | RSS feed

0.10

1 release file

0.9

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8

1 release file

0.7.1

1 release file

0.7

1 release file

0.6

1 release file

This release

0.5.3 This release

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page