refactor: move to monorepo
This commit is contained in:
parent
f81e3e1dd6
commit
d891426a12
88 changed files with 403 additions and 160 deletions
16
apps/vojtechmares.com/pages/_app.tsx
Normal file
16
apps/vojtechmares.com/pages/_app.tsx
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import { Analytics } from '@vercel/analytics/react';
|
||||
import { AppProps } from "next/app";
|
||||
|
||||
import "@/css/tailwind.css";
|
||||
|
||||
function App({ Component, pageProps }: AppProps) {
|
||||
return (
|
||||
<>
|
||||
<Component {...pageProps} />
|
||||
<Analytics />
|
||||
</>
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
export default App;
|
||||
55
apps/vojtechmares.com/pages/_document.tsx
Normal file
55
apps/vojtechmares.com/pages/_document.tsx
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import { Head, Html, Main, NextScript } from "next/document";
|
||||
|
||||
export default function Document(props: any) {
|
||||
let pageProps = props.__NEXT_DATA__?.props?.pageProps;
|
||||
|
||||
return (
|
||||
<Html
|
||||
className="h-full scroll-smooth bg-white antialiased [font-feature-settings:'ss01']"
|
||||
lang="cs"
|
||||
>
|
||||
<Head>
|
||||
{/* <link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link
|
||||
rel="preconnect"
|
||||
href="https://fonts.gstatic.com"
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Lexend:wght@400;500&display=swap"
|
||||
/> */}
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="/apple-touch-icon.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="/favicon-16x16.png"
|
||||
/>
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
|
||||
<meta name="msapplication-TileColor" content="#da532c" />
|
||||
<meta name="theme-color" content="#ffffff" />
|
||||
<script
|
||||
defer
|
||||
data-domain="vojtechmares.com"
|
||||
src="https://plausible.io/js/script.js"
|
||||
></script>
|
||||
</Head>
|
||||
<body className="flex h-full flex-col">
|
||||
<Main />
|
||||
<NextScript />
|
||||
</body>
|
||||
</Html>
|
||||
);
|
||||
}
|
||||
39
apps/vojtechmares.com/pages/index.tsx
Normal file
39
apps/vojtechmares.com/pages/index.tsx
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import Head from "next/head";
|
||||
|
||||
import { Header } from "@/components/layout/Header";
|
||||
import { Hero } from "@/components/homepage/Hero";
|
||||
import { CallToAction } from "@/components/homepage/CallToAction";
|
||||
import { Faqs } from "@/components/homepage/Faqs";
|
||||
import { Footer } from "@/components/layout/Footer";
|
||||
import { Services } from "@/components/homepage/Services";
|
||||
import { WhatIDo } from "@/components/homepage/WhatIDo";
|
||||
import { Testimonials } from "@/components/homepage/Testimonials";
|
||||
import { KubernetesEverywhere } from "@/components/homepage/KubernetesEverywhere";
|
||||
import { TrainingList } from "@/components/homepage/Training";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>Vojtěch Mareš - DevOps konzultant, lektor, engineer</title>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="Vojtěch Mareš - DevOps konzultant, lektor, engineer"
|
||||
/>
|
||||
</Head>
|
||||
<main>
|
||||
<Header />
|
||||
<Hero />
|
||||
<WhatIDo />
|
||||
<TrainingList />
|
||||
<KubernetesEverywhere />
|
||||
<CallToAction />
|
||||
<Testimonials />
|
||||
<Services />
|
||||
{/* <Faqs /> */}
|
||||
</main>
|
||||
<Footer />
|
||||
</>
|
||||
);
|
||||
}
|
||||
49
apps/vojtechmares.com/pages/skoleni/argocd.mdx
Normal file
49
apps/vojtechmares.com/pages/skoleni/argocd.mdx
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
|
||||
import logoArgo from "@/images/logos/tools/argo.png";
|
||||
|
||||
export const meta = {
|
||||
name: "ArgoCD",
|
||||
price: {
|
||||
open: 5900,
|
||||
company: 24000,
|
||||
},
|
||||
logo: logoArgo,
|
||||
description:
|
||||
"ArgoCD je GitOps nastroj kterym nasazujeme aplikace do Kubernetes. Pracuje na zaklade deklaraticnich konfiguracnich souboru, ktete si stahuje z Gitu. To znamena, ze vse co commitneme do repozitare, se na nasadi do Kubernetes. O vsech zmenach: co, kdy, kdo udelal budeme mit prehledne zaznami v Gitu.",
|
||||
days: 1,
|
||||
featured: true,
|
||||
weight: 49,
|
||||
};
|
||||
|
||||
# Popis technologie
|
||||
|
||||
ArgoCD je GitOps nastroj kterym nasazujeme aplikace do Kubernetes. Pracuje na zaklade deklaraticnich konfiguracnich souboru, ktete si stahuje z Gitu. To znamena, ze vse co commitneme do repozitare, se na nasadi do Kubernetes. O vsech zmenach: co, kdy, kdo udelal budeme mit prehledne zaznami v Gitu.
|
||||
|
||||
# Co Vás naučím
|
||||
|
||||
- Uvod do CD
|
||||
- Co je ArgoCD
|
||||
- Instalace a konfigurace
|
||||
- GitOps
|
||||
- Plain Kubernetes manifests
|
||||
- Helm packages
|
||||
- Kustomize
|
||||
- Jsonnet
|
||||
- Rollbacks
|
||||
- Best Practices
|
||||
- User Management
|
||||
|
||||
# Pro koho je školení určeno
|
||||
|
||||
Školení je určeno pro vývojáře a DevOpsáky, kteří chteji automaticky nasazovat do Kubernetes podle GitOps principu.
|
||||
|
||||
# Předchozí znalosti
|
||||
|
||||
Zakladni znalost Kubernetes
|
||||
Technické požadavky
|
||||
Webový prohlížeč
|
||||
Přístup na internet
|
||||
|
||||
export default ({ children }) => (
|
||||
<TrainingLayout content={children} meta={meta} />
|
||||
);
|
||||
52
apps/vojtechmares.com/pages/skoleni/git.mdx
Normal file
52
apps/vojtechmares.com/pages/skoleni/git.mdx
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
|
||||
import logoGit from "@/images/logos/tools/git.png";
|
||||
|
||||
export const meta = {
|
||||
name: "Git",
|
||||
price: {
|
||||
open: 5900,
|
||||
company: 24000,
|
||||
},
|
||||
logo: logoGit,
|
||||
description:
|
||||
"Git je moderní verzovaci nástroj, který se stal de facto standardem mezi vývojáři. Používají jej na denní bázy jednotlivci, startupy i korporace. Git vám nabízí jednoduchou kolaboraci na projektu s více lidmi a práci na více částech současně aniž byste si zasahovali do rozdělaných věcí nebo je jinak narušovali. Spolupráci na vývoji projektu ještě zlepšuje Gitlab, což je kolaborativni platforma na návrh, vývoj a provozování software (více o Gitlabu v samostatném kurzu).",
|
||||
days: 1,
|
||||
weight: 1,
|
||||
};
|
||||
|
||||
# Co je to Git?
|
||||
|
||||
Git je moderní verzovaci nástroj, který se stal de facto standardem mezi vývojáři. Používají jej na denní bázy jednotlivci, startupy i korporace. Git vám nabízí jednoduchou kolaboraci na projektu s více lidmi a práci na více částech současně aniž byste si zasahovali do rozdělaných věcí nebo je jinak narušovali. Spolupráci na vývoji projektu ještě zlepšuje Gitlab, což je kolaborativni platforma na návrh, vývoj a provozování software (více o Gitlabu v samostatném kurzu).
|
||||
|
||||
# Jak školení probíhá
|
||||
|
||||
Na školení formou workshopu si vysvětlíme proč je dobré Git používat, jak funguje (proč dnes nemá konkurenty) a best practice. Ukážeme si vše od instalace a základního nastavení Gitu, přes jednoduchou práci na jedné větvi až po práci v teamu a s více větvemi za pomoci různých mergovacích strategií (merge, rebase). Ukážeme si výhody a nevýhody obou z nich a je pak na Vás jak to budete dělat. Také si ukážeme jak se dostat ze špatných situací, jako omylem jsem si všechno smazal a podobně.
|
||||
|
||||
# Co Vás naučím
|
||||
|
||||
Konfigirace GITu
|
||||
Vytvořit nový repozitář
|
||||
Základní ovládání GITu
|
||||
Práce v jedné větvi
|
||||
Práce ve větvích - merge, rebase (silná stránka Gitu)
|
||||
Práce se vzdálenými repozitáři
|
||||
Záchrana smazaných dat z repozitáře
|
||||
|
||||
# Pro koho je školení určeno
|
||||
|
||||
Školení je určeno primárně pro vývojáře, kteří neverzují vůbec nebo nepoužívají Git. Zároveň je vhodné i pro ty, kteří Git nevyužívají na 100% (git commit, git pull, git push). Ať jde o malé weby nebo velké projekty, Git si najde uplatnění. Dále je kurz vhodný i pro ty, kteří nepíšou kód tak často, ale občas potřebují něco zaverzovat, například nějaké migrační skripty DB anebo konfiguraci serveru. Git pomůže i DBA nebo DevOps.
|
||||
|
||||
## Předchozí znalosti
|
||||
|
||||
Základy programování
|
||||
Základy práce v terminálu výhodou
|
||||
Základní znalost Gitu výhodou
|
||||
|
||||
## Technické požadavky
|
||||
|
||||
Nainstalovaný Git
|
||||
Přístup na internet - ideálně bez korporátní proxy, případně nastavenou proxy v prohlížeči
|
||||
|
||||
export default ({ children }) => (
|
||||
<TrainingLayout content={children} meta={meta} />
|
||||
);
|
||||
52
apps/vojtechmares.com/pages/skoleni/kubernetes.mdx
Normal file
52
apps/vojtechmares.com/pages/skoleni/kubernetes.mdx
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import logoKubernetes from "@/images/logos/tools/kubernetes.png";
|
||||
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
|
||||
|
||||
export const meta = {
|
||||
name: "Kubernetes",
|
||||
price: {
|
||||
open: 11900,
|
||||
company: 44000,
|
||||
},
|
||||
logo: logoKubernetes,
|
||||
description:
|
||||
"Kubernetes jsou dnes nejrozšířenější platformou na hostování Docker kontejnerů a jsou podporovány velkými hráči na trhu (Google, Amazon, Microsoft) skrz Cloud Native Computing Foundation. Kubernetes pro provoz používají všechny velikosti firem, od startupu po korporace.",
|
||||
days: 2,
|
||||
featured: true,
|
||||
weight: 50,
|
||||
};
|
||||
|
||||
# Popis technologie
|
||||
|
||||
Kubernetes jsou dnes nejrozšířenější platformou na hostování Docker kontejnerů a jsou podporovány velkými hráči na trhu (Google, Amazon, Microsoft) skrz Cloud Native Computing Foundation. Kubernetes pro provoz používají všechny velikosti firem, od startupu po korporace.
|
||||
|
||||
# Jak školení probíhá
|
||||
|
||||
Školeni probíhá formou workshopů, vše si prakticky vyzkoušíme a osaháme. Ukážeme jak spustit Kubernetes lokálně (pro vývoj) a na cloudové platformě DigitalOcean. Dozvíme se základní strukturu Kubernetes a projdeme si jeho komponenty. Naučíme se jak napsat Kubernetes manifest a jak jim nasadit aplikaci v Dockeru. Dále si ukážeme jak pracovat s právama v Kubernetes a jak používat (a psát) Kubernetes balíčky v Helmu.
|
||||
|
||||
# Co Vás naučím
|
||||
|
||||
- Teoretický úvod do Kubernetes
|
||||
- Instalace Minikube a kubectl (pro ty kteří nenainstalovali doma)
|
||||
- Popis Kubernetes komponent
|
||||
- Deployment do Kubernetes
|
||||
- Práce s právy v Kubernetes clusteru
|
||||
- Teoretický úvod do Helm balíčku
|
||||
- Instalace / Deployment pomocí Helmu
|
||||
- Psaní vlastního Helm balíčku
|
||||
|
||||
# Pro koho je školení určeno
|
||||
|
||||
Školení je určeno pro lidi (vývojáři a devops), kteří mají zájem provozovat své Docker aplikace v Kubernetes.
|
||||
|
||||
# Předchozí znalosti
|
||||
|
||||
Základy práce s Dockerem
|
||||
Základy práce s Linuxem
|
||||
Základy práce v terminálu
|
||||
Technické požadavky
|
||||
Nainstalovaný Kubernetes
|
||||
Přístup na internet - ideálně bez korporátní proxy, případně nastavenou proxy v prohlížeči
|
||||
|
||||
export default ({ children }) => (
|
||||
<TrainingLayout content={children} meta={meta} />
|
||||
);
|
||||
59
apps/vojtechmares.com/pages/skoleni/terraform.mdx
Normal file
59
apps/vojtechmares.com/pages/skoleni/terraform.mdx
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
|
||||
import logoTerraform from "@/images/logos/tools/terraform.png";
|
||||
|
||||
export const meta = {
|
||||
name: "Terraform",
|
||||
price: {
|
||||
open: 5900,
|
||||
company: 24000,
|
||||
},
|
||||
logo: logoTerraform,
|
||||
description:
|
||||
"Terraform je nástroj, který se používá ke správě infrastruktury v cloudu, jak veřejném (AWS, Azure, GCP), tak privátním (OpenStack, VMware vSphere). Terraform Vám umožní spravovat infrastruktutru jako kód, to znamená verzovanou v Gitu, přidávání resources pomocí merge (pull) requestů a mnoho dalších výhod. Infrastrukturu můžete dále nasadit do testovacího prostředí přesně tak, jako je v produkci bez zbytečného úsilí. O všech komponentách máte přehled a můžete predikovat ceny. Konec klikání infrastruktury, zkuste Terraform. Terraform umožnuje spravovat více cloudových providerů současne, zároveň umožnuje pracovat s hibridními cloudy (část v privátním cloudu, část ve veřejném).",
|
||||
days: 1,
|
||||
featured: true,
|
||||
weight: 31,
|
||||
};
|
||||
|
||||
# Co to je Terraform a k čemu se používá?
|
||||
|
||||
Terraform je nástroj, který se používá ke správě infrastruktury v cloudu, jak veřejném (AWS, Azure, GCP), tak privátním (OpenStack, VMware vSphere).
|
||||
|
||||
Terraform Vám umožní spravovat infrastruktutru jako kód, to znamená verzovanou v Gitu, přidávání resources pomocí merge (pull) requestů a mnoho dalších výhod. Infrastrukturu můžete dále nasadit do testovacího prostředí přesně tak, jako je v produkci bez zbytečného úsilí. O všech komponentách máte přehled a můžete predikovat ceny. Konec klikání infrastruktury, zkuste Terraform.
|
||||
|
||||
Terraform umožnuje spravovat více cloudových providerů současne, zároveň umožnuje pracovat s hibridními cloudy (část v privátním cloudu, část ve veřejném).
|
||||
|
||||
# Jak školení probíhá
|
||||
|
||||
Školení je formou workshopu, všechno si podrobně vyzkoušíme a vysvětlíme. Ukážeme si jak Terraform pracuje, jak jej používat v teamu a jak jím spravovat infrastukturu. Uděláme si příklad infrastruktury jednoduché aplikace, kde nastavíme vše - od DNS, přes Kubernetes cluster po S3 file storage.
|
||||
|
||||
# Co Vás naučím
|
||||
|
||||
- Základní koncept Terraformu
|
||||
- Výhody Terraformu proti Ansible, Puppetu, ...
|
||||
- Konfigurace Terraformu pro práci v teamu
|
||||
- Ovládání Terraform CLI
|
||||
- Úvod do Terraform Configuration Language (HCL)
|
||||
- Terraform Providers - napojení na cloudy
|
||||
- Práce s resources v Terraformu
|
||||
- Terraform moduly
|
||||
- Best Practice
|
||||
|
||||
# Pro koho je školení určeno
|
||||
|
||||
Školení je určeno pro DevOps a adminy, kteří chtějí lépe a efektivněji spravovat infrastrukturu. Zároveň také pro vývojáře, kteří se starají o nejakou infrastrukturu v cloudech.
|
||||
|
||||
# Předchozí znalosti
|
||||
|
||||
- Základní znalost veřejných cloudů (AWS, DigitalOcean, Azure, ...)
|
||||
- Základy práce v terminálu
|
||||
|
||||
# Technické požadavky
|
||||
|
||||
- **Přístup na internet** (ideálně bez korporatni proxy)
|
||||
- Nainstalovaný Terraform
|
||||
- Vlastní účet v [DigitalOcean (referral)](https://m.do.co/c/a0d4508fa827) výhodou
|
||||
|
||||
export default ({ children }) => (
|
||||
<TrainingLayout content={children} meta={meta} />
|
||||
);
|
||||
Reference in a new issue