v1.2.6: заглушка №1 — дата-аналитика вместо хостинга; гейт по переводам строк выше проверки коммита
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
* Набор по умолчанию — **REALITY + AmneziaWG-3.1** (самый совместимый минимум); ответ «все»
|
* Набор по умолчанию — **REALITY + AmneziaWG-3.1** (самый совместимый минимум); ответ «все»
|
||||||
ставит полный набор автора. Умолчание задаётся в одном месте (`DEFAULT_PROTOS`).
|
ставит полный набор автора. Умолчание задаётся в одном месте (`DEFAULT_PROTOS`).
|
||||||
* **Сайт-заглушка переделан на ИТ-тематику:** десять правдоподобных сайтов (хостинг, DevOps,
|
* **Сайт-заглушка переделан на ИТ-тематику:** десять правдоподобных сайтов (дата-аналитика, DevOps,
|
||||||
мониторинг, разработка, аудит, ИТ-поддержка, колокейшн, заметки про Linux, бэкапы, документация)
|
мониторинг, разработка, аудит, ИТ-поддержка, колокейшн, заметки про Linux, бэкапы, документация)
|
||||||
вместо авторских «кофеен и пекарен». Ставится случайный, конкретный — `kit local site 7`,
|
вместо авторских «кофеен и пекарен». Ставится случайный, конкретный — `kit local site 7`,
|
||||||
список — `kit local site --list`. Команда обновляет и файл для nginx, и копию страницы внутри
|
список — `kit local site --list`. Команда обновляет и файл для nginx, и копию страницы внутри
|
||||||
|
|||||||
+16
-21
@@ -468,7 +468,7 @@ EOF
|
|||||||
|
|
||||||
KL_SITE_FILE=/var/www/kit/index.html
|
KL_SITE_FILE=/var/www/kit/index.html
|
||||||
KL_SITE_TITLES=(
|
KL_SITE_TITLES=(
|
||||||
"Nordhost — VPS and cloud hosting"
|
"Radian Analytics — data platforms and BI"
|
||||||
"Circuit Nine — DevOps consulting"
|
"Circuit Nine — DevOps consulting"
|
||||||
"Cortex Monitor — server monitoring"
|
"Cortex Monitor — server monitoring"
|
||||||
"Bluefin Software — custom development"
|
"Bluefin Software — custom development"
|
||||||
@@ -480,7 +480,7 @@ KL_SITE_TITLES=(
|
|||||||
"Halyard Docs — project documentation"
|
"Halyard Docs — project documentation"
|
||||||
)
|
)
|
||||||
KL_SITE_TOPICS=(
|
KL_SITE_TOPICS=(
|
||||||
"VPS-хостинг: тарифы, регионы, платформа"
|
"дата-аналитика: хранилище, отчёты, дашборды"
|
||||||
"DevOps-консалтинг: CI/CD, Kubernetes, наблюдаемость"
|
"DevOps-консалтинг: CI/CD, Kubernetes, наблюдаемость"
|
||||||
"мониторинг серверов: метрики, алерты, статус-страница"
|
"мониторинг серверов: метрики, алерты, статус-страница"
|
||||||
"разработка ПО на заказ: портфолио, стек, процесс"
|
"разработка ПО на заказ: портфолио, стек, процесс"
|
||||||
@@ -545,30 +545,25 @@ HTML
|
|||||||
|
|
||||||
kl_site_html() { # номер (с нуля) → страница на stdout
|
kl_site_html() { # номер (с нуля) → страница на stdout
|
||||||
case $1 in
|
case $1 in
|
||||||
0) # хостинг
|
0) # дата-аналитика
|
||||||
kl_site_open "Nordhost — VPS and cloud hosting" "Virtual servers on NVMe storage in three European regions. Hourly billing, snapshots, private networks and a full API." "Nordhost" '<a href="#plans">Plans</a><a href="#network">Network</a><a href="#docs">Docs</a>'
|
kl_site_open "Radian Analytics — data platforms and BI" "We collect data from accounting, warehouses and websites into one place and build the few reports the business actually reads." "Radian Analytics" '<a href="#services">Services</a><a href="#approach">Approach</a><a href="#contact">Contact</a>'
|
||||||
cat <<'HTML'
|
cat <<'HTML'
|
||||||
<main>
|
<main>
|
||||||
<section class="hero"><div class="wrap">
|
<section class="hero"><div class="wrap">
|
||||||
<h1>Virtual servers that stay out of the way</h1>
|
<h1>Reports that arrive before the meeting</h1>
|
||||||
<p>KVM instances in Frankfurt, Amsterdam and Zurich. Hourly billing, snapshots, private networking, and an API for everything the control panel can do.</p>
|
<p>We pull data out of your accounting system, warehouse and website, load it into one warehouse, and build the handful of dashboards people actually open.</p>
|
||||||
<a class="btn" href="#plans">See plans</a>
|
<a class="btn" href="#services">What we build</a>
|
||||||
</div></section>
|
</div></section>
|
||||||
<section id="plans" class="wrap cards">
|
<section id="services" class="wrap cards">
|
||||||
<div class="card"><h3>Starter — €4/mo</h3><p>1 vCPU, 2 GB RAM, 40 GB NVMe, 20 TB traffic.</p></div>
|
<div class="card"><h3>Data pipelines</h3><p>Scheduled loads from databases, APIs and spreadsheets, with checks that catch a broken source early.</p></div>
|
||||||
<div class="card"><h3>Standard — €9/mo</h3><p>2 vCPU, 4 GB RAM, 80 GB NVMe, 40 TB traffic.</p></div>
|
<div class="card"><h3>Warehouse</h3><p>PostgreSQL or ClickHouse, modelled so that a new question does not need a new table every time.</p></div>
|
||||||
<div class="card"><h3>Compute — €18/mo</h3><p>4 vCPU, 8 GB RAM, 160 GB NVMe, 100 TB traffic.</p></div>
|
<div class="card"><h3>Dashboards</h3><p>The five numbers that matter on one page, with the detail one click behind each of them.</p></div>
|
||||||
</section>
|
</section>
|
||||||
<section id="network" class="wrap prose">
|
<section id="approach" class="wrap prose">
|
||||||
<h2>Network</h2>
|
<h2>How it usually goes</h2>
|
||||||
<p>Every region is connected with redundant 10 GbE uplinks. Traffic inside a region is free, between regions it is billed at cost. IPv6 is included, IPv4 on request.</p>
|
<p>Two weeks to collect the sources and agree on definitions — most arguments turn out to be about definitions, not about software. Then the pipeline runs nightly and the first reports go out a week later.</p>
|
||||||
<h2>Platform</h2>
|
<h2>One warning</h2>
|
||||||
<ul>
|
<p>A dashboard nobody opens is expensive decoration. One report that somebody uses beats ten that nobody does.</p>
|
||||||
<li>Snapshots, weekly backups and one-click rebuilds</li>
|
|
||||||
<li>Private networks, floating IPs and firewalls</li>
|
|
||||||
<li>cloud-init, Terraform provider and REST API</li>
|
|
||||||
<li>Two-factor sign-in and audit log</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
HTML
|
HTML
|
||||||
|
|||||||
@@ -577,3 +577,4 @@ def main():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -29,8 +29,6 @@ done
|
|||||||
(grep -q "^## v$v" CHANGELOG.md || grep -q "^## v$v" FORK-CHANGELOG.md) || die "Нет раздела ## v$v ни в CHANGELOG.md, ни в FORK-CHANGELOG.md (форк ведёт свои записи в FORK-CHANGELOG.md)"
|
(grep -q "^## v$v" CHANGELOG.md || grep -q "^## v$v" FORK-CHANGELOG.md) || die "Нет раздела ## v$v ни в CHANGELOG.md, ни в FORK-CHANGELOG.md (форк ведёт свои записи в FORK-CHANGELOG.md)"
|
||||||
ok "Версия $v во всех скриптах и в CHANGELOG"
|
ok "Версия $v во всех скриптах и в CHANGELOG"
|
||||||
|
|
||||||
[[ -z $(git status --porcelain -- "${FILES[@]}" CHANGELOG.md FORK-CHANGELOG.md) ]] || die "Есть незакоммиченные изменения в файлах релиза – сначала коммит."
|
|
||||||
|
|
||||||
# Переводы строк. Сервер получает файл из git (там LF), а суммы считаются по рабочей копии:
|
# Переводы строк. Сервер получает файл из git (там LF), а суммы считаются по рабочей копии:
|
||||||
# если в рабочей копии окажутся CR, суммы не сойдутся и kit update откажется ставить релиз.
|
# если в рабочей копии окажутся CR, суммы не сойдутся и kit update откажется ставить релиз.
|
||||||
for f in "${FILES[@]}"; do
|
for f in "${FILES[@]}"; do
|
||||||
@@ -38,6 +36,8 @@ for f in "${FILES[@]}"; do
|
|||||||
done
|
done
|
||||||
ok "Переводы строк во всех файлах релиза — LF"
|
ok "Переводы строк во всех файлах релиза — LF"
|
||||||
|
|
||||||
|
[[ -z $(git status --porcelain -- "${FILES[@]}" CHANGELOG.md FORK-CHANGELOG.md) ]] || die "Есть незакоммиченные изменения в файлах релиза – сначала коммит."
|
||||||
|
|
||||||
# Установщик 3X-UI: хеш в скрипте должен совпадать с тем, что сейчас лежит на GitHub.
|
# Установщик 3X-UI: хеш в скрипте должен совпадать с тем, что сейчас лежит на GitHub.
|
||||||
xv=$(sed -n 's/^XUI_VERSION="\(.*\)"/\1/p' scripts/3x-ui.sh)
|
xv=$(sed -n 's/^XUI_VERSION="\(.*\)"/\1/p' scripts/3x-ui.sh)
|
||||||
xs=$(sed -n 's/^XUI_INSTALL_SHA256="\(.*\)"/\1/p' scripts/3x-ui.sh)
|
xs=$(sed -n 's/^XUI_INSTALL_SHA256="\(.*\)"/\1/p' scripts/3x-ui.sh)
|
||||||
|
|||||||
Reference in New Issue
Block a user