infra-TAK

(★ 73)

Browser based Team Awareness Kit Infrastructure Management Platform. One-click deployment of TAK Server, Authentik identity provider, and TAK Portal with automated LDAP, SSL, and QR enrollment. Includes CloudTAK, MediaMTX and NodeRED.

File Explorer

  • .gitignore
  • app.py
  • ARCHITECTURE.md
  • CLA.md
  • CONTRIBUTING.md
  • fix-console-after-pull.sh
  • LICENSE
  • mediamtx_ldap_overlay.py
  • README.md
  • requirements.txt
  • reset-console-password.sh
  • selfheal_ip.py
  • start.sh

# Use via CDN

jsDelivr

jsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.

Command Glossary

Commands referenced in this DOCs, explained below.

🔍

docker compose up

View Details ▼

Start and run Docker services defined in a Compose file.

docker compose up

Start all services defined in the docker-compose file:

docker compose up {{[-d|--detach]}}

Start services in the background (detached mode):

docker compose up --build

Start services and rebuild images before starting:

🔍

docker exec

View Details ▼

This command is an alias of `docker container exec`.

tldr docker container exec

View documentation for the original command:

🔍

git checkout

View Details ▼

Checkout a branch or paths to the working tree.

git checkout -b {{branch_name}}

Create and switch to a new branch:

git checkout -b {{branch_name}} {{reference}}

Create and switch to a new branch based on a specific reference (branch, remote/branch, tag are examples of valid references):

git checkout {{branch_name}}

Switch to an existing local branch:

🔍

git clone

View Details ▼

Clone an existing repository.

git clone {{remote_repository_location}} {{path/to/directory}}

Clone an existing repository into a new directory (the default directory is the repository name):

git clone --recursive {{remote_repository_location}}

Clone an existing repository and its submodules:

git clone {{[-n|--no-checkout]}} {{remote_repository_location}}

Clone only the `.git` directory of an existing repository:

🔍

git fetch

View Details ▼

Download objects and refs from a remote repository.

git fetch

Fetch the latest changes from the default remote upstream repository (if set):

git fetch {{remote_name}}

Fetch new branches from a specific remote upstream repository:

git fetch --all

Fetch the latest changes from all remote upstream repositories:

🔍

git pull

View Details ▼

Fetch branch from a remote repository and merge it to local repository.

git pull

Download changes from default remote repository and merge it:

git pull {{[-r|--rebase]}}

Download changes from default remote repository and use fast-forward:

git pull {{remote_name}}

Download changes from a specific remote repository:

🔍

git remote

View Details ▼

Manage set of tracked repositories ("remotes").

git remote {{[-v|--verbose]}}

List existing remotes with their names and URLs:

git remote show {{remote_name}}

Show information about a remote:

git remote add {{remote_name}} {{remote_url}}

Add a remote:

🔍

ldapsearch

View Details ▼

Query an LDAP directory.

ldapsearch {{[-D|--bindDN]}} '{{admin_DN}}' {{[-w|--bindPassword]}} '{{password}}' {{[-h|--hostname]}} {{ldap_host}} {{[-b|--baseDN]}} {{base_ou}} '{{memberOf=group1}}' displayName

Query an LDAP server for all items that are a member of the given group and return the object's displayName value:

ldapsearch {{[-D|--bindDN]}} '{{admin_DN}}' {{[-u|--keyStorePasswordFile]}} '{{password_file}}' {{[-h|--hostname]}} {{ldap_host}} {{[-b|--baseDN]}} {{base_ou}} '{{memberOf=group1}}' displayName

Query an LDAP server with a no-newline password file for all items that are a member of the given group and return the object's displayName value:

ldapsearch {{[-D|--bindDN]}} '{{admin_DN}}' {{[-w|--bindPassword]}} '{{password}}' {{[-h|--hostname]}} {{ldap_host}} {{[-b|--baseDN]}} {{base_ou}} '{{memberOf=group1}}' {{[-z|--sizeLimit]}} 5 displayName

Return 5 items that match the given filter:

🔍

postgres

View Details ▼

Run the PostgreSQL database server.

postgres -p {{5433}}

Start the server on a specific port (defaults to 5432):

postgres -c {{shared_buffers=128MB}}

Set a runtime parameter (short form):

postgres --{{shared-buffers}}={{128MB}}

Set a runtime parameter (long form):

🔍

ssh-add

View Details ▼

Manage loaded SSH keys in the `ssh-agent`.
Ensure that `ssh-agent` is up and running for the keys to be loaded in it.

