GithubHelp home page GithubHelp logo

heroeslament / freetakhub-installation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freetakteam/freetakhub-installation

0.0 0.0 0.0 96.75 MB

FreeTAKHub-Installation

License: Eclipse Public License 2.0

Shell 24.25% JavaScript 0.66% HCL 1.77% Jinja 73.33%

freetakhub-installation's Introduction

CI

Quick Install (Run On New Ubuntu 22.04 Image)

Use a clean Ubuntu 22.04 image when installing.

Download Ubuntu 22.04

FreeTAKTeam is currently testing on other Operating Systems and distributions.

Zero Touch Deployment

wget -qO - bit.ly/ftszerotouch | sudo bash
Available options:

-h, --help       Print help
-v, --verbose    Print script debug info
-c, --check      Check for compatibility issues while installing
    --core       Install FreeTAKServer, UI, and Web Map
    --branch     Execute Zero Touch from a development branch

Examples

Install core fts components only

wget -qO - bit.ly/ftszerotouch | sudo bash -s -- --core

Display help screen

wget -qO - bit.ly/ftszerotouch | sudo bash -s -- -h

Do compatibility checks and print more output

wget -qO - bit.ly/ftszerotouch | sudo bash -s -- -c -v

Install Specific Components (Advanced)

wget -qO - bit.ly/ftsadvancedinstall | sudo bash
Available options:

-h,   --help               Print help
-v,   --verbose            Print script debug info
-c,   --check              Check for compatibility issues while installing
      --non-interactive    Assume defaults (non-interactive)
      --core               Install FreeTAKServer, UI, and Web Map
      --nodered            Install Node-RED Server
      --video              Install Video Server
      --mumble             Install Murmur VOIP Server and Mumble Client

Examples

Install FTS core components non-interactively (do not prompt for user input).

wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- --core --non-interactive

Do compatibility checks, print more output, and prompt for installing other components.

wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- -c -v

Install video and mumble, but prompt to install for other components.

wget -qO - bit.ly/ftsadvancedinstall | sudo bash -s -- --video --mumble

FreeTAKHub Installation

This script will install and configure these components:

  1. FreeTAKServer (FTS): The core server that interfaces with TAK-enabled clients
  2. FreeTAKServer User Interface (FTS-UI): A web-based user interface.
  3. FreeTAKHub Webmap: A mapping component on the web interface.
  4. Video Server: Handles video streaming.
  5. FreeTAKHub Server: Handles FTS integrations like SALUTE reports & video checking services (checks if videos are running and notifies FTS).
  6. FreeTAKHub Voice Server: Uses Murmur or Mumble VOIP Server for voice chatting.

Zero Touch Deployment Diagram

image

Install FreeTAKHub with Ansible

This repository includes Ansible roles to:

  • create the target nodes.
  • install FTS and additional modules.
  • configure FTS.

Windows Prerequisites

Below is required for Windows machines.

The machine must be running: Windows 10 Version 2004 or higher (Build 19041 or higher) or Windows 11.

For Windows installations:

  1. Install WSL2.

    See: https://docs.microsoft.com/en-us/windows/wsl/install

    See also: https://www.omgubuntu.co.uk/how-to-install-wsl2-on-windows-10

    See also: https://www.sitepoint.com/wsl2/

  2. Install the WSL Ubuntu 20.04 distribution.

    See: https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71

Step 1. Clone the FreeTAKHub-Installation repository

In the console:

sudo apt update

Make sure you have git installed:

sudo apt install -y git

Go to the home directory:

cd ~

Clone the FreeTAKHub-Installation repository:

git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.git

Go to the top-level directory of the FreeTAKHub-Installation repository:

cd FreeTAKHub-Installation

If you have previously cloned the repository, update the repository:

git pull

Step 2. Install Ansible

Automated Ansible Installation

At the top-level directory of the FreeTAKHub-Installation repository, enter:

./scripts/init.sh

Optional (But Recommended!): Activate the Python virtual environment:

activate

To deactivate the Python virtual environment:

deactivate

To learn more about Python virtual environments and why they are a good idea, see:

https://realpython.com/python-virtual-environments-a-primer/

Manual Ansible Installation

The manual installation allows more control.

In the console, enter:

sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository --y --update ppa:ansible/ansible
sudo apt install -y ansible

See: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu

Step 3. Install FreeTAKServer and Components

Go to the top-level directory of the FreeTAKHub-Installation repository:

cd ~/FreeTAKHub-Installation

Run the Ansible playbook to install FreeTAKServer and components:

sudo ansible-playbook install_all.yml

Checking Your Installation

Check FreeTAKServer

Open a web browser to:

http://<YOUR_IP_ADDRESS>:5000/
  • login with your credentials
  • immediately change the password
  • check whether services are OK (blue) image
  • connect a client to the server
  • click on the WEBMAP button
  • confirm the client is connected in the WEBMAP

Check The Video Server

