Create Captive Portal Content Loadable

A Captive portal is a web page that displays to newly connected users of a WiFi network before being granted wider access to network resources.

These portals typically present a landing or log-in page which may require authentication, payment, acceptance of an end-user license agreement or other valid credentials that both the host and user agree to adhere by. Airlines, airports and other venues use captive portals to offer free WiFi hot spots for Internet users.

The captive portal is presented to the client and is stored either at the gateway or on a web server hosting the web page. Depending on the feature set of the gateway, the websites or TCP ports can be white listed. This allows the user to not be required to interact with the captive portal to use them. The MAC address of attached clients can also be used to bypass the login process for specified devices.

Note: If creating a portal content loadable for a NEXT system, please use Unity CLM. In addition, Unity CLM should be used to create content loadables for Interactives. The application has built in NBD manifest registration and auto signs certs for NEXT systems.

Captive Content Loadables

To release content on an aircraft, developers can create, release and deliver custom content loadables for captive portals.

Content loadables can be created in any JavaScript programming language, such as Angular and ReactJS, with the Mobile Passenger JavaScript SDK. The loadable requires either an emulator or rack environment for testing.

Requirements

  • Portal Content Loadable Part Number 
  • For additional information on obtaining a content loadable part number, please contact your Panasonic focal.
  • Operating Systems
  • macOS -- versions 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra, 10.13 High Sierra, 10.14 Mojave, 10.15 Catalina, 11.4 Bug Sur, 12.3.1 Monterey
  • Linux Ubuntu -- versions 14.04, 16.04, 18.04, 20.04
  • Linux Fedora -- version 28
  • Portal Content Loadable Script
  • Download MAKELOADPL_VER=03.20.7 script here: make_captive_portal_loadable_v20221026
  • Homebrew Package Management Software
  • Homebrew is used for macOS only
  • Available online on the Homebrew site

Install Software

You can create a custom loadable on a macOS, Ubuntu or Fedora operating system.

macOS Installation

The macOS installation uses Homebrew Package Management Software. Homebrew is a free and open source software package management system that simplifies software installation on macOS.

To begin:

  1. Download Homebrew from https://docs.brew.sh//installation
  2. Install the following:
  • brew install gnu-tar
  • brew install md5sha1sum
  • brew install squashfs
  • brew install wget
  • brew install xmlstarlet
  • brew install cpanm
  • cpan JSON
  1. On the macOS terminal, enter the following:
	xcode-select --install

	ruby -e "\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

		brew install gnu-tar
		brew install md5sha1sum
		brew install squashfs
		brew install wget
		brew install xmlstarlet
		brew install cpanm

		sudo cpan JSON

The macOS installation is complete.

Ubuntu Installation

To begin:

  • On the Ubuntu terminal, run:

sudo dnf install -y squashfs-tools sudo dnf install -y libxml libxml2 sudo dnf install -y perl-XML-Parser sudo dnf install -y xmlstarlet sudo dnf install -y wget

The Ubuntu installation is complete.

Fedora Installation

To begin:

  • On the Fedora terminal, run:

sudo dnf install -y squashfs-tools sudo dnf install -y libxml libxml2 sudo dnf install -y perl-XML-Parser sudo dnf install -y xmlstarlet sudo dnf install -y wget

The Fedora installation is complete.

Extract Make Captive Portal Loadable File

The Make Captive Portal Loadable file must be placed first in your User Home directory. The Make Loadable script does not support file path with spaces.

To begin:

  1. Extract the make_captive_portal_loadable_XXXXX.zip file to macOS, Ubuntu or Fedora.
  2. In the User Home directory, place the make_captive_portal_loadable_vXXXX folder first. The Make Loadable script does not support file path with spaces.

macOS: /Users/${USER}/make_captive_portal_loadable_vXXXX

Example: /Users/user/make_captive_portal_loadable_v20221026

Linux OS: /home/${USER}/make_captive_portal_loadable_vXXXX

Example: /home/user/make_captive_portal_loadable_v20221026

Update Captive Portal Assets

You must update the portal assets, such as HTML, CSS, JavaScript, images and fonts.

To begin:

  1. In the www folder, review and update the portal assets as follows:

└── www ├── README.md    ├── Roboto-Regular.ttf    ├── config.js    ├── images       ├ ├── defaultBackground.png       ├ ├── defaultBackgroundPortrait.jpg ├ ├── error.png    ├ └── logo.png    ├── index.html    ├── main.js    ├── styles.css    └── translations.js

Make Captive Portal Content Loadable

To begin:

  1. In the make_captive_portal_loadable_vXXXX folder, review and update the portal.info
    file as follows:
  • p={PART_NUMBER} -- required
  • f={FOLDER_NAME} -- required to match "Folder Name" in SCMDB for the Part Number
  • v={VERSION_NUMBER} -- required
  1. Specify the make portal content loadable command.

make_loadable.sh

	cd make_captive_portal_loadable_vv20221026
 
	./make_loadable.sh p=00000LLN  f=captive_portal v=01.00.00.1 

Output Loadable tgz File by make_loadable.sh Command

The portal content loadable tgz file is generated under the Loadable folder. Example: ./loadable/K00000LLN_01.00.00.1.tgz