PHP Classes
elePHPant
Icontem

Airship barge: Build extensions for the Airship CMS

Recommend this page to a friend!
  Info   View files Example   View files View files (21)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2018-12-19 (11 months ago) RSS 2.0 feedNot yet rated by the usersTotal: 35 All time: 9,725 This week: 337Up
Version License PHP version Categories
airship-barge 1.0MIT/X Consortium ...5PHP 5, Content management
Description Author

This package can be used to build extensions for the Airship CMS.

It works as a command line program that can access a site with the Airship CMS installed and can generate several types of extension for this CMS after the user replies to several questions to configure the type of extension that you want to build.

Currently it can build Cabins, which self-contained applications, Gadgets which can alter the functionality of an existing Cabin or the Airship Engine itself, or Motifs that can alters the appearance of an existing Cabin.

The barge command can assembles a .phar or .zip of your extension that can be manually installed these into Airship.

Innovation Award
PHP Programming Innovation award nominee
January 2019
Number 9
Airship is a CMS system built with great security practices in mind since its design.

It can be extended in several ways with plugins defined by other developers, such as self-contained applications, gadgets which can alter those self-contained applications or the Airship Engine itself, or the the appearance of the pages generated by the CMS.

The package provides a command that makes it easier to start developing Airship extensions just by answering a few questions.

Manuel Lemos
  Performance   Level  
Name: Scott Arciszewski <contact>
Classes: 22 packages by
Country: United States United States
Age: ???
All time rank: 1462201 in United States United States
Week rank: 100 Up8 in United States United States Up
Innovation award
Innovation award
Nominee: 18x

Winner: 1x

 

Details

Barge

A command line interface for developing and distributing Airship cabins, gadgets, and motifs.

How to Install Barge

First, checkout our Git repository.

git checkout https://github.com/paragonie/airship-barge.git

Next, make sure you can execute the barge command.

cd airship-barge
chmod u+x barge

Make sure you install the dependencies via Composer. This will get Halite and our constant-time encoding library installed (both are libraries that barge uses extensively):

composer update

Finally, you'll want to create a symlink in /usr/bin so you can run barge commands by simply typing barge commandgoeshere:

ln -s ./barge /usr/bin/barge

How to Use Barge

Recommended: Create a workspace directory.

cd ~
mkdir barge-workspace
cd barge-workspace

If you don't already have a Supplier account, register one here.

Now you're ready to run your first barge command.

barge login

If this is your first time logging in, you'll need to run barge key twice. (Before the final version, we intend to make this process a lot smoother.)

barge key
# Follow the prompts to generate your master keypair
barge key
# Follow the prompts to generate your signing keypair, which you'll need to sign with your master key

Once your keypairs are generated, their public counterparts are uploaded to the server and synchronized to the entire network in an append-only data structure.

Once your keys are set up, you can begin to build CMS Airship extensions. What do you want to build?

  • A full application that can stand alone from Hull or Bridge: run airship cabin
  • A backend modification to an existing cabin: run airship gadget
  • A frontend modification to an existing cabin: run airship motif

After you follow the prompts, you should have a skeletal project directory waiting to be fleshed out.

Ready to deploy your first version? Okay, first:

barge build

This assembles a .phar or .zip of your extension. You can manually install these into a local Airship to test them out (recommended).

If you're ready to release it, first sign it with your signing key:

barge sign

And then release it:

barge release

If you've followed these steps, your package should be available for install in CMS Airship. If you release an update in this manner, it should be deployed and installed on all of your users' machines automatically (typically within an hour, unless they changed their configuration).

  Files folder image Files  
File Role Description
Files folder imagesrc (5 files, 1 directory)
Accessible without login Plain text file barge Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file SECURITY.md Data Auxiliary data

  Files folder image Files  /  src  
File Role Description
Files folder imageCommands (10 files, 1 directory)
  Accessible without login Plain text file autoload.php Aux. Auxiliary script
  Accessible without login Plain text file barge.php Example Example script
  Accessible without login Plain text file Command.php Class Class source
  Accessible without login Plain text file HTTP.php Class Class source
  Accessible without login Plain text file MetaData.php Class Class source

  Files folder image Files  /  src  /  Commands  
File Role Description
Files folder imageProto (1 file)
  Accessible without login Plain text file Build.php Class Class source
  Accessible without login Plain text file Cabin.php Class Class source
  Accessible without login Plain text file Gadget.php Class Class source
  Accessible without login Plain text file Help.php Class Class source
  Accessible without login Plain text file Key.php Class Class source
  Accessible without login Plain text file Keygen.php Class Class source
  Accessible without login Plain text file Login.php Class Class source
  Accessible without login Plain text file Motif.php Class Class source
  Accessible without login Plain text file Release.php Class Class source
  Accessible without login Plain text file Sign.php Class Class source

  Files folder image Files  /  src  /  Commands  /  Proto  
File Role Description
  Accessible without login Plain text file Init.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:35
This week:0
All time:9,725
This week:337Up