Open a web browser to:

http://<YOUR_IP_ADDRESS>:9997/v1/config/get

Confirm the configuration (which is in json format):

{
  "logLevel": "info",
  "logDestinations": [
    "stdout"
  ],
  "logFile": "rtsp-simple-server.log",
  "readTimeout": "10s",
  "writeTimeout": "10s",
  "readBufferCount": 512,
  "api": true,
  "apiAddress": "<YOUR_IP_ADDRESS>:9997",
  "metrics": false,
  "metricsAddress": "127.0.0.1:9998",
  "pprof": false,
  "pprofAddress": "127.0.0.1:9999",
  "runOnConnect": "",
  "runOnConnectRestart": false,
  "rtspDisable": false,
  "protocols": [
    "multicast",
    "tcp",
    "udp"
  ],
  "encryption": "no",
  "rtspAddress": ":8554",
  "rtspsAddress": ":8555",
  "rtpAddress": ":8000",
  "rtcpAddress": ":8001",
  "multicastIPRange": "224.1.0.0/16",
  "multicastRTPPort": 8002,
  "multicastRTCPPort": 8003,
  "serverKey": "server.key",
  "serverCert": "server.crt",
  "authMethods": [
    "basic",
    "digest"
  ],
  "readBufferSize": 2048,
  "rtmpDisable": false,
  "rtmpAddress": ":1935",
  "hlsDisable": false,
  "hlsAddress": ":8888",
  "hlsAlwaysRemux": false,
  "hlsSegmentCount": 3,
  "hlsSegmentDuration": "1s",
  "hlsAllowOrigin": "*",
  "paths": {
    "~^.*$": {
      "source": "publisher",
      "sourceProtocol": "automatic",
      "sourceAnyPortEnable": false,
      "sourceFingerprint": "",
      "sourceOnDemand": false,
      "sourceOnDemandStartTimeout": "10s",
      "sourceOnDemandCloseAfter": "10s",
      "sourceRedirect": "",
      "disablePublisherOverride": false,
      "fallback": "",
      "publishUser": "",
      "publishPass": "",
      "publishIPs": [],
      "readUser": "",
      "readPass": "",
      "readIPs": [],
      "runOnInit": "",
      "runOnInitRestart": false,
      "runOnDemand": "",
      "runOnDemandRestart": false,
      "runOnDemandStartTimeout": "10s",
      "runOnDemandCloseAfter": "10s",
      "runOnPublish": "",
      "runOnPublishRestart": false,
      "runOnRead": "",
      "runOnReadRestart": false
    }
  }
}

Check the FreeTAKHub Server (or Node-RED Server)

Open a web browser to:

http://<YOUR_IP_ADDRESS>:1880/

Confirm you see a login prompt.

Install on DigitalOcean with Terraform

This installation has only been tested on Ubuntu 20.04.

Other operating systems may work, but are untested.

Step 1. Create admin user

The later executions will require admin privileges.

Create an adminuser first:

sudo adduser adminuser

Add passwordless to adminuser.

First type:

sudo visudo

Then add at the bottom:

adminuser ALL=(ALL) NOPASSWD: ALL

To save and quit in the nano editor:

  1. Press CTRL + O then ENTER to save.
  2. Then press CTRL + X to exit.

Step 2. Download Terraform and Ansible

In the Ubuntu console:

sudo apt update
sudo apt install -y software-properties-common gnupg curl git
sudo add-apt-repository -y --update ppa:ansible/ansible
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt install -y ansible terraform

Step 3. Clone the FreeTAKHub-Installation Git repository

Go to the home directory:

cd ~
git clone https://github.com/FreeTAKTeam/FreeTAKHub-Installation.git

Go to the FreeTAKTeam/FreeTAKHub-Installation directory:

cd FreeTAKTeam/FreeTAKHub-Installation

Step 4. Generate a public/private key pair

For the default, enter (and keep pressing enter):

ssh-keygen

Print out the public key for the next step.

If you did the default, the command will be:

cat ~/.ssh/id_rsa.pub

Step 5. Add your public key to your Digital Ocean project

See: https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/

Step 6. Generate a Digital Ocean Personal Access Token

See: https://docs.digitalocean.com/reference/api/create-personal-access-token/

Step 7. Execute

In the top-level directory of the project, initialize Terraform:

terraform init

Then apply:

terraform apply

You will then be prompted for your DigitalOcean Token and private key path:

var.digitalocean_token
  Enter a value: <DIGITALOCEAN_TOKEN_HERE>

var.private_key_path
  ABSOLUTE path to private key, for example: /home/adminuser/.ssh/id_rsa

  Enter a value: /home/adminuser/.ssh/id_rsa

freetakhub-installation's People

Contributors

brothercorvo avatar guetz avatar heroeslament avatar jonathanagustin avatar jonaugustine avatar logikal avatar mwynkoop01 avatar naman108 avatar pinztrek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.