Add Website to monorepo and adapt CI
@@ -1,6 +1,7 @@
|
||||
name: "Charts/Website: Build-and-Release"
|
||||
|
||||
concurrency: charts-website-release
|
||||
concurrency:
|
||||
group: ${{ github.head_ref }}-charts-website-release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
@@ -15,8 +16,17 @@ on:
|
||||
- "charts/**"
|
||||
- "website/**"
|
||||
|
||||
# Use `bash --noprofile --norc -exo pipefail` by default for all `run` steps in this workflow:
|
||||
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
release-helm:
|
||||
permissions:
|
||||
pull-requests: write
|
||||
name: ${{ github.ref == 'refs/heads/main' && '(Production)' || '(Preview)' }} Publish to Cloudflare Pages
|
||||
runs-on: actions-runner-large
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -119,16 +129,6 @@ jobs:
|
||||
shell: bash
|
||||
if: github.event_name != 'push'
|
||||
run: helm registry logout quay.io
|
||||
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4
|
||||
if: github.event_name != 'push'
|
||||
with:
|
||||
fetch-depth: 1
|
||||
repository: truecharts/website
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
path: website
|
||||
|
||||
- name: Copy docs to website
|
||||
shell: bash
|
||||
@@ -156,12 +156,114 @@ jobs:
|
||||
./.github/scripts/chart-docs.sh "${chart_parts[1]}/${chart_parts[2]}"
|
||||
done
|
||||
|
||||
- name: Commit Website Changes
|
||||
- name: Comment deploy start
|
||||
if: github.event_name != 'push'
|
||||
continue-on-error: true
|
||||
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
|
||||
with:
|
||||
message-id: cloudflare-deploy
|
||||
message: |
|
||||
### 🚧 Deploy Preview building...
|
||||
|
||||
| Name | Link |
|
||||
|---------------------|-------------------------------------------------------------------------------|
|
||||
|🔨 Latest commit | ${{ github.sha }} |
|
||||
|🔍 Latest deploy log | https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|
||||
---
|
||||
|
||||
|
||||
- name: Prefetch contributor icons
|
||||
shell: bash
|
||||
run: |
|
||||
cd website
|
||||
git config user.name "TrueCharts-Bot"
|
||||
git config user.email "bot@truecharts.org"
|
||||
git add --all
|
||||
git commit -sm "Commit released docs for TrueCharts" || exit 0
|
||||
git push
|
||||
#!/bin/bash
|
||||
|
||||
## Loop through each contributor
|
||||
## TODO: reenable later
|
||||
#while read -r contributor; do
|
||||
# avatar_url=$(echo "$contributor" | grep -oP '"avatar_url": "\K[^"]+')
|
||||
#
|
||||
# # Download the image
|
||||
# wget -q "$avatar_url" -O temp_avatar
|
||||
#
|
||||
# # Generate new filename with original extension
|
||||
# new_filename="public/assets/contributors/$(basename "$avatar_url" | cut -d '?' -f 1)"
|
||||
#
|
||||
# echo "converting file: $avatar_url"
|
||||
# EXT=${FILE##*.} # file extension
|
||||
# QUALITY=75 # quality for the image
|
||||
# # convert the image using cwebp and output a file with the extension replaced as .webp
|
||||
# cwebp -mt -m 6 -q $QUALITY -resize 32 32 "temp_avatar" -o "${new_filename}.webp" &>/dev/null
|
||||
# rm temp_avatar
|
||||
#
|
||||
#done < src/assets/contributors.json
|
||||
|
||||
- name: Setup astro Cache
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
||||
with:
|
||||
# Cache for build and optimized images.
|
||||
key: astro-${{ hashFiles('package-lock.json') }}
|
||||
path: ./.astro
|
||||
restore-keys: astro-
|
||||
|
||||
- name: Setup npm Cache
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
||||
with:
|
||||
# Cache for npm
|
||||
path: ~/.npm
|
||||
key: npm-${{ hashFiles('package-lock.json') }}
|
||||
restore-keys: npm-
|
||||
|
||||
- name: Setup node_modules Cache
|
||||
id: modulescache
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
||||
with:
|
||||
# Cache for npm and optimized images.
|
||||
path: ./node_modules
|
||||
key: modules-${{ hashFiles('package-lock.json') }}
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||
with:
|
||||
node-version-file: .nvmrc
|
||||
|
||||
- name: Install Packages
|
||||
if: steps.modulescache.outputs.cache-hit != 'true'
|
||||
run: npm ci
|
||||
|
||||
- name: Check
|
||||
run: npm run check
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
|
||||
- name: Publish to Cloudflare Pages
|
||||
id: cloudflare
|
||||
continue-on-error: true
|
||||
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
|
||||
with:
|
||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||
# By default Cloudflare marks `main` as the "production" branch.
|
||||
# So when this workflow is pushed to refs/heads/main, we set the branch to `main`/"production".
|
||||
branch: ${{ github.ref == 'refs/heads/main' && 'main' || github.head_ref }}
|
||||
# The project name in Cloudflare
|
||||
projectName: website
|
||||
directory: ./build
|
||||
wranglerVersion: "3"
|
||||
|
||||
- name: Comment deploy url
|
||||
if: github.event_name != 'push'
|
||||
continue-on-error: true
|
||||
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
|
||||
with:
|
||||
message-id: cloudflare-deploy
|
||||
message: |
|
||||
### ✅ Deploy Preview ready!
|
||||
|
||||
| Name | Link |
|
||||
|----------------------|-------------------------------------------------------------------------------|
|
||||
|🔨 Latest commit | ${{ github.sha }} |
|
||||
|🔍 Latest deploy log | https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|
||||
|😎 Deploy Preview Url | [${{ steps.cloudflare.outputs.url }}](${{ steps.cloudflare.outputs.url }}) |
|
||||
|🌳 Environment | ${{ steps.cloudflare.outputs.environment }} |
|
||||
---
|
||||
@@ -50,7 +50,6 @@ catalog/
|
||||
dh_catalog/
|
||||
chartsrepo/
|
||||
.cr-index/
|
||||
website/
|
||||
pub/
|
||||
tgz_cache/
|
||||
index_cache/
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
jailmanager.org
|
||||
@@ -0,0 +1,7 @@
|
||||
theme: jekyll-theme-cayman
|
||||
title: Jail Manager
|
||||
description: The home of JailMan
|
||||
show_downloads: true
|
||||
github:
|
||||
zip_url: https://github.com/jailmanager/jailman/zipball/master
|
||||
tar_url: https://github.com/jailmanager/jailman/tarball/master
|
||||
@@ -0,0 +1,26 @@
|
||||
## Welcome to Jail Manager
|
||||
|
||||
Jail Manager is the community that maintains JailMan.
|
||||
|
||||
### JailMan
|
||||
JailMan is a one-line iocage jail management and deployment tool for FreeNAS and FreeBSD.
|
||||
If you are interested in using JailMan, please visit us on github [github](https://github.com/jailmanager/jailman/)
|
||||
|
||||
### Supported operating systems
|
||||
|
||||
While we always aim to improve, we have a limited capacity to support older or newer operating systems. Our focus is the current version of FreeNAS and, the future, TrueNAS CORE.
|
||||
That being said: We do look forward to support more operating systems like FreeBSD and Linux.
|
||||
|
||||
### Roadmap
|
||||
|
||||
While we can't make promises due to the nature of opensource development, we aim to release frequent bugfixes aka minor releases (1.2.x releases) and less frequent major releases that will also change the way you interact with JailMan.
|
||||
|
||||
Our current roadmap is as follows:
|
||||
|
||||
- Next Minor release (1.2.3): Before 15-07-2020
|
||||
- Next Major release (1.3.0): Before 01-09-2020
|
||||
|
||||
|
||||
### Support or Contact
|
||||
|
||||
Having trouble with JailMan? Check out our [Wiki](https://wiki.jailmanager.org) or [github](https://github.com/jailmanager/jailman/) and we’ll help you sort it out.
|
||||
@@ -0,0 +1,119 @@
|
||||
package website
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"sync"
|
||||
|
||||
"github.com/truecharts/private/clustertool/pkg/charts/chartFile"
|
||||
"github.com/truecharts/private/clustertool/pkg/helper"
|
||||
)
|
||||
|
||||
type ChartList struct {
|
||||
TotalCount int64 `json:"totalCount"`
|
||||
Trains []Train `json:"trains"`
|
||||
}
|
||||
|
||||
type Train struct {
|
||||
Name string `json:"name"`
|
||||
Count int64 `json:"count"`
|
||||
Charts []Chart `json:"charts"`
|
||||
}
|
||||
|
||||
type Chart struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Train string `json:"train"`
|
||||
Link string `json:"link"`
|
||||
Icon string `json:"icon"`
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
type ChartListOptions struct {
|
||||
OutputPath string // Path to put the chart list json file
|
||||
TrainFilter []string // Empty means all trains
|
||||
sync.Mutex
|
||||
list *ChartList
|
||||
}
|
||||
|
||||
func (o *ChartListOptions) WriteChartList() error {
|
||||
if o.list == nil {
|
||||
return fmt.Errorf("chart list is nil")
|
||||
}
|
||||
|
||||
data, err := json.Marshal(o.list)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return os.WriteFile(o.OutputPath, data, 0644)
|
||||
}
|
||||
func (o *ChartListOptions) GetChartData(path string, entry os.DirEntry, err error) error {
|
||||
if o.list == nil {
|
||||
o.list = &ChartList{}
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Skip directories that are excluded
|
||||
if entry.IsDir() && slices.Contains(helper.ExcludedDirs, entry.Name()) {
|
||||
return filepath.SkipDir
|
||||
}
|
||||
|
||||
if entry.Name() != "Chart.yaml" {
|
||||
return nil
|
||||
}
|
||||
|
||||
chart := chartFile.NewHelmChart()
|
||||
if err := chart.LoadFromFile(path); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
train := chartFile.GetTrain(path, chart)
|
||||
if len(o.TrainFilter) > 0 {
|
||||
if !slices.Contains(o.TrainFilter, train) {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
o.Lock()
|
||||
defer o.Unlock()
|
||||
// Increment the total count
|
||||
o.list.TotalCount++
|
||||
webChart := Chart{
|
||||
Name: chart.Metadata.Name,
|
||||
Description: chart.Metadata.Description,
|
||||
Icon: chart.Metadata.Icon,
|
||||
Link: chart.Metadata.Home,
|
||||
Version: chart.Metadata.Version,
|
||||
Train: chartFile.GetTrain(path, chart),
|
||||
}
|
||||
|
||||
trainExists := false
|
||||
for idx, train := range o.list.Trains {
|
||||
if train.Name == webChart.Train {
|
||||
trainExists = true
|
||||
// Increase chart count for the existing train
|
||||
o.list.Trains[idx].Count++
|
||||
// Add the chart to the existing train
|
||||
o.list.Trains[idx].Charts = append(o.list.Trains[idx].Charts, webChart)
|
||||
}
|
||||
}
|
||||
if trainExists {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Add a new train with the chart
|
||||
o.list.Trains = append(o.list.Trains, Train{
|
||||
Name: webChart.Train,
|
||||
Count: 1,
|
||||
Charts: []Chart{webChart},
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# build output
|
||||
dist/
|
||||
build/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
@@ -0,0 +1,4 @@
|
||||
# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml
|
||||
MD013:
|
||||
line_length: 150
|
||||
MD033: false
|
||||
@@ -0,0 +1 @@
|
||||
save-exact=true
|
||||
@@ -0,0 +1 @@
|
||||
20.18.0
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"astro-build.astro-vscode",
|
||||
"redhat.vscode-yaml",
|
||||
"mrmlnc.vscode-duplicate",
|
||||
"mhutchie.git-graph",
|
||||
"eamodio.gitlens",
|
||||
"yzhang.markdown-all-in-one",
|
||||
"searKing.preview-vscode",
|
||||
"DavidAnson.vscode-markdownlint",
|
||||
"IgorSbitnev.error-gutters",
|
||||
"usernamehw.errorlens"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Install All Recommended Extensions",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "foreach ($ext in (Get-Content -Raw .vscode/extensions.json | ConvertFrom-Json).recommendations) { Write-Host Installing $ext; code --install-extension $ext; }"
|
||||
},
|
||||
"linux": {
|
||||
"command": "cat .vscode/extensions.json | jq .recommendations[] | xargs -n 1 code . --install-extension"
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "folderOpen"
|
||||
},
|
||||
"presentation": {
|
||||
"reveal": "silent"
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
Copyright (C) The TrueCharts Project and it's owner(s) - All Rights Reserved
|
||||
Unauthorized copying of any file, via any medium is strictly prohibited
|
||||
Additional rights might be granted on a case-by-base basis.
|
||||
|
||||
Owners of TrueCharts and it's intellectual property:
|
||||
Kjeld Schouten <info@kjeldschouten.nl>
|
||||
@@ -0,0 +1,39 @@
|
||||
# Chart Docs
|
||||
|
||||
## News
|
||||
|
||||
- To add new authors, add their username in the `authors.ts` file in `src/content/docs/news/authors.ts`.
|
||||
- News Posts **must** have these fields in the `frontmatter`:
|
||||
- `title`
|
||||
- `slug` (must start with `news/`)
|
||||
- `date`
|
||||
- `authors` (The key in the `authors` object in `src/content/docs/news/authors.ts`)
|
||||
|
||||
## Supported Code Block Languages
|
||||
|
||||
Check upstream [docs](https://github.com/shikijs/textmate-grammars-themes/blob/main/packages/tm-grammars/README.md#grammars)
|
||||
|
||||
## 🧞 Commands
|
||||
|
||||
All commands are run from the root of the project, from a terminal:
|
||||
|
||||
| Command | Action |
|
||||
| :------------------------ | :----------------------------------------------- |
|
||||
| `npm install` | Installs dependencies |
|
||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||
| `npm run dev-windows` | Starts local dev server on windows machines |
|
||||
| `npm run build` | Build your production site to `./dist/` |
|
||||
| `npm run preview` | Preview your build locally, before deploying |
|
||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||
|
||||
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
|
||||
|
||||
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
|
||||
|
||||
Static assets, like favicons, can be placed in the `public/` directory.
|
||||
|
||||
## 👀 Want to learn more?
|
||||
|
||||
Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build),
|
||||
or jump into the [Astro Discord server](https://astro.build/chat).
|
||||
@@ -0,0 +1,190 @@
|
||||
import { defineConfig } from "astro/config";
|
||||
import starlight from "@astrojs/starlight";
|
||||
// https://starlight.astro.build/guides/css-and-tailwind/#tailwind-css
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
// https://github.com/HiDeoo/starlight-links-validator
|
||||
import starlightLinksValidator from "starlight-links-validator";
|
||||
// https://github.com/HiDeoo/starlight-image-zoom
|
||||
import starlightImageZoom from "starlight-image-zoom";
|
||||
// https://github.com/HiDeoo/starlight-blog
|
||||
import starlightBlog from "starlight-blog";
|
||||
// https://docs.astro.build/en/guides/integrations-guide/sitemap/
|
||||
import sitemap from "@astrojs/sitemap";
|
||||
// https://github.com/alextim/astro-lib/tree/main/packages/astro-robots-txt#readme
|
||||
import robotsTxt from "astro-robots-txt";
|
||||
// https://github.com/giuseppelt/astro-lottie
|
||||
import lottie from "astro-integration-lottie";
|
||||
// https://github.com/risu729/astro-better-image-service
|
||||
import betterImageService from "astro-better-image-service";
|
||||
// https://github.com/Playform/Compress
|
||||
import playformCompress from "@playform/compress";
|
||||
// Configure global authors here
|
||||
import { authors } from "./src/content/docs/news/authors";
|
||||
const site = "https://truecharts.org";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site: site,
|
||||
base: "/",
|
||||
output: "static",
|
||||
outDir: "build",
|
||||
cacheDir: ".astro/cache",
|
||||
trailingSlash: "ignore",
|
||||
compressHTML: true,
|
||||
prefetch: {
|
||||
prefetchAll: true,
|
||||
},
|
||||
build: {
|
||||
output: "directory",
|
||||
},
|
||||
experimental: {
|
||||
contentCollectionCache: false,
|
||||
},
|
||||
integrations: [
|
||||
starlight({
|
||||
title: "TrueCharts Charts",
|
||||
customCss: ["./src/tailwind.css"],
|
||||
tagline: "Awesome Helm Charts",
|
||||
pagefind: true,
|
||||
logo: {
|
||||
src: "./src/assets/with-text.svg",
|
||||
replacesTitle: true,
|
||||
},
|
||||
head: [
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9270569596814796",
|
||||
crossorigin: "anonymous",
|
||||
defer: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
src: "https://www.googletagmanager.com/gtag/js?id=G-Q9NT692BZZ",
|
||||
defer: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
content:
|
||||
"window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Q9NT692BZZ');",
|
||||
},
|
||||
],
|
||||
tableOfContents: {
|
||||
maxHeadingLevel: 6,
|
||||
},
|
||||
social: {
|
||||
github: "https://github.com/truecharts",
|
||||
facebook: "https://www.facebook.com/truecharts",
|
||||
"x.com": "https://twitter.com/useTrueCharts",
|
||||
discord: "https://discord.gg/tVsPTHWTtr",
|
||||
telegram: "https://t.me/s/truecharts",
|
||||
openCollective: "https://opencollective.com/truecharts",
|
||||
patreon: "https://patreon.com/truecharts",
|
||||
},
|
||||
editLink: {
|
||||
baseUrl: "https://github.com/truecharts/website/tree/main/",
|
||||
},
|
||||
components: {
|
||||
Header: "./src/components/CustomHeader.astro",
|
||||
Hero: "./src/components/CustomHero.astro",
|
||||
},
|
||||
plugins: [
|
||||
starlightBlog({
|
||||
prefix: "news",
|
||||
title: "TrueCharts News",
|
||||
postCount: 5,
|
||||
recentPostCount: 10,
|
||||
authors: authors,
|
||||
}),
|
||||
// Do not put that before starlightBlog
|
||||
starlightImageZoom(),
|
||||
starlightLinksValidator({
|
||||
errorOnRelativeLinks: false,
|
||||
errorOnFallbackPages: false,
|
||||
exclude: [
|
||||
"/s/charts",
|
||||
"/s/discord",
|
||||
"/s/fb",
|
||||
"/s/ghs",
|
||||
"/s/git",
|
||||
"/s/oc",
|
||||
"/s/patreon",
|
||||
"/s/shop",
|
||||
"/s/tg",
|
||||
"/s/twitter",
|
||||
],
|
||||
}),
|
||||
],
|
||||
sidebar: [
|
||||
{
|
||||
label: "General",
|
||||
collapsed: false,
|
||||
autogenerate: {
|
||||
directory: "general",
|
||||
collapsed: true
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Common Chart Options",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "common",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Guides",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "guides",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "ClusterTool",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "clustertool",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Charts",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "charts",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Development",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "development",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Deprecated",
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: "deprecated",
|
||||
},
|
||||
},
|
||||
],
|
||||
}),
|
||||
sitemap(),
|
||||
robotsTxt(),
|
||||
tailwind({
|
||||
// Disable the default base styles:
|
||||
applyBaseStyles: false,
|
||||
}),
|
||||
lottie(),
|
||||
betterImageService(),
|
||||
playformCompress({
|
||||
HTML: false,
|
||||
CSS: true,
|
||||
JavaScript: true,
|
||||
Image: true,
|
||||
SVG: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,70 @@
|
||||
words:
|
||||
- alfi
|
||||
- APPNAME
|
||||
- archivebox
|
||||
- astro
|
||||
- astrojs
|
||||
- automount
|
||||
- Bitnami
|
||||
- bitpushr
|
||||
- cloudnative
|
||||
- clusterissuer
|
||||
- Clustertool
|
||||
- CNPG
|
||||
- codespace
|
||||
- Codespaces
|
||||
- Collabora
|
||||
- configmap
|
||||
- crossorigin
|
||||
- Dockerhub
|
||||
- downscaling
|
||||
- Dragonfish
|
||||
- fluxcd
|
||||
- frontmatter
|
||||
- gitops
|
||||
- heavyscript
|
||||
- hyperconverged
|
||||
- iscsi
|
||||
- Jagr
|
||||
- jagrbombs
|
||||
- Jailman
|
||||
- Jellyfin
|
||||
- Kjeld
|
||||
- kofeh
|
||||
- kqmaverick
|
||||
- kubeapps
|
||||
- Merch
|
||||
- metallb
|
||||
- Minio
|
||||
- mountpoint
|
||||
- Nextcloud
|
||||
- Noob
|
||||
- notoriosly
|
||||
- ornias
|
||||
- pagefind
|
||||
- Photoprism
|
||||
- Pihole
|
||||
- playform
|
||||
- Postgreqsql
|
||||
- preconfigured
|
||||
- Prowlarr
|
||||
- PVCPATH
|
||||
- Radarr
|
||||
- Schouten
|
||||
- sdimovv
|
||||
- shadofall
|
||||
- shoutout
|
||||
- showstealers
|
||||
- Sidero
|
||||
- statefulset
|
||||
- statefulsets
|
||||
- Syncthing
|
||||
- tailscale
|
||||
- TCCR
|
||||
- templating
|
||||
- Traefik
|
||||
- truecharts
|
||||
- upscaling
|
||||
- Vaultwarden
|
||||
- Xstar
|
||||
- Xsystems
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "website",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "export NODE_OPTIONS=--max-old-space-size=22000 && astro dev",
|
||||
"start": "export NODE_OPTIONS=--max-old-space-size=22000 && astro dev",
|
||||
"check": "export NODE_OPTIONS=--max-old-space-size=22000 && astro check",
|
||||
"build": "export NODE_OPTIONS=--max-old-space-size=22000 && astro build",
|
||||
"preview": "export NODE_OPTIONS=--max-old-space-size=22000 && astro preview",
|
||||
"astro": "export NODE_OPTIONS=--max-old-space-size=22000 && astro",
|
||||
"dev-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro dev",
|
||||
"start-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro dev",
|
||||
"check-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro check",
|
||||
"build-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro build",
|
||||
"preview-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro preview",
|
||||
"astro-windows": "set NODE_OPTIONS=--max-old-space-size=22000 && astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "0.9.3",
|
||||
"@astrojs/sitemap": "3.1.6",
|
||||
"@astrojs/starlight": "0.27.1",
|
||||
"@astrojs/starlight-tailwind": "2.0.3",
|
||||
"@astrojs/tailwind": "5.1.0",
|
||||
"@playform/compress": "0.1.1",
|
||||
"astro": "4.15.4",
|
||||
"astro-better-image-service": "2.0.29",
|
||||
"astro-integration-lottie": "0.3.0",
|
||||
"astro-robots-txt": "1.0.0",
|
||||
"lottie-web": "5.12.2",
|
||||
"prettier": "3.3.3",
|
||||
"sharp": "0.33.5",
|
||||
"starlight-blog": "0.12.0",
|
||||
"starlight-image-zoom": "0.8.0",
|
||||
"starlight-links-validator": "0.11.0",
|
||||
"tailwindcss": "3.4.10",
|
||||
"typescript": "5.6.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
truecharts.org
|
||||
@@ -0,0 +1,44 @@
|
||||
# Changes in this file should preferably be reflected in docs/s/
|
||||
# social
|
||||
/s/discord https://discord.gg/tVsPTHWTtr 308
|
||||
/s/twitter https://twitter.com/useTrueCharts 308
|
||||
/s/fb https://www.facebook.com/truecharts 308
|
||||
/s/tg https://t.me/s/truecharts 308
|
||||
|
||||
# sponsor
|
||||
/s/oc https://opencollective.com/truecharts 308
|
||||
/s/patreon https://patreon.com/truecharts 308
|
||||
/s/ghs https://github.com/sponsors/truecharts 308
|
||||
|
||||
# other
|
||||
/s/git https://github.com/truecharts 308
|
||||
/s/charts https://github.com/truecharts/charts 308
|
||||
/s/shop https://www.etsy.com/shop/TrueCharts 308
|
||||
|
||||
# truecharts
|
||||
/s /general/sponsor/ 308
|
||||
/blog/* /news/:splat 308
|
||||
|
||||
# big chart-changes
|
||||
/charts/operators/* /charts/system/:splat 308
|
||||
/charts/enterprise/* /charts/premium/:splat 308
|
||||
|
||||
# Cover for .md linknames
|
||||
/*.md /:splat 301
|
||||
|
||||
# Cover for intro pages now being index
|
||||
/*/intro /:splat/ 301
|
||||
|
||||
# old->new website
|
||||
/manual/* /general/:splat 301
|
||||
/platforms/* /:splat 301
|
||||
/general/common/* /common/:splat 301
|
||||
/sponsor /general/sponsor/
|
||||
|
||||
# SCALE guides and deprecation redirects
|
||||
/scale/guides/getting-started/ /deprecated/scale
|
||||
/scale /deprecated/scale
|
||||
/scale/* /deprecated/scale/:splat 301
|
||||
|
||||
# HELM is now found under "Guides"
|
||||
/helm /guides
|
||||
@@ -0,0 +1 @@
|
||||
google.com, pub-9270569596814796, DIRECT, f08c47fec0942fa0
|
||||
|
After Width: | Height: | Size: 240 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 320 B |
|
After Width: | Height: | Size: 626 B |
|
After Width: | Height: | Size: 660 B |
|
After Width: | Height: | Size: 304 B |
|
After Width: | Height: | Size: 292 B |
|
After Width: | Height: | Size: 206 B |
|
After Width: | Height: | Size: 380 B |
|
After Width: | Height: | Size: 850 B |
|
After Width: | Height: | Size: 428 B |
|
After Width: | Height: | Size: 498 B |
|
After Width: | Height: | Size: 426 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 566 B |
|
After Width: | Height: | Size: 520 B |
|
After Width: | Height: | Size: 544 B |
|
After Width: | Height: | Size: 354 B |
|
After Width: | Height: | Size: 402 B |
|
After Width: | Height: | Size: 236 B |
|
After Width: | Height: | Size: 592 B |
|
After Width: | Height: | Size: 762 B |
|
After Width: | Height: | Size: 334 B |
|
After Width: | Height: | Size: 558 B |
|
After Width: | Height: | Size: 264 B |
|
After Width: | Height: | Size: 496 B |
|
After Width: | Height: | Size: 654 B |
|
After Width: | Height: | Size: 240 B |
|
After Width: | Height: | Size: 476 B |
|
After Width: | Height: | Size: 520 B |
|
After Width: | Height: | Size: 288 B |
|
After Width: | Height: | Size: 170 B |
|
After Width: | Height: | Size: 610 B |
|
After Width: | Height: | Size: 430 B |
|
After Width: | Height: | Size: 662 B |
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 988 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 558 B |
|
After Width: | Height: | Size: 414 B |
|
After Width: | Height: | Size: 552 B |
|
After Width: | Height: | Size: 470 B |
|
After Width: | Height: | Size: 226 B |
|
After Width: | Height: | Size: 564 B |
|
After Width: | Height: | Size: 502 B |
|
After Width: | Height: | Size: 526 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 640 B |
|
After Width: | Height: | Size: 770 B |
|
After Width: | Height: | Size: 580 B |
|
After Width: | Height: | Size: 838 B |
|
After Width: | Height: | Size: 554 B |
|
After Width: | Height: | Size: 306 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 298 B |
|
After Width: | Height: | Size: 234 B |
|
After Width: | Height: | Size: 502 B |
|
After Width: | Height: | Size: 382 B |
|
After Width: | Height: | Size: 494 B |
|
After Width: | Height: | Size: 400 B |
|
After Width: | Height: | Size: 586 B |
|
After Width: | Height: | Size: 914 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 628 B |
|
After Width: | Height: | Size: 1018 B |
|
After Width: | Height: | Size: 730 B |
|
After Width: | Height: | Size: 598 B |
|
After Width: | Height: | Size: 330 B |
|
After Width: | Height: | Size: 678 B |
|
After Width: | Height: | Size: 428 B |
|
After Width: | Height: | Size: 192 B |