Skip to content

airgap-devkit/teams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

airgap-devkit-teams

Author: Nima Shafie

Forkable template for teams to add custom tools to the airgap-devkit ecosystem.

Fork this repo to create your team's tool image. Add your tools, profiles, and config — then wire it into any airgap-devkit-based team image as a submodule.


Quick Start

Step 1 — Fork this repo

Click Fork on GitHub. Name your fork something like my-company-devkit-teams.

Step 2 — Clone your fork

git clone [email protected]:your-org/my-company-devkit-teams.git
cd my-company-devkit-teams

Step 3 — Add your tools

cp -r tools/example-tool/ tools/my-new-tool/
# Edit tools/my-new-tool/devkit.json and tools/my-new-tool/setup.sh

Step 4 — Point airgap-devkit at your tools

airgap-devkit --tools ./tools

Or wire this fork as a submodule in a team image repo (see .github/FORK_INSTRUCTIONS.md for the full setup).


Adding a New Tool

  1. Copy the example tool directory:

    cp -r tools/example-tool/ tools/<your-tool-name>/
  2. Edit tools/<your-tool-name>/devkit.json:

    • Set "id" to match the directory name.
    • Set "name", "description", "version", and "source" (your team name).
    • Set "category" to one of: Toolchains, Build Tools, Languages, Developer Tools, Frameworks, Security, Testing, Custom.
    • List any tool IDs this tool depends on in "dependencies".
    • Set "platforms" to "windows", "linux", or "both".
  3. Edit tools/<your-tool-name>/setup.sh:

    • Fill in SECTION 1 (detect OS, set archive names).
    • Fill in SECTION 2 (detect admin vs. user install, set INSTALL_PREFIX).
    • Fill in SECTION 3 (extract/copy/build your tool into INSTALL_PREFIX).
    • Leave SECTION 4 (write receipt) unchanged.
  4. Syntax-check your script:

    bash -n tools/<your-tool-name>/setup.sh && echo OK
  5. Run a test install:

    bash tools/<your-tool-name>/setup.sh
  6. Commit:

    git add tools/<your-tool-name>/
    git commit -m "feat: add <your-tool-name>"

devkit.json Field Reference

Field Type Required Description
id string Yes Unique ID — must match the directory name
name string Yes Display name shown in the dashboard
description string Yes One-sentence description
version string Yes Semver or date string
source string Yes Your team name — identifies tool origin
category string Yes Dashboard grouping
required bool No true = installed automatically
dependencies list No Tool IDs that must be installed first
install_script string Yes Path to setup.sh relative to devkit.json
uninstall_script string/null No Path to uninstall script, or null
receipt_file string Yes Filename written by setup.sh on success
platforms string Yes "windows", "linux", or "both"
stream_output bool No Stream live logs in the dashboard
docs_url string No Link to README or internal docs
tags list No Search tags for the dashboard filter bar

Adding a New Profile

  1. Copy the example profile:

    cp profiles/example-profile.json profiles/<your-profile-id>.json
  2. Edit the new file:

    • Set "id" to match the filename (without .json).
    • Set "name" and "description".
    • List the tool IDs to install in "tools".
    • Optionally set "category_order" to control dashboard grouping order.
  3. Reference the profile in devkit.config.json if it should be the default:

    { "default_profile": "<your-profile-id>" }
  4. Commit:

    git add profiles/<your-profile-id>.json
    git commit -m "feat: add <your-profile-id> profile"

Using This Repo as a Submodule

The intended deployment model is a team image repo that pulls in this fork alongside the core devkit. See .github/FORK_INSTRUCTIONS.md for the complete setup.

In short — in your team image repo:

git submodule add [email protected]:your-org/my-company-devkit-teams.git tools/team/

Then run airgap-devkit with both tool paths:

airgap-devkit --tools ./tools/default/ --tools ./tools/team/

The "source" field in each devkit.json identifies which fork a tool came from, so tools from the upstream devkit and from your team fork are always distinguishable in the dashboard.


Repository Structure

airgap-devkit-teams/
+-- README.md                    <- you are here
+-- devkit.config.json           <- team-level devkit configuration
+-- .gitignore
|
+-- tools/
|   +-- example-tool/
|       +-- devkit.json          <- fully commented field reference
|       +-- setup.sh             <- install stub with marked sections
|
+-- profiles/
|   +-- example-profile.json    <- example install profile
|
+-- .github/
    +-- FORK_INSTRUCTIONS.md     <- full team image repo setup guide

License

Copyright (c) 2024-present Nima Shafie. All Rights Reserved.

Source-available. See LICENSE for permitted and restricted uses. Commercial licensing available — contact github.com/NimaShafie.

About

Forkable template for teams to create their own custom tool image for airgap-devkit — add your own tools, profiles, and branding then share with your team

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages