Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f3454d44b7 | |||
| 74d558c005 | |||
| 72a43df4a7 | |||
| e504798110 | |||
| f694d60a9b | |||
|
f6a35cda3f
|
|||
|
2706f536f3
|
|||
|
bd2d47a73c
|
|||
|
2c77198528
|
|||
|
650f59f430
|
|||
| 7565e94cb7 | |||
| a7ab7b398a | |||
| d73f2639ed | |||
| 653a240d33 | |||
| 83028c60ad | |||
| 5181da9051 | |||
| 6d64cee10e | |||
| 60d56a701f | |||
| 3914e3aab3 | |||
| 1d5f5e16e8 | |||
|
4d4554aa21
|
|||
| 3162755c52 |
@@ -9,7 +9,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6.0.2
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6.4.0
|
||||
with:
|
||||
node-version: 24.15.0
|
||||
node-version: 24.16.0
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2.2.0
|
||||
@@ -61,7 +61,7 @@ jobs:
|
||||
image: true
|
||||
|
||||
guarddog:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6.0.2
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
|
||||
semantic-release:
|
||||
needs: [ build, guarddog ]
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
new-release-published: ${{ steps.semantic.outputs.new-release-published }}
|
||||
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6.4.0
|
||||
with:
|
||||
node-version: 24.15.0
|
||||
node-version: 24.16.0
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2.2.0
|
||||
@@ -134,7 +134,7 @@ jobs:
|
||||
bun run semantic-release
|
||||
|
||||
release-harbor:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
needs: semantic-release
|
||||
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
|
||||
steps:
|
||||
@@ -144,14 +144,14 @@ jobs:
|
||||
ref: release
|
||||
|
||||
- name: Login to Harbor Registry
|
||||
uses: docker/login-action@v4.1.0
|
||||
uses: docker/login-action@v4.2.0
|
||||
with:
|
||||
registry: ${{ vars.REGISTRY_HOST }}
|
||||
username: ${{ vars.REGISTRY_USER }}
|
||||
password: ${{ secrets.REGISTRY_SECRET }}
|
||||
|
||||
- name: Login to Docker
|
||||
uses: docker/login-action@v4.1.0
|
||||
uses: docker/login-action@v4.2.0
|
||||
with:
|
||||
registry: ${{ vars.DH_REGISTRY }}
|
||||
username: ${{ secrets.DH_USERNAME }}
|
||||
@@ -164,7 +164,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v4.0.0
|
||||
uses: docker/setup-buildx-action@v4.1.0
|
||||
with:
|
||||
driver: kubernetes
|
||||
driver-opts: |
|
||||
@@ -179,7 +179,7 @@ jobs:
|
||||
|
||||
- name: Extract Metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v6.0.0
|
||||
uses: docker/metadata-action@v6.1.0
|
||||
with:
|
||||
images: |
|
||||
${{ vars.REGISTRY_HOST }}/images/site-documentation
|
||||
@@ -192,7 +192,7 @@ jobs:
|
||||
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
|
||||
|
||||
- name: Build and Push Image
|
||||
uses: docker/build-push-action@v7.1.0
|
||||
uses: docker/build-push-action@v7.2.0
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
@@ -236,7 +236,7 @@ jobs:
|
||||
image: true
|
||||
|
||||
release-gitea:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ semantic-release, release-harbor ]
|
||||
if: |
|
||||
always() &&
|
||||
@@ -248,14 +248,14 @@ jobs:
|
||||
ref: release
|
||||
|
||||
- name: Login to Gitea Registry
|
||||
uses: docker/login-action@v4.1.0
|
||||
uses: docker/login-action@v4.2.0
|
||||
with:
|
||||
registry: ${{ vars.REPOSITORY_HOST }}
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.REPOSITORY_TOKEN }}
|
||||
|
||||
- name: Login to Docker
|
||||
uses: docker/login-action@v4.1.0
|
||||
uses: docker/login-action@v4.2.0
|
||||
with:
|
||||
registry: ${{ vars.DH_REGISTRY }}
|
||||
username: ${{ secrets.DH_USERNAME }}
|
||||
@@ -268,7 +268,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v4.0.0
|
||||
uses: docker/setup-buildx-action@v4.1.0
|
||||
with:
|
||||
driver: kubernetes
|
||||
driver-opts: |
|
||||
@@ -283,7 +283,7 @@ jobs:
|
||||
|
||||
- name: Extract Metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v6.0.0
|
||||
uses: docker/metadata-action@v6.1.0
|
||||
with:
|
||||
images: |
|
||||
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
|
||||
@@ -296,7 +296,7 @@ jobs:
|
||||
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
|
||||
|
||||
- name: Build and Push Image
|
||||
uses: docker/build-push-action@v7.1.0
|
||||
uses: docker/build-push-action@v7.2.0
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
|
||||
@@ -14,7 +14,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6.0.2
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6.4.0
|
||||
with:
|
||||
node-version: 24.15.0
|
||||
node-version: 24.16.0
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2.2.0
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
image: true
|
||||
|
||||
guarddog:
|
||||
runs-on: ubuntu-js
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6.0.2
|
||||
|
||||
@@ -1,3 +1,30 @@
|
||||
# [0.35.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.34.0...0.35.0) (2026-05-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** update dependency astro to v6.3.5 ([83028c6](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/83028c60ad916354be48c8045c5e85e02b78a640))
|
||||
* **deps:** update dependency astro to v6.3.6 ([653a240](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/653a240d33d902d7dad4863a771a6342a4372742))
|
||||
* **deps:** update dependency astro to v6.3.7 ([650f59f](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/650f59f43041ea4fb76ac64262d81a611b051c4a))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add vault restore doc ([a7ab7b3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a7ab7b398a877a987fae1f816d1121394ba6266d))
|
||||
|
||||
# [0.34.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.33.1...0.34.0) (2026-05-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** update astro monorepo ([3162755](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3162755c527ee8923e47d657921966c379b0de51))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add guide for Komodo ([1d5f5e1](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/1d5f5e16e817f716f3efcd09167fe1952091a457))
|
||||
* highlight links ([3914e3a](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3914e3aab3de30cdae73e0e1502444d35bc04657))
|
||||
|
||||
## [0.33.1](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.33.0...0.33.1) (2026-05-13)
|
||||
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
"": {
|
||||
"name": "site-documentation",
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "5.0.5",
|
||||
"@astrojs/mdx": "5.0.6",
|
||||
"@astrojs/node": "10.1.1",
|
||||
"@astrojs/sitemap": "3.7.2",
|
||||
"@astrojs/starlight": "0.39.2",
|
||||
"@tailwindcss/postcss": "4.3.0",
|
||||
"@tailwindcss/vite": "4.3.0",
|
||||
"astro": "6.3.2",
|
||||
"astro": "6.3.7",
|
||||
"sanitize-html": "2.17.4",
|
||||
"sharp": "0.34.5",
|
||||
"starlight-theme-rapide": "0.5.2",
|
||||
@@ -26,8 +26,8 @@
|
||||
"@semantic-release/release-notes-generator": "14.1.1",
|
||||
"@tailwindcss/forms": "0.5.11",
|
||||
"@tailwindcss/typography": "0.5.19",
|
||||
"@typescript-eslint/parser": "8.59.3",
|
||||
"eslint": "10.3.0",
|
||||
"@typescript-eslint/parser": "8.59.4",
|
||||
"eslint": "10.4.0",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-plugin-astro": "1.7.0",
|
||||
"prettier": "3.8.3",
|
||||
@@ -36,7 +36,7 @@
|
||||
"semantic-release": "25.0.3",
|
||||
"semantic-release-export-data": "1.2.0",
|
||||
"typescript": "6.0.3",
|
||||
"typescript-eslint": "8.59.3",
|
||||
"typescript-eslint": "8.59.4",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
"@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.1.2", "", { "dependencies": { "@astrojs/internal-helpers": "0.9.1", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "retext-smartypants": "^6.2.0", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-caXZ4Dc2St2dW8luEg22GlP0gupLdztCTQE4EzZOxW1pqWXz9mbeJEuHUkgDYcKWW8tjIHkydYDhWLVoxJ327Q=="],
|
||||
|
||||
"@astrojs/mdx": ["@astrojs/mdx@5.0.5", "", { "dependencies": { "@astrojs/markdown-remark": "7.1.2", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.16.0", "es-module-lexer": "^2.0.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "piccolore": "^0.1.3", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^6.0.0" } }, "sha512-liX+FBgTKYihiyPvxxP+7Jb4ofaDwl/H+f8bnmv0VrY4TjEoFYtRP9NCTmtEPkhOH+YJiLV6mD+1wQdeo1Itvg=="],
|
||||
"@astrojs/mdx": ["@astrojs/mdx@5.0.6", "", { "dependencies": { "@astrojs/markdown-remark": "7.1.2", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.16.0", "es-module-lexer": "^2.0.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "piccolore": "^0.1.3", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^6.0.0" } }, "sha512-4dKe0ZMmqujofPNDHahzClkwinn9f8jHPcaXcgdGvPAlboD2mjzkUCofli2cBnxYAkdfhC6d50gBJ8i/cH8gHw=="],
|
||||
|
||||
"@astrojs/node": ["@astrojs/node@10.1.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.9.1", "send": "^1.2.1", "server-destroy": "^1.0.1" }, "peerDependencies": { "astro": "^6.3.0" } }, "sha512-kCRbxconkgPpY4vR0GS7exovWEiCbxXLarsp+JeKixyDNf+fKN6v7jXDL8KdQgrzjhy131Kvl+GGGX8jGd8adA=="],
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
|
||||
"@eslint/config-array": ["@eslint/config-array@0.23.5", "", { "dependencies": { "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", "minimatch": "^10.2.4" } }, "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA=="],
|
||||
|
||||
"@eslint/config-helpers": ["@eslint/config-helpers@0.5.5", "", { "dependencies": { "@eslint/core": "^1.2.1" } }, "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w=="],
|
||||
"@eslint/config-helpers": ["@eslint/config-helpers@0.6.0", "", { "dependencies": { "@eslint/core": "^1.2.1" } }, "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA=="],
|
||||
|
||||
"@eslint/core": ["@eslint/core@1.2.1", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ=="],
|
||||
|
||||
@@ -463,25 +463,25 @@
|
||||
|
||||
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
|
||||
|
||||
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.59.3", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.59.3", "@typescript-eslint/type-utils": "8.59.3", "@typescript-eslint/utils": "8.59.3", "@typescript-eslint/visitor-keys": "8.59.3", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.59.3", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw=="],
|
||||
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.59.4", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.59.4", "@typescript-eslint/type-utils": "8.59.4", "@typescript-eslint/utils": "8.59.4", "@typescript-eslint/visitor-keys": "8.59.4", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.59.4", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A=="],
|
||||
|
||||
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.59.3", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.59.3", "@typescript-eslint/types": "8.59.3", "@typescript-eslint/typescript-estree": "8.59.3", "@typescript-eslint/visitor-keys": "8.59.3", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg=="],
|
||||
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.59.4", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.59.4", "@typescript-eslint/types": "8.59.4", "@typescript-eslint/typescript-estree": "8.59.4", "@typescript-eslint/visitor-keys": "8.59.4", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ=="],
|
||||
|
||||
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.59.3", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.59.3", "@typescript-eslint/types": "^8.59.3", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng=="],
|
||||
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.59.4", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.59.4", "@typescript-eslint/types": "^8.59.4", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg=="],
|
||||
|
||||
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.59.3", "", { "dependencies": { "@typescript-eslint/types": "8.59.3", "@typescript-eslint/visitor-keys": "8.59.3" } }, "sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA=="],
|
||||
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.59.4", "", { "dependencies": { "@typescript-eslint/types": "8.59.4", "@typescript-eslint/visitor-keys": "8.59.4" } }, "sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q=="],
|
||||
|
||||
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.59.3", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw=="],
|
||||
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.59.4", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA=="],
|
||||
|
||||
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.59.3", "", { "dependencies": { "@typescript-eslint/types": "8.59.3", "@typescript-eslint/typescript-estree": "8.59.3", "@typescript-eslint/utils": "8.59.3", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ=="],
|
||||
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.59.4", "", { "dependencies": { "@typescript-eslint/types": "8.59.4", "@typescript-eslint/typescript-estree": "8.59.4", "@typescript-eslint/utils": "8.59.4", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA=="],
|
||||
|
||||
"@typescript-eslint/types": ["@typescript-eslint/types@8.59.3", "", {}, "sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg=="],
|
||||
"@typescript-eslint/types": ["@typescript-eslint/types@8.59.4", "", {}, "sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q=="],
|
||||
|
||||
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.59.3", "", { "dependencies": { "@typescript-eslint/project-service": "8.59.3", "@typescript-eslint/tsconfig-utils": "8.59.3", "@typescript-eslint/types": "8.59.3", "@typescript-eslint/visitor-keys": "8.59.3", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg=="],
|
||||
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.59.4", "", { "dependencies": { "@typescript-eslint/project-service": "8.59.4", "@typescript-eslint/tsconfig-utils": "8.59.4", "@typescript-eslint/types": "8.59.4", "@typescript-eslint/visitor-keys": "8.59.4", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag=="],
|
||||
|
||||
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.59.3", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.59.3", "@typescript-eslint/types": "8.59.3", "@typescript-eslint/typescript-estree": "8.59.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg=="],
|
||||
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.59.4", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.59.4", "@typescript-eslint/types": "8.59.4", "@typescript-eslint/typescript-estree": "8.59.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw=="],
|
||||
|
||||
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.59.3", "", { "dependencies": { "@typescript-eslint/types": "8.59.3", "eslint-visitor-keys": "^5.0.0" } }, "sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg=="],
|
||||
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.59.4", "", { "dependencies": { "@typescript-eslint/types": "8.59.4", "eslint-visitor-keys": "^5.0.0" } }, "sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ=="],
|
||||
|
||||
"@ungap/structured-clone": ["@ungap/structured-clone@1.3.1", "", {}, "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ=="],
|
||||
|
||||
@@ -521,7 +521,7 @@
|
||||
|
||||
"astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="],
|
||||
|
||||
"astro": ["astro@6.3.2", "", { "dependencies": { "@astrojs/compiler": "^4.0.0", "@astrojs/internal-helpers": "0.9.1", "@astrojs/markdown-remark": "7.1.2", "@astrojs/telemetry": "3.3.2", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "get-tsconfig": "5.0.0-beta.4", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "jsonc-parser": "^3.3.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.4", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "svgo": "^4.0.1", "tinyclip": "^0.1.12", "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.5", "vfile": "^6.0.3", "vite": "^7.3.2", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "./bin/astro.mjs" } }, "sha512-Wvl/420m99OjKRH9Q+Vk7JBed8H39n66R61FG2ty0yZjQXBplIIXvJWYXUouMn2U4znfjpYe1HLOA2Rpet6uog=="],
|
||||
"astro": ["astro@6.3.7", "", { "dependencies": { "@astrojs/compiler": "^4.0.0", "@astrojs/internal-helpers": "0.9.1", "@astrojs/markdown-remark": "7.1.2", "@astrojs/telemetry": "3.3.2", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "get-tsconfig": "5.0.0-beta.4", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "jsonc-parser": "^3.3.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.4", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "svgo": "^4.0.1", "tinyclip": "^0.1.12", "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.5", "vfile": "^6.0.3", "vite": "^7.3.2", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "./bin/astro.mjs" } }, "sha512-zIeDRrI0qNgN1lcCjNqt6/IVCVej7VwSa326cO8uP9BOk1cg4QuffhLnOn2gCgWQr32/wxpSRFfXiLKHglu1Tw=="],
|
||||
|
||||
"astro-eslint-parser": ["astro-eslint-parser@1.4.0", "", { "dependencies": { "@astrojs/compiler": "^2.0.0 || ^3.0.0", "@typescript-eslint/scope-manager": "^7.0.0 || ^8.0.0", "@typescript-eslint/types": "^7.0.0 || ^8.0.0", "astrojs-compiler-sync": "^1.0.0", "debug": "^4.3.4", "entities": "^7.0.0", "eslint-scope": "^8.0.1", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "fast-glob": "^3.3.3", "is-glob": "^4.0.3", "semver": "^7.3.8" } }, "sha512-+QDcgc7e+au6EZ0YjMmRRjNoQo5bDMlaR45aWDoFsuxQTCM9qmCHRoiKJPELgckJ8Wmr7vcfpa9eCDHBFh6G4w=="],
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
|
||||
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
|
||||
|
||||
"eslint": ["eslint@10.3.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.5.5", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw=="],
|
||||
"eslint": ["eslint@10.4.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.6.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ=="],
|
||||
|
||||
"eslint-compat-utils": ["eslint-compat-utils@0.6.5", "", { "dependencies": { "semver": "^7.5.4" }, "peerDependencies": { "eslint": ">=6.0.0" } }, "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ=="],
|
||||
|
||||
@@ -1633,7 +1633,7 @@
|
||||
|
||||
"typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="],
|
||||
|
||||
"typescript-eslint": ["typescript-eslint@8.59.3", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.59.3", "@typescript-eslint/parser": "8.59.3", "@typescript-eslint/typescript-estree": "8.59.3", "@typescript-eslint/utils": "8.59.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg=="],
|
||||
"typescript-eslint": ["typescript-eslint@8.59.4", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.59.4", "@typescript-eslint/parser": "8.59.4", "@typescript-eslint/typescript-estree": "8.59.4", "@typescript-eslint/utils": "8.59.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ=="],
|
||||
|
||||
"ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="],
|
||||
|
||||
|
||||
+6
-6
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "site-documentation",
|
||||
"type": "module",
|
||||
"version": "0.33.1",
|
||||
"version": "0.35.0",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
@@ -12,13 +12,13 @@
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "5.0.5",
|
||||
"@astrojs/mdx": "5.0.6",
|
||||
"@astrojs/node": "10.1.1",
|
||||
"@astrojs/sitemap": "3.7.2",
|
||||
"@astrojs/starlight": "0.39.2",
|
||||
"@tailwindcss/postcss": "4.3.0",
|
||||
"@tailwindcss/vite": "4.3.0",
|
||||
"astro": "6.3.2",
|
||||
"astro": "6.3.7",
|
||||
"sanitize-html": "2.17.4",
|
||||
"sharp": "0.34.5",
|
||||
"starlight-theme-rapide": "0.5.2",
|
||||
@@ -33,8 +33,8 @@
|
||||
"@semantic-release/release-notes-generator": "14.1.1",
|
||||
"@tailwindcss/forms": "0.5.11",
|
||||
"@tailwindcss/typography": "0.5.19",
|
||||
"@typescript-eslint/parser": "8.59.3",
|
||||
"eslint": "10.3.0",
|
||||
"@typescript-eslint/parser": "8.59.4",
|
||||
"eslint": "10.4.0",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-plugin-astro": "1.7.0",
|
||||
"prettier": "3.8.3",
|
||||
@@ -43,6 +43,6 @@
|
||||
"semantic-release": "25.0.3",
|
||||
"semantic-release-export-data": "1.2.0",
|
||||
"typescript": "6.0.3",
|
||||
"typescript-eslint": "8.59.3"
|
||||
"typescript-eslint": "8.59.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Update Komodo Hosts
|
||||
description: Steps followed to update the Periphery Agents on Komodo managed hosts.
|
||||
hero:
|
||||
tagline: Steps followed to update the Periphery Agents on Komodo managed hosts.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/komodo.webp
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
import { Steps } from '@astrojs/starlight/components';
|
||||
|
||||
<Aside type="tip">Find the latest documentation from Komodo [here](https://komo.do/docs/intro).</Aside>
|
||||
<Aside type="tip">Find the local Application documentation [here](https://docs.alexlebens.dev/applications/komodo/).</Aside>
|
||||
|
||||
# Systemd hosts
|
||||
|
||||
These hosts are on the same network as Komodo and have direct access. For simplicity, they run as a [systemd](https://systemd.io/) service.
|
||||
|
||||
SSH to the host and run the following command. This command is repeatable and non-destructive and will update to the latest version.
|
||||
````bash
|
||||
curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py | python3 - \
|
||||
--core-address="https://komodo.alexlebens.net"
|
||||
````
|
||||
|
||||
# Docker hosts
|
||||
|
||||
These hosts are not on the network and need some kind of VPN connection, such as [Tailscale](https://tailscale.com/). Because of this requirement it becomes simpler to use containers and [Docker networks](https://docs.docker.com/engine/network/).
|
||||
|
||||
The hosts should have their [compose](https://docs.docker.com/compose/) files defined in the [infrastructure repository](https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/hosts). Therefore, [Renovate](https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=renovate.yaml&actor=0&status=0) will make updates to those files.
|
||||
|
||||
<Steps>
|
||||
1. SSH to the host and switch user to root.
|
||||
````bash
|
||||
ssh <hostname>
|
||||
````
|
||||
|
||||
2. Change directory to where the local git folder is. This can vary per host, but the default should be in the /opt/compose folder.
|
||||
````bash
|
||||
cd /opt/compose/infrastructure
|
||||
````
|
||||
|
||||
3. Pull the latest changes.
|
||||
````bash
|
||||
git pull
|
||||
````
|
||||
|
||||
4. Change directory to the host and Komodo app.
|
||||
````bash
|
||||
cd /opt/compose/infrastructure/hosts/<host>/komodo-periphery
|
||||
````
|
||||
|
||||
5. Bring down the current stack.
|
||||
````bash
|
||||
docker compose down
|
||||
````
|
||||
|
||||
5. Bring down the stack back up. This should pull the latest image.
|
||||
````bash
|
||||
docker compose up -d
|
||||
````
|
||||
|
||||
6. Verify updates on the Komodo servers page.
|
||||
````
|
||||
[https://komodo.alexlebens.net/servers](https://komodo.alexlebens.net/servers)
|
||||
````
|
||||
</Steps>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: OpenBao SSH Certificate Authority
|
||||
description: Steps followed to enable using OpenBao as a CA for ssh login
|
||||
hero:
|
||||
tagline: Steps followed for the v1.12.0 upgrade process
|
||||
tagline: Steps followed to enable using OpenBao as a CA for ssh login
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openbao.webp
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Using Secret Store CSI with OpenBao
|
||||
description: Mounting secrets inside pods using Secret Store CSI driver and OpenBao
|
||||
hero:
|
||||
tagline: Steps followed to mount the secrets
|
||||
tagline: Mounting secrets inside pods using Secret Store CSI driver and OpenBao
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openbao.webp
|
||||
---
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: Restore Vault Snapshot
|
||||
description: Steps followed to restore a raft snapshot of Vault
|
||||
hero:
|
||||
tagline: Steps followed to restore a raft snapshot of Vault
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/vault.webp
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
import { Steps } from '@astrojs/starlight/components';
|
||||
|
||||
<Aside type="tip">Reference Vault official documentation [here](https://developer.hashicorp.com/vault/docs/sysadmin/snapshots/restore).</Aside>
|
||||
|
||||
This guide assumes the snapshot file has already been retrieved from the backup and the purpose is specifically to recover the secrets in the snapshot. These steps can be modified for a full recovery when initializing a new permanent instance.
|
||||
|
||||
Along with the snapshot file the unseal keys and root token must also be retrieved to access the data.
|
||||
|
||||
## Steps
|
||||
|
||||
<Steps>
|
||||
1. Create a temp folder to use. Then add a 'snapshot' and 'data' folder inside.
|
||||
|
||||
2. Place the '\<name>.snap' file of the snapshot into a 'snapshot' folder.
|
||||
|
||||
2. Create a docker compose for running Vault locally using the following example. Place this in the root of the temp folder.
|
||||
````yaml
|
||||
services:
|
||||
vault:
|
||||
image: hashicorp/vault:latest
|
||||
container_name: vault
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
VAULT_ADDR: "http://127.0.0.1:8200"
|
||||
VAULT_API_ADDR: "http://127.0.0.1:8200"
|
||||
VAULT_CLUSTER_ADDR: "http://127.0.0.1:8201"
|
||||
VAULT_LOCAL_CONFIG: |
|
||||
{
|
||||
"listener": [{
|
||||
"tcp": {
|
||||
"address": "0.0.0.0:8200",
|
||||
"cluster_address": "0.0.0.0:8201",
|
||||
"tls_disable": 1,
|
||||
}
|
||||
}],
|
||||
"storage": {
|
||||
"raft": {
|
||||
"path": "/vault/data"
|
||||
}
|
||||
},
|
||||
"disable_mlock": true,
|
||||
"default_lease_ttl": "168h",
|
||||
"max_lease_ttl": "720h",
|
||||
"ui": true
|
||||
}
|
||||
ports:
|
||||
- "8200:8200"
|
||||
volumes:
|
||||
- ./data:/vault/data
|
||||
- ./snapshot:/vault/snapshot
|
||||
cap_add:
|
||||
- IPC_LOCK
|
||||
command: "vault server -config vault/config/local.json"
|
||||
````
|
||||
|
||||
4. The temp folder should now look like the following.
|
||||
````
|
||||
/temp
|
||||
/snapshot
|
||||
<name>.snap
|
||||
/data
|
||||
````
|
||||
|
||||
5. Open a terminal and change directory to the temp folder.
|
||||
|
||||
6. Start the docker container.
|
||||
````bash
|
||||
docker compose up -d
|
||||
````
|
||||
|
||||
7. Open a shell inside the container.
|
||||
````bash
|
||||
docker exec -it vault /bin/sh
|
||||
````
|
||||
|
||||
8. First the current Vault instance must be initialized, unsealed, and authenticated to restore the snapshot. Init the instance now.
|
||||
````bash
|
||||
vault operator init
|
||||
````
|
||||
The output above will give the unseal keys and the root token. Keep these nearby, but are not necessary to save.
|
||||
|
||||
10. Unseal with 3 of the keys by running the following and entering a different key at the prompt each time.
|
||||
````bash
|
||||
vault operator unseal
|
||||
````
|
||||
|
||||
11. With Vault unsealed now login with the root token.
|
||||
````bash
|
||||
vault login
|
||||
````
|
||||
|
||||
12. Now with an operational Vault it can accept the restore command.
|
||||
````bash
|
||||
vault operator raft snapshot restore -force /vault/snapshot/<name>.snap
|
||||
````
|
||||
|
||||
13. The restore will override the previously sealed Vault with the new data. Unseal the restored snapshot with 3 of the snapshot's unseal keys.
|
||||
````bash
|
||||
vault operator unseal
|
||||
````
|
||||
|
||||
14. With restored Vault unsealed now login with the root token.
|
||||
````bash
|
||||
vault login
|
||||
````
|
||||
|
||||
15. The UI should be available at 'http://127.0.0.1:8200' and can be logged in with the root token.
|
||||
</Steps>
|
||||
|
||||
@@ -31,4 +31,8 @@
|
||||
.site-title:where(.astro-gmuhlsjs) {
|
||||
color: var(--color-turquoise);
|
||||
}
|
||||
|
||||
div.sl-markdown-content a {
|
||||
color: var(--color-turquoise);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user