diff --git a/.gitignore b/.gitignore
index 3d96988028..cf780607a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,4 @@ zarf-sbom/
test-*.txt
__debug_bin
docs-website/static/zarf.schema.json
+docs-hugo
diff --git a/Makefile b/Makefile
index 46512ffc7e..5162c102bd 100644
--- a/Makefile
+++ b/Makefile
@@ -227,3 +227,9 @@ cve-report: ## Create a CVE report for the current project (must `brew install g
lint-go: ## Run revive to lint the go code (must `brew install revive` first)
revive -config revive.toml -exclude src/cmd/viper.go -formatter stylish ./src/...
+
+build-website:
+ find . -type d -empty -delete
+ # make docs-and-schema
+ cd docs-website-new && hugodocs && npm start
+
diff --git a/docs-website-new/.editorconfig b/docs-website-new/.editorconfig
new file mode 100644
index 0000000000..95d2da8a3e
--- /dev/null
+++ b/docs-website-new/.editorconfig
@@ -0,0 +1,27 @@
+# Editor configuration, see https://editorconfig.org
+
+root = true
+
+# All files
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+# Allow trailing spaces in md as that is the syntax for a newline
+[*.md]
+trim_trailing_whitespace = false
+
+# 4 space indentation
+[*.js]
+indent_style = space
+indent_size = 2
+
+[*.json]
+indent_style = space
+indent_size = 2
+
+[*.yml, *.yaml]
+indent_style = space
+indent_size = 2
diff --git a/docs-website-new/.gitignore b/docs-website-new/.gitignore
new file mode 100644
index 0000000000..403cc24cf6
--- /dev/null
+++ b/docs-website-new/.gitignore
@@ -0,0 +1,12 @@
+.idea/
+.history/
+public/
+resources/
+.DS_Store
+node_modules/
+.hugo_build.lock
+!data/
+!assets/
+!zarf/
+data/zarf_schema.json
+static/includes
diff --git a/docs-website-new/.hugo-docs.yaml b/docs-website-new/.hugo-docs.yaml
new file mode 100644
index 0000000000..58c2ae05fd
--- /dev/null
+++ b/docs-website-new/.hugo-docs.yaml
@@ -0,0 +1,11 @@
+mounts:
+ # Convert the docs folder to Hugo format
+ - source: "../docs"
+ docsRoot: "0-zarf-overview.md"
+ rootTitle: "Documentation"
+ target: "../docs-hugo"
+ ignores: [".templates"]
+
+ # Convert README.md files to be usable by Hugo
+ - source: "../examples"
+ target: "../docs-hugo/docs"
diff --git a/docs-website-new/.linkinator.config.json b/docs-website-new/.linkinator.config.json
new file mode 100644
index 0000000000..1e8cc7ca21
--- /dev/null
+++ b/docs-website-new/.linkinator.config.json
@@ -0,0 +1,8 @@
+{
+ "recurse": true,
+ "skip": "^(https://example.com)",
+ "verbosity": "error",
+ "timeout": 0,
+ "markdown": true,
+ "directoryListing": true
+}
diff --git a/docs-website-new/.markdownlint.json b/docs-website-new/.markdownlint.json
new file mode 100644
index 0000000000..721182d361
--- /dev/null
+++ b/docs-website-new/.markdownlint.json
@@ -0,0 +1,6 @@
+{
+ "default": true,
+ "MD033": false,
+ "MD013": false,
+ "MD036": false
+}
diff --git a/docs-website-new/.prettierignore b/docs-website-new/.prettierignore
new file mode 100644
index 0000000000..3c169340c2
--- /dev/null
+++ b/docs-website-new/.prettierignore
@@ -0,0 +1,12 @@
+public/
+node_modules/
+.cache
+.history
+dist
+coverage
+docs/app
+__mocks__
+userguide/
+.release-please-manifest.json
+CHANGELOG.md
+.vscode/
diff --git a/docs-website-new/.prettierrc b/docs-website-new/.prettierrc
new file mode 100644
index 0000000000..b111466f59
--- /dev/null
+++ b/docs-website-new/.prettierrc
@@ -0,0 +1,19 @@
+{
+ "printWidth": 120,
+ "proseWrap": "always",
+ "tabWidth": 2,
+ "semi": false,
+ "singleQuote": true,
+ "trailingComma": "all",
+ "bracketSpacing": true,
+ "arrowParens": "avoid",
+ "goTemplateBracketSpacing": true,
+ "overrides": [
+ {
+ "files": ["*.html"],
+ "options": {
+ "parser": "go-template"
+ }
+ }
+ ]
+}
diff --git a/docs-website-new/LICENSE b/docs-website-new/LICENSE
new file mode 100644
index 0000000000..1bf24df1d6
--- /dev/null
+++ b/docs-website-new/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [2023] [Defense Unicorns]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/docs-website-new/README.md b/docs-website-new/README.md
new file mode 100644
index 0000000000..04298373a7
--- /dev/null
+++ b/docs-website-new/README.md
@@ -0,0 +1,32 @@
+# Zarf Hugo Doc Site
+
+This site is built using the [Defense Unicorns](https://github.com/defenseunicorns/defense-unicorns-hugo-theme) theme
+for Hugo
+
+## Contributing content
+
+Content is created using standard markdown with [frontmatter](https://main--starlit-valkyrie-7f1dd9.netlify.app/docs/adding-content/content/#page-frontmatter) to control page order, title, menu title, etc. More rich
+user interactions can be implemented using the [shortcodes from the theme](https://main--starlit-valkyrie-7f1dd9.netlify.app/docs/adding-content/shortcodes/) or by creating local shortcodes for
+specialized interactions.
+
+## Converting documents
+
+The current documentation is formatted and structured for Docusaurus. In addition, the auto-generated docs are built
+with that format. The `setup-docs.sh` script is run by `npm start` to copy some example files to reachable locations, convert all of the existing
+documentation, and move the Docusaurus documentation to a backup folder pending deletion. Once the conversion
+meets expectations, the old documentation will be removed and cleanup will begin.
+
+### Post Conversion TODOs
+
+- Modify the API documentation generator to create documents with the correct frontmatter and shortcodes
+- Consolidate all scripts used for generating automated docs to simplify maintenance.
+
+## Running Locally
+
+To run the site for local development:
+
+```bash
+npm start
+```
+
+Then navigate to [http://localhost:1313/](http://localhost:1313/)
diff --git a/docs-website-new/_index.md b/docs-website-new/_index.md
new file mode 100755
index 0000000000..758a15d680
--- /dev/null
+++ b/docs-website-new/_index.md
@@ -0,0 +1,10 @@
+---
+title: Defense Unicorns Docs Template
+linkTitle: Documentation
+menu: {main: {weight: 20}}
+---
+
+This is a blank template for creating documentation sites. This template uses the [Defense Unicorns Hugo
+theme](https://github.com/defenseunicorns/defense-unicorns-hugo-theme). See the [user
+guide](https://github.com/defenseunicorns/defense-unicorns-hugo-theme/tree/main/userguide) in the theme for more
+configuration options.
diff --git a/docs-website-new/archetypes/default.md b/docs-website-new/archetypes/default.md
new file mode 100644
index 0000000000..00e77bd79b
--- /dev/null
+++ b/docs-website-new/archetypes/default.md
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
diff --git a/docs-website-new/assets/img/zarf-logo.svg b/docs-website-new/assets/img/zarf-logo.svg
new file mode 100644
index 0000000000..00ede73db5
--- /dev/null
+++ b/docs-website-new/assets/img/zarf-logo.svg
@@ -0,0 +1,106 @@
+
diff --git a/docs-website-new/assets/scss/_variables_project.scss b/docs-website-new/assets/scss/_variables_project.scss
new file mode 100644
index 0000000000..1d1e641216
--- /dev/null
+++ b/docs-website-new/assets/scss/_variables_project.scss
@@ -0,0 +1,20 @@
+// start table overrides
+$uui-primary: #e0e0e0;
+$uui-secondary: #68c4ff;
+$uui-background: #0a0e2e;
+$uui-divider: rgba(255, 255, 255, 0.12);
+
+$table-color: $uui-primary !default;
+$table-bg: $uui-background !default;
+$table-accent-bg: transparent !default;
+$table-border-factor: 0.1 !default;
+$table-border-color: $uui-divider !default;
+$table-striped-order: odd !default;
+$table-striped-columns-order: even !default;
+$table-striped-color: $table-color !default;
+$table-striped-bg-factor: 0.08 !default;
+$table-striped-bg: rgba($uui-primary, $table-striped-bg-factor) !default;
+$table-group-separator-color: $uui-divider !default;
+$table-caption-color: $uui-secondary !default;
+
+// end table overrides
diff --git a/docs-website-new/copy_data.sh b/docs-website-new/copy_data.sh
new file mode 100755
index 0000000000..a6e3f8dda3
--- /dev/null
+++ b/docs-website-new/copy_data.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+cp ../zarf.schema.json data/zarf_schema.json
+
+
+includePath="static/includes"
+imagePath="assets/img"
+mkdir -p ${includePath}
+cp ../CONTRIBUTING.md ${includePath}/CONTRIBUTING.md
+cp ../docs/.images/architecture.drawio.svg ${includePath}/architecture.drawio.svg
diff --git a/docs-website-new/data/zarf_schema.json b/docs-website-new/data/zarf_schema.json
new file mode 100644
index 0000000000..fa97af3d7f
--- /dev/null
+++ b/docs-website-new/data/zarf_schema.json
@@ -0,0 +1,1033 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfPackage",
+ "definitions": {
+ "BigBang": {
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "The version of Big Bang to use"
+ },
+ "repo": {
+ "type": "string",
+ "description": "Override repo to pull Big Bang from instead of Repo One"
+ },
+ "valuesFiles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "The list of values files to pass to Big Bang; these will be merged together"
+ },
+ "skipFlux": {
+ "type": "boolean",
+ "description": "Whether to skip deploying flux; Defaults to false"
+ },
+ "fluxPatchFiles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Optional paths to Flux kustomize strategic merge patch files"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "DeprecatedZarfComponentScripts": {
+ "properties": {
+ "showOutput": {
+ "type": "boolean",
+ "description": "Show the output of the script during package deployment"
+ },
+ "timeoutSeconds": {
+ "type": "integer",
+ "description": "Timeout in seconds for the script"
+ },
+ "retry": {
+ "type": "boolean",
+ "description": "Retry the script if it fails"
+ },
+ "prepare": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Scripts to run before the component is added during package create"
+ },
+ "before": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Scripts to run before the component is deployed"
+ },
+ "after": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Scripts to run after the component successfully deploys"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfBuildData": {
+ "required": [
+ "terminal",
+ "user",
+ "architecture",
+ "timestamp",
+ "version",
+ "migrations",
+ "differential",
+ "registryOverrides"
+ ],
+ "properties": {
+ "terminal": {
+ "type": "string",
+ "description": "The machine name that created this package"
+ },
+ "user": {
+ "type": "string",
+ "description": "The username who created this package"
+ },
+ "architecture": {
+ "type": "string",
+ "description": "The architecture this package was created on"
+ },
+ "timestamp": {
+ "type": "string",
+ "description": "The timestamp when this package was created"
+ },
+ "version": {
+ "type": "string",
+ "description": "The version of Zarf used to build this package"
+ },
+ "migrations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Any migrations that have been run on this package"
+ },
+ "differential": {
+ "type": "boolean",
+ "description": "Whether this package was created with differential components"
+ },
+ "registryOverrides": {
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "description": "Any registry domains that were overridden on package create when pulling images"
+ },
+ "differentialMissing": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of components that were not included in this package due to differential packaging"
+ },
+ "OCIImportedComponents": {
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "description": "Map of components that were imported via OCI. The keys are OCI Package URLs and values are the component names"
+ },
+ "lastNonBreakingVersion": {
+ "type": "string",
+ "description": "The minimum version of Zarf that does not have breaking package structure changes"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfChart": {
+ "required": [
+ "name",
+ "version",
+ "namespace"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the chart to deploy; this should be the name of the chart as it is installed in the helm repo"
+ },
+ "releaseName": {
+ "type": "string",
+ "description": "The name of the release to create; defaults to the name of the chart"
+ },
+ "url": {
+ "type": "string",
+ "description": "The URL of the OCI registry, chart repository, or git repo where the helm chart is stored",
+ "examples": [
+ "OCI registry: oci://ghcr.io/stefanprodan/charts/podinfo",
+ "helm chart repo: https://stefanprodan.github.io/podinfo",
+ "git repo: https://github.com/stefanprodan/podinfo"
+ ]
+ },
+ "version": {
+ "type": "string",
+ "description": "The version of the chart to deploy; for git-based charts this is also the tag of the git repo"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "The namespace to deploy the chart to"
+ },
+ "valuesFiles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of local values file paths or remote URLs to include in the package; these will be merged together"
+ },
+ "gitPath": {
+ "type": "string",
+ "description": "The path to the chart in the repo if using a git repo instead of a helm repo",
+ "examples": [
+ "charts/your-chart"
+ ]
+ },
+ "localPath": {
+ "type": "string",
+ "description": "The path to the chart folder"
+ },
+ "noWait": {
+ "type": "boolean",
+ "description": "Whether to not wait for chart resources to be ready before continuing"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "oneOf": [
+ {
+ "required": [
+ "url"
+ ],
+ "title": "url"
+ },
+ {
+ "required": [
+ "localPath"
+ ],
+ "title": "localPath"
+ }
+ ]
+ },
+ "ZarfComponent": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "pattern": "^[a-z0-9\\-]+$",
+ "type": "string",
+ "description": "The name of the component"
+ },
+ "description": {
+ "type": "string",
+ "description": "Message to include during package deploy describing the purpose of this component"
+ },
+ "default": {
+ "type": "boolean",
+ "description": "Determines the default Y/N state for installing this component on package deploy"
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Do not prompt user to install this component"
+ },
+ "only": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentOnlyTarget",
+ "description": "Filter when this component is included in package creation or deployment"
+ },
+ "group": {
+ "type": "string",
+ "description": "Create a user selector field based on all components in the same group"
+ },
+ "cosignKeyPath": {
+ "type": "string",
+ "description": "[Deprecated] Specify a path to a public key to validate signed online resources"
+ },
+ "import": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentImport",
+ "description": "Import a component from another Zarf package"
+ },
+ "scripts": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/DeprecatedZarfComponentScripts",
+ "description": "[Deprecated] (replaced by actions) Custom commands to run before or after package deployment"
+ },
+ "files": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfFile"
+ },
+ "type": "array",
+ "description": "Files or folders to place on disk during package deployment"
+ },
+ "charts": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfChart"
+ },
+ "type": "array",
+ "description": "Helm charts to install during package deploy"
+ },
+ "manifests": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfManifest"
+ },
+ "type": "array",
+ "description": "Kubernetes manifests to be included in a generated Helm chart on package deploy"
+ },
+ "images": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of OCI images to include in the package"
+ },
+ "repos": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of git repos to include in the package"
+ },
+ "dataInjections": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfDataInjection"
+ },
+ "type": "array",
+ "description": "Datasets to inject into a container in the target cluster"
+ },
+ "extensions": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentExtensions",
+ "description": "Extend component functionality with additional features"
+ },
+ "actions": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActions",
+ "description": "Custom commands to run at various stages of a package lifecycle"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentAction": {
+ "properties": {
+ "mute": {
+ "type": "boolean",
+ "description": "Hide the output of the command during package deployment (default false)"
+ },
+ "maxTotalSeconds": {
+ "type": "integer",
+ "description": "Timeout in seconds for the command (default to 0"
+ },
+ "maxRetries": {
+ "type": "integer",
+ "description": "Retry the command if it fails up to given number of times (default 0)"
+ },
+ "dir": {
+ "type": "string",
+ "description": "The working directory to run the command in (default is CWD)"
+ },
+ "env": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Additional environment variables to set for the command"
+ },
+ "cmd": {
+ "type": "string",
+ "description": "The command to run. Must specify either cmd or wait for the action to do anything."
+ },
+ "shell": {
+ "$ref": "#/definitions/ZarfComponentActionShell",
+ "description": "(cmd only) Indicates a preference for a shell for the provided cmd to be executed in on supported operating systems"
+ },
+ "setVariable": {
+ "pattern": "^[A-Z0-9_]+$",
+ "type": "string",
+ "description": "[Deprecated] (replaced by setVariables) (onDeploy/cmd only) The name of a variable to update with the output of the command. This variable will be available to all remaining actions and components in the package."
+ },
+ "setVariables": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionSetVariable"
+ },
+ "type": "array",
+ "description": "(onDeploy/cmd only) An array of variables to update with the output of the command. These variables will be available to all remaining actions and components in the package."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the action to be displayed during package execution instead of the command"
+ },
+ "wait": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionWait",
+ "description": "Wait for a condition to be met before continuing. Must specify either cmd or wait for the action. See the 'zarf tools wait-for' command for more info."
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionDefaults": {
+ "properties": {
+ "mute": {
+ "type": "boolean",
+ "description": "Hide the output of commands during execution (default false)"
+ },
+ "maxTotalSeconds": {
+ "type": "integer",
+ "description": "Default timeout in seconds for commands (default to 0"
+ },
+ "maxRetries": {
+ "type": "integer",
+ "description": "Retry commands given number of times if they fail (default 0)"
+ },
+ "dir": {
+ "type": "string",
+ "description": "Working directory for commands (default CWD)"
+ },
+ "env": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Additional environment variables for commands"
+ },
+ "shell": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionShell",
+ "description": "(cmd only) Indicates a preference for a shell for the provided cmd to be executed in on supported operating systems"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionSet": {
+ "properties": {
+ "defaults": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionDefaults",
+ "description": "Default configuration for all actions in this set"
+ },
+ "before": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentAction"
+ },
+ "type": "array",
+ "description": "Actions to run at the start of an operation"
+ },
+ "after": {
+ "items": {
+ "$ref": "#/definitions/ZarfComponentAction"
+ },
+ "type": "array",
+ "description": "Actions to run at the end of an operation"
+ },
+ "onSuccess": {
+ "items": {
+ "$ref": "#/definitions/ZarfComponentAction"
+ },
+ "type": "array",
+ "description": "Actions to run if all operations succeed"
+ },
+ "onFailure": {
+ "items": {
+ "$ref": "#/definitions/ZarfComponentAction"
+ },
+ "type": "array",
+ "description": "Actions to run if all operations fail"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionSetVariable": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "pattern": "^[A-Z0-9_]+$",
+ "type": "string",
+ "description": "The name to be used for the variable"
+ },
+ "sensitive": {
+ "type": "boolean",
+ "description": "Whether to mark this variable as sensitive to not print it in the Zarf log"
+ },
+ "autoIndent": {
+ "type": "boolean",
+ "description": "Whether to automatically indent the variable's value (if multiline) when templating. Based on the number of chars before the start of ###ZARF_VAR_."
+ },
+ "type": {
+ "enum": [
+ "raw",
+ "file"
+ ],
+ "type": "string",
+ "description": "Changes the handling of a variable to load contents differently (i.e. from a file rather than as a raw variable - templated files should be kept below 1 MiB)"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionShell": {
+ "properties": {
+ "windows": {
+ "type": "string",
+ "description": "(default 'powershell') Indicates a preference for the shell to use on Windows systems (note that choosing 'cmd' will turn off migrations like touch -\u003e New-Item)",
+ "examples": [
+ "powershell",
+ "cmd",
+ "pwsh",
+ "sh",
+ "bash",
+ "gsh"
+ ]
+ },
+ "linux": {
+ "type": "string",
+ "description": "(default 'sh') Indicates a preference for the shell to use on Linux systems",
+ "examples": [
+ "sh",
+ "bash",
+ "fish",
+ "zsh",
+ "pwsh"
+ ]
+ },
+ "darwin": {
+ "type": "string",
+ "description": "(default 'sh') Indicates a preference for the shell to use on macOS systems",
+ "examples": [
+ "sh",
+ "bash",
+ "fish",
+ "zsh",
+ "pwsh"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionWait": {
+ "properties": {
+ "cluster": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionWaitCluster",
+ "description": "Wait for a condition to be met in the cluster before continuing. Only one of cluster or network can be specified."
+ },
+ "network": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionWaitNetwork",
+ "description": "Wait for a condition to be met on the network before continuing. Only one of cluster or network can be specified."
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionWaitCluster": {
+ "required": [
+ "kind",
+ "name"
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of resource to wait for",
+ "examples": [
+ "Pod",
+ "Deployment)"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource or selector to wait for",
+ "examples": [
+ "podinfo",
+ "app\u0026#61;podinfo"
+ ]
+ },
+ "namespace": {
+ "type": "string",
+ "description": "The namespace of the resource to wait for"
+ },
+ "condition": {
+ "type": "string",
+ "description": "The condition or jsonpath state to wait for; defaults to exist",
+ "examples": [
+ "Ready",
+ "Available"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActionWaitNetwork": {
+ "required": [
+ "protocol",
+ "address"
+ ],
+ "properties": {
+ "protocol": {
+ "enum": [
+ "tcp",
+ "http",
+ "https"
+ ],
+ "type": "string",
+ "description": "The protocol to wait for"
+ },
+ "address": {
+ "type": "string",
+ "description": "The address to wait for",
+ "examples": [
+ "localhost:8080",
+ "1.1.1.1"
+ ]
+ },
+ "code": {
+ "type": "integer",
+ "description": "The HTTP status code to wait for if using http or https",
+ "examples": [
+ 200,
+ 404
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentActions": {
+ "properties": {
+ "onCreate": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentActionSet",
+ "description": "Actions to run during package creation"
+ },
+ "onDeploy": {
+ "$ref": "#/definitions/ZarfComponentActionSet",
+ "description": "Actions to run during package deployment"
+ },
+ "onRemove": {
+ "$ref": "#/definitions/ZarfComponentActionSet",
+ "description": "Actions to run during package removal"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentExtensions": {
+ "properties": {
+ "bigbang": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/BigBang",
+ "description": "Configurations for installing Big Bang and Flux in the cluster"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentImport": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the component to import from the referenced zarf.yaml"
+ },
+ "path": {
+ "pattern": "^(?!.*###ZARF_PKG_TMPL_).*$",
+ "type": "string",
+ "description": "The relative path to a directory containing a zarf.yaml to import from"
+ },
+ "url": {
+ "pattern": "^oci://(?!.*###ZARF_PKG_TMPL_).*$",
+ "type": "string",
+ "description": "[beta] The URL to a Zarf package to import via OCI"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentOnlyCluster": {
+ "properties": {
+ "architecture": {
+ "enum": [
+ "amd64",
+ "arm64"
+ ],
+ "type": "string",
+ "description": "Only create and deploy to clusters of the given architecture"
+ },
+ "distros": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "A list of kubernetes distros this package works with (Reserved for future use)"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfComponentOnlyTarget": {
+ "properties": {
+ "localOS": {
+ "enum": [
+ "linux",
+ "darwin",
+ "windows"
+ ],
+ "type": "string",
+ "description": "Only deploy component to specified OS"
+ },
+ "cluster": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponentOnlyCluster",
+ "description": "Only deploy component to specified clusters"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfContainerTarget": {
+ "required": [
+ "namespace",
+ "selector",
+ "container",
+ "path"
+ ],
+ "properties": {
+ "namespace": {
+ "type": "string",
+ "description": "The namespace to target for data injection"
+ },
+ "selector": {
+ "type": "string",
+ "description": "The K8s selector to target for data injection",
+ "examples": [
+ "app\u0026#61;data-injection"
+ ]
+ },
+ "container": {
+ "type": "string",
+ "description": "The container name to target for data injection"
+ },
+ "path": {
+ "type": "string",
+ "description": "The path within the container to copy the data into"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfDataInjection": {
+ "required": [
+ "source",
+ "target"
+ ],
+ "properties": {
+ "source": {
+ "type": "string",
+ "description": "Either a path to a local folder/file or a remote URL of a file to inject into the given target pod + container"
+ },
+ "target": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfContainerTarget",
+ "description": "The target pod + container to inject the data into"
+ },
+ "compress": {
+ "type": "boolean",
+ "description": "Compress the data before transmitting using gzip. Note: this requires support for tar/gzip locally and in the target image."
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfFile": {
+ "required": [
+ "source",
+ "target"
+ ],
+ "properties": {
+ "source": {
+ "type": "string",
+ "description": "Local folder or file path or remote URL to pull into the package"
+ },
+ "shasum": {
+ "type": "string",
+ "description": "(files only) Optional SHA256 checksum of the file"
+ },
+ "target": {
+ "type": "string",
+ "description": "The absolute or relative path where the file or folder should be copied to during package deploy"
+ },
+ "executable": {
+ "type": "boolean",
+ "description": "(files only) Determines if the file should be made executable during package deploy"
+ },
+ "symlinks": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of symlinks to create during package deploy"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfManifest": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A name to give this collection of manifests; this will become the name of the dynamically-created helm chart"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "The namespace to deploy the manifests to"
+ },
+ "files": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of local K8s YAML files or remote URLs to deploy (in order)"
+ },
+ "kustomizeAllowAnyDirectory": {
+ "type": "boolean",
+ "description": "Allow traversing directory above the current directory if needed for kustomization"
+ },
+ "kustomizations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "List of local kustomization paths or remote URLs to include in the package"
+ },
+ "noWait": {
+ "type": "boolean",
+ "description": "Whether to not wait for manifest resources to be ready before continuing"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfMetadata": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "pattern": "^[a-z0-9\\-]+$",
+ "type": "string",
+ "description": "Name to identify this Zarf package"
+ },
+ "description": {
+ "type": "string",
+ "description": "Additional information about this package"
+ },
+ "version": {
+ "type": "string",
+ "description": "Generic string set by a package author to track the package version (Note: ZarfInitConfigs will always be versioned to the CLIVersion they were created with)"
+ },
+ "url": {
+ "type": "string",
+ "description": "Link to package information when online"
+ },
+ "image": {
+ "type": "string",
+ "description": "An image URL to embed in this package (Reserved for future use in Zarf UI)"
+ },
+ "uncompressed": {
+ "type": "boolean",
+ "description": "Disable compression of this package"
+ },
+ "architecture": {
+ "type": "string",
+ "description": "The target cluster architecture for this package",
+ "examples": [
+ "arm64",
+ "amd64"
+ ]
+ },
+ "yolo": {
+ "type": "boolean",
+ "description": "Yaml OnLy Online (YOLO): True enables deploying a Zarf package without first running zarf init against the cluster. This is ideal for connected environments where you want to use existing VCS and container registries."
+ },
+ "authors": {
+ "type": "string",
+ "description": "Comma-separated list of package authors (including contact info)",
+ "examples": [
+ "Doug \u0026#60;hello@defenseunicorns.com\u0026#62;\u0026#44; Pepr \u0026#60;hello@defenseunicorns.com\u0026#62;"
+ ]
+ },
+ "documentation": {
+ "type": "string",
+ "description": "Link to package documentation when online"
+ },
+ "source": {
+ "type": "string",
+ "description": "Link to package source code when online"
+ },
+ "vendor": {
+ "type": "string",
+ "description": "Name of the distributing entity, organization or individual."
+ },
+ "aggregateChecksum": {
+ "type": "string",
+ "description": "Checksum of a checksums.txt file that contains checksums all the layers within the package."
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfPackage": {
+ "required": [
+ "kind",
+ "components"
+ ],
+ "properties": {
+ "kind": {
+ "enum": [
+ "ZarfInitConfig",
+ "ZarfPackageConfig"
+ ],
+ "type": "string",
+ "description": "The kind of Zarf package",
+ "default": "ZarfPackageConfig"
+ },
+ "metadata": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfMetadata",
+ "description": "Package metadata"
+ },
+ "build": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfBuildData",
+ "description": "Zarf-generated package build data"
+ },
+ "components": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfComponent"
+ },
+ "type": "array",
+ "description": "List of components to deploy in this package"
+ },
+ "constants": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfPackageConstant"
+ },
+ "type": "array",
+ "description": "Constant template values applied on deploy for K8s resources"
+ },
+ "variables": {
+ "items": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "$ref": "#/definitions/ZarfPackageVariable"
+ },
+ "type": "array",
+ "description": "Variable template values applied on deploy for K8s resources"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfPackageConstant": {
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "pattern": "^[A-Z0-9_]+$",
+ "type": "string",
+ "description": "The name to be used for the constant"
+ },
+ "value": {
+ "type": "string",
+ "description": "The value to set for the constant during deploy"
+ },
+ "description": {
+ "type": "string",
+ "description": "A description of the constant to explain its purpose on package create or deploy confirmation prompts"
+ },
+ "autoIndent": {
+ "type": "boolean",
+ "description": "Whether to automatically indent the variable's value (if multiline) when templating. Based on the number of chars before the start of ###ZARF_CONST_."
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ZarfPackageVariable": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "pattern": "^[A-Z0-9_]+$",
+ "type": "string",
+ "description": "The name to be used for the variable"
+ },
+ "description": {
+ "type": "string",
+ "description": "A description of the variable to be used when prompting the user a value"
+ },
+ "default": {
+ "type": "string",
+ "description": "The default value to use for the variable"
+ },
+ "prompt": {
+ "type": "boolean",
+ "description": "Whether to prompt the user for input for this variable"
+ },
+ "sensitive": {
+ "type": "boolean",
+ "description": "Whether to mark this variable as sensitive to not print it in the Zarf log"
+ },
+ "autoIndent": {
+ "type": "boolean",
+ "description": "Whether to automatically indent the variable's value (if multiline) when templating. Based on the number of chars before the start of ###ZARF_VAR_."
+ },
+ "type": {
+ "enum": [
+ "raw",
+ "file"
+ ],
+ "type": "string",
+ "description": "Changes the handling of a variable to load contents differently (i.e. from a file rather than as a raw variable - templated files should be kept below 1 MiB)"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ }
+ }
+}
diff --git a/docs-website-new/default.md b/docs-website-new/default.md
new file mode 100644
index 0000000000..00e77bd79b
--- /dev/null
+++ b/docs-website-new/default.md
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
diff --git a/docs-website-new/go.mod b/docs-website-new/go.mod
new file mode 100644
index 0000000000..a45e080de1
--- /dev/null
+++ b/docs-website-new/go.mod
@@ -0,0 +1,8 @@
+module main
+
+go 1.20
+
+require (
+ github.com/defenseunicorns/defense-unicorns-hugo-theme v0.3.8 // indirect
+ github.com/defenseunicorns/defense-unicorns-hugo-theme/dependencies v0.3.8 // indirect
+)
diff --git a/docs-website-new/go.sum b/docs-website-new/go.sum
new file mode 100644
index 0000000000..16c02f06f2
--- /dev/null
+++ b/docs-website-new/go.sum
@@ -0,0 +1,4 @@
+github.com/defenseunicorns/defense-unicorns-hugo-theme v0.3.8 h1:tKP8jpvmb1JHjyrRkVoYOwbOVRV7MhA8wggdii6lD4Q=
+github.com/defenseunicorns/defense-unicorns-hugo-theme v0.3.8/go.mod h1:US+qVkgZySAZDWkNYNPY+5fSoawN97kEp9SJrK5/b0A=
+github.com/defenseunicorns/defense-unicorns-hugo-theme/dependencies v0.3.8 h1:L/G6PnF+db3DiKrnLcl7SpfYS9AiKKDQwf40CHvcd2o=
+github.com/defenseunicorns/defense-unicorns-hugo-theme/dependencies v0.3.8/go.mod h1:zQT7gnRyPnVCNxREasYkyewPJLhemxlOGZhbu+9mcfQ=
diff --git a/docs-website-new/hugo.toml b/docs-website-new/hugo.toml
new file mode 100644
index 0000000000..ce466fbce0
--- /dev/null
+++ b/docs-website-new/hugo.toml
@@ -0,0 +1,74 @@
+baseURL = "https://docs.zarf.dev/"
+enableGitInfo = true
+enableRobotsTXT = true
+ignoreFiles = [
+ "README.md"
+]
+
+[module]
+ proxy = "direct"
+
+ [[module.imports]]
+ path = "github.com/defenseunicorns/defense-unicorns-hugo-theme"
+
+ [[module.imports]]
+ path = "github.com/defenseunicorns/defense-unicorns-hugo-theme/dependencies"
+
+[languages.en]
+ languageName = "English"
+
+ [languages.en.params]
+ description = "Docs Template"
+ title = "Docs Template"
+
+[params]
+ # this merge bring is the theme defaults and allows overriding them if needed.
+ _merge = 'deep'
+
+ archived_version = false
+ copyright = "Defense Unicorns"
+ github_project_repo = "https://github.com/defenseunicorns/zarf"
+ github_repo = "https://github.com/defenseunicorns/zarf"
+ github_subdir = "content/en"
+
+ # To add a version menu, see the theme documentation.
+
+ [params.ui]
+ navbar_logo = "img/zarf-logo.svg" # The product logo on the navbar
+
+ [[params.socialLinks]]
+ desc = "Discussion and help from your fellow users"
+ icon = "fa-brands fa-slack"
+ name = "Community Slack"
+ url = "https://zarf.dev/slack"
+ # [[params.socialLinks]]
+ # name = "Twitter"
+ # url = "https://twitter.com/DefenseUnicorns"
+ # icon = "fa-brands fa-twitter"
+ # desc = "Defense Unicorns Twitter"
+ [[params.socialLinks]]
+ desc = ""
+ icon = "fa-brands fa-github"
+ name = "GitHub"
+ url = "https://github.com/defenseunicorns/doc-site-template"
+
+[[module.mounts]]
+ source = "../packages"
+ target = "content/packages"
+
+[[module.mounts]]
+ source = "../docs"
+ target = "content/docs"
+
+## The following merge in theme defaults from: https://github.com/defenseunicorns/defense-unicorns-hugo-theme/tree/main/config/_default
+[markup]
+ _merge = 'shallow'
+
+[outputs]
+ _merge = 'shallow'
+
+[imaging]
+ _merge = 'shallow'
+
+[taxonomies]
+ _merge = 'shallow'
diff --git a/docs-website-new/img/how-to-use.png b/docs-website-new/img/how-to-use.png
new file mode 100644
index 0000000000..43cc9cbaa9
Binary files /dev/null and b/docs-website-new/img/how-to-use.png differ
diff --git a/docs-website-new/layouts/shortcodes/zarfprops.html b/docs-website-new/layouts/shortcodes/zarfprops.html
new file mode 100644
index 0000000000..572d2d6b17
--- /dev/null
+++ b/docs-website-new/layouts/shortcodes/zarfprops.html
@@ -0,0 +1,65 @@
+{{- $item:= .Get "item" -}}
+{{- $include:= .Get "include" -}}
+{{- $ignore:= .Get "ignore" -}}
+{{ $global := newScratch }}
+
+{{- if not $item -}}
+ {{- errorf "Missing required 'item' in shortcode: 'zarfprops'." -}}
+{{- end -}}
+
+{{- if and $include $ignore -}}
+ {{- errorf "Shortcode zarfprops cannot have both include and ignore defined." -}}
+{{- end -}}
+
+{{ $schema := $.Site.Data.zarf_schema }}
+{{- $itemSchema := index $schema.definitions $item -}}
+{{- if $itemSchema -}}
+ {{ $global.Set "hasRequired" false }}
+
+
+
+
Field
+
Type
+
Description
+
+
+
+ {{ range $key, $value := $itemSchema.properties }}
+ {{ if not (in $ignore $key) }}
+ {{ if and (not (in $include $key)) (gt (len $include) 0) }}
+ {{ else }}
+ {{ $deprecated := "[Deprecated]"}}
+