ssh-add

Add the default SSH keys in `~/.ssh` to the ssh-agent:

ssh-add {{path/to/private_key}}

Add a specific key to the `ssh-agent`:

ssh-add -l

List fingerprints of currently loaded keys:

🔍

ssh

View Details ▼

Secure Shell is a protocol used to securely log onto remote systems.
It can be used for logging or executing commands on a remote server.

ssh {{username}}@{{remote_host}}

Connect to a remote server:

ssh {{username}}@{{remote_host}} -i {{path/to/key_file}}

Connect to a remote server with a specific [i]dentity (private key):

ssh {{username}}@10.0.0.1 -p {{2222}}

Connect to a remote server with IP `10.0.0.1` and using a specific [p]ort (Note: `10.0.0.1` can be shortened to `10.1`):

🔍

apt-get

View Details ▼

Debian and Ubuntu package management utility.
Search for packages using `apt-cache`.
It is recommended to use `apt` when used interactively in Ubuntu versions 16.04 and later.

sudo apt-get update

Update the list of available packages and versions (it's recommended to run this before other `apt-get` commands):

sudo apt-get install {{package}}

Install a package, or update it to the latest available version:

sudo apt-get remove {{package}}

Remove a package:

🔍

apt

View Details ▼

Package manager for Debian-based distributions.
Intended as a user-friendly alternative to `apt-get` for interactive use.
For equivalent commands in other package managers, see <https://wiki.archlinux.org/title/Pacman/Rosetta>.

sudo apt update

Update the list of available packages and versions (recommended before running other `apt` commands):

apt search {{package}}

Search packages by name or description:

apt list {{package}}

Search packages by name only (supports wildcards like `*`):

🔍

dnf

View Details ▼

Package manager for Fedora 41+ and RHEL 10.
For equivalent commands in other package managers, see <https://wiki.archlinux.org/title/Pacman/Rosetta>.

sudo dnf {{[up|upgrade]}}

Upgrade installed packages to the newest available versions:

dnf {{[se|search]}} {{keyword1 keyword2 ...}}

Search packages via keywords:

dnf {{[if|info]}} {{package}}

Display details about a package:

🔍

fuser

View Details ▼

Display process IDs currently using files or sockets.

fuser {{path/to/file_or_directory}}

Find which processes are accessing a file or directory:

fuser {{path/to/file_or_directory}}

Show PIDs of processes accessing a file or directory:

fuser {{[-v|--verbose]}} {{path/to/file_or_directory}}

Show more fields (`USER`, `PID`, `ACCESS`, and `COMMAND`):

🔍

systemctl cat

View Details ▼

Show the full contents of unit files as systemd sees them.

systemctl cat {{unit}}

Show the contents and absolute path of a unit file:

systemctl cat {{unit1 unit2 ...}}

Show the contents of multiple unit files:

systemctl cat {{template@}}

Show the contents of a unit file for a template:

🔍

systemctl is-active

View Details ▼

Check if one or more systemd units are active.

systemctl is-active {{unit}}

Check whether a unit is active:

systemctl is-active {{unit1 unit2 ...}}

Check whether multiple units are active:

systemctl is-active {{unit}} {{[-q|--quiet]}}

Check whether a unit is active without printing the state to `stdout`:

🔍

systemctl restart

View Details ▼

Stop and then start one or more systemd units.
Can be used in place of `systemctl start` on a stopped unit, but `start` is safer so that a running unit isn't accidentally restarted.

systemctl restart {{unit}}

Restart a unit:

systemctl restart {{unit1 unit2 ...}}

Restart more than one unit:

systemctl restart {{unit}} --user

Restart a user unit:

🔍

systemctl status

View Details ▼

Display the status of systemd units.

systemctl status {{unit}}.{{service|timer|socket|target|...}}

Show the status of a systemd unit:

systemctl status --failed

Show the status of failed units:

systemctl status

List all running services:

🔍

systemctl

View Details ▼

Control the systemd system and service manager.
Some subcommands such as `disable`, `status`, `reboot` etc. have their own usage documentation.

systemctl status

Show all running services:

systemctl --failed

List failed units:

systemctl {{start|stop|restart|reload|status}} {{unit}}

Start/Stop/Restart/Reload/Show the status of a service:

🔍

cot

View Details ▼

The Plain-Text Editor for macOS.

cot

Start CotEditor:

cot {{path/to/file1 path/to/file2 ...}}

Open specific files:

cot --new

Open a new blank document:

// repository documentation