diff --git a/new/sites/devopsaci.cz/.babelrc b/new/sites/devopsaci.cz/.babelrc new file mode 100644 index 00000000..01c31d13 --- /dev/null +++ b/new/sites/devopsaci.cz/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["next/babel"], + "plugins": [["styled-components", { "ssr": true }]] + } \ No newline at end of file diff --git a/new/sites/devopsaci.cz/.gitignore b/new/sites/devopsaci.cz/.gitignore new file mode 100644 index 00000000..1437c53f --- /dev/null +++ b/new/sites/devopsaci.cz/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/new/sites/devopsaci.cz/README.md b/new/sites/devopsaci.cz/README.md new file mode 100644 index 00000000..b12f3e33 --- /dev/null +++ b/new/sites/devopsaci.cz/README.md @@ -0,0 +1,34 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/new/sites/devopsaci.cz/components/Copyright.js b/new/sites/devopsaci.cz/components/Copyright.js new file mode 100644 index 00000000..157b077a --- /dev/null +++ b/new/sites/devopsaci.cz/components/Copyright.js @@ -0,0 +1,19 @@ +import styled from 'styled-components'; + +const StyledCopyright = styled.p` +font-size: 1.3rem; +text-align:center; +margin: 2rem 0; +color: ${props => props.theme.background}; +@media (max-width: 520px) { + margin: 1rem 0; + } +` + +const Copyright = () => { + return ( + Ondrej Sika | {new Date().getFullYear()} + ) +} + +export default Copyright diff --git a/new/sites/devopsaci.cz/components/Footer.js b/new/sites/devopsaci.cz/components/Footer.js new file mode 100644 index 00000000..d0108be8 --- /dev/null +++ b/new/sites/devopsaci.cz/components/Footer.js @@ -0,0 +1,34 @@ +import styled from 'styled-components'; + +const StyledContainer = styled.div` +padding: 6rem 0; +background-color: ${props => props.theme.background}; +display: flex; +flex-direction: column; +justify-content: center; +align-items: center; + @media (max-width: 520px) { + padding: 4rem 0; + } + img { + width: 10rem; + margin-bottom: 1rem; + @media (max-width: 520px) { + width: 8rem; + } + } + span{ + color: ${props => props.theme.white}; + } +` + +const Footer = () => { + return ( + + devopsaci-logo +

Devopsáci

+
+ ) +} + +export default Footer diff --git a/new/sites/devopsaci.cz/components/Header.js b/new/sites/devopsaci.cz/components/Header.js new file mode 100644 index 00000000..833032c2 --- /dev/null +++ b/new/sites/devopsaci.cz/components/Header.js @@ -0,0 +1,53 @@ +import styled from 'styled-components'; +import Image from 'next/image'; + +const StyledHeader = styled.div` +background-color: ${props => props.theme.background}; +text-align: center; + div { + padding: 4rem 0; + display: flex; + justify-content: center; + align-items: center; + @media (max-width: 520px) { + padding: 3rem 0; + } + img { + width: 8rem; + margin-right: 2rem; + @media (max-width: 600px) { + width: 7rem; + margin-right: 1.5rem; + } + } + } + p { + padding-bottom:4rem; + font-weight: normal; + font-size: 3rem; + color: ${props => props.theme.white}; + @media (max-width: 600px) { + font-size: 2.5rem; + } + @media (max-width: 520px) { + padding-bottom: 3rem; + } + } +` + +const StyledSpan = styled.span` +color: ${props => props.theme.white}; +` +const Header = () => { + return ( + +
+ devopsaci-logo +

Devopsáci

+
+

česká komunita lidí z DevOps

+
+ ) +} + +export default Header diff --git a/new/sites/devopsaci.cz/components/InfoSection.js b/new/sites/devopsaci.cz/components/InfoSection.js new file mode 100644 index 00000000..608f1764 --- /dev/null +++ b/new/sites/devopsaci.cz/components/InfoSection.js @@ -0,0 +1,223 @@ +import styled from 'styled-components'; +import Image from 'next/image'; +import Link from 'next/link'; + +const StyledWholeContainer = styled.div` +background-color: ${props => props.theme.background}; +` + +const StyledContent = styled.div` +padding: 6rem 0; +width: 80%; +margin: 0 auto; + h2 { + color: ${props => props.theme.white}; + margin-bottom: 6rem; + @media (max-width: 600px) { + margin-bottom: 3rem; + } + } + @media (max-width: 992px) { + width: 90%; + } + @media (max-width: 520px) { + padding: 4rem 0; + } + +` +const StyledContainer = styled.div` +display: grid; +grid-template-columns: repeat(3, 1fr); +align-items:flex-start; +@media (max-width: 850px) { + justify-content: center; + grid-gap: 6rem; + grid-template-columns: 400px; + } +@media (max-width: 600px) { + grid-gap: 4rem; + } + @media (max-width: 520px) { + grid-template-columns: 1fr; + } +` + +const StyledPerson = styled.div` +display:flex; +flex-direction: column; +justify-content:center; +align-items:center; + h3{ + margin-top: 2rem; + font-size: 2.8rem; + font-weight: normal; + color: ${props => props.theme.white}; + @media (max-width: 520px) { + margin-top: 1.5rem; + } + } +` +const StyledImageContainer = styled.div` + background-color: ${props => props.theme.red}; + border-radius: 100%; + width: 25rem; + height: 25rem; + display:flex; + justify-content: center; + align-items: center; + overflow: hidden; + @media (max-width: 600px) { + width: 20rem; + height: 20rem; + } +` +const StyledButton = styled.button` +border: none; +display: block; +margin: 2rem auto; +background-color: ${props => props.theme.white}; +border-radius: 2rem; +padding:0.8rem 1.5rem; +color: ${props => props.theme.background}; +font-family: ${props => props.theme.secondaryFont}; +font-weight: bold; +display: flex; +justify-content: center; +align-items: center; +cursor: pointer; +outline: none; +transition: 0.3s all ease-in-out; +&:hover { + background-color: ${props => props.theme.red}; + color: ${props => props.theme.white}; + } +@media (max-width: 520px) { + margin: 1.5rem auto; + } +` +const StyledPara = styled.p` +color:${props => props.theme.white}; +font-size: 1.6rem; +` +const StyledInfoBottom = styled.div` +margin-top: 30rem; +display:flex; +justify-content: space-between; +align-items: flex-start; + @media (max-width: 600px) { + margin-top: 20rem; + flex-direction: column; + justify-content:center; + align-items: center; + } +` +const StyledNewsletter = styled.div` +display: flex; +flex-direction: column; +justify-content:center; +align-items: center; + h3{ + color: ${props => props.theme.white}; + font-size: 3rem; + @media (max-width: 600px) { + font-size: 2.8rem; + } + } + @media (max-width: 600px) { + margin-bottom: 6rem; + } +` +const StyledNewsletterButton = styled.button` +border: none; +background-color: ${props => props.theme.white}; +margin-top: 2rem; +border-radius: 2rem; +padding:1.5rem 4rem; +color: ${props => props.theme.background}; +font-family: ${props => props.theme.secondaryFont}; +font-weight: bold; +font-size: 2.2rem; +display: flex; +justify-content: center; +align-items: center; +cursor: pointer; +outline: none; +transition: 0.3s all ease-in-out; + &:hover { + background-color: ${props => props.theme.red}; + color: ${props => props.theme.white}; + } + @media (max-width: 400px) { + font-size: 2rem; + padding: 1.5rem 3rem; + } +` + +const InfoSection = () => { + + return ( + + +

Kdo Stojí za devopsaci.cz

+ + + + ondrej-sika-foto + +

Ondřej Šika

+ @ondrejsika + Jsem freelance DevOps konzultant a lektor. Zlepšuji práci vývojářských týmů zaváděním efektivních procesů ve vývoji. +
+ + + martin-jurco-foto + +

Martin Jurčo

+ + @martinjurco + COO & CMO @ SikaLabs. +
+ + + vojtech-mares-foto + +

Vojtěch Mareš

+ @vojtechmares_ + Freelance software vývojář, DevOps konzultant a lektor. Pomůžu vám s řešením infrastruktury, vývojem aplikace až po její nasazení do cloudového prostředí například v Kubernetes. +
+
+ + +

Buďte v obraze

+ + Chci dostávat novinky + +
+
+ paper-plane +
+
+
+
+ ) +} + +export default InfoSection diff --git a/new/sites/devopsaci.cz/components/Meetups.js b/new/sites/devopsaci.cz/components/Meetups.js new file mode 100644 index 00000000..319b3026 --- /dev/null +++ b/new/sites/devopsaci.cz/components/Meetups.js @@ -0,0 +1,131 @@ +import styled from 'styled-components'; +import Image from 'next/image'; +import Link from 'next/link'; + +const StyledContent = styled.div` +margin: 6rem 0; + @media (max-width: 520px) { + margin: 4rem auto; + } +` +const StyledGrid = styled.div` +display:flex; +justify-content:center; +align-items: flex-start; +@media (max-width: 992px) { + display: grid; + grid-template-columns: 1fr 1fr; + justify-items: center; + grid-gap: 2rem; + width: 80%; + margin: 0 auto; + } + @media (max-width: 600px) { + grid-gap: 1rem; + } + @media (max-width: 520px) { + grid-template-columns: 1fr; + } +` + +const StyledDiv = styled.div` +background-color: ${props => props.theme.background}; +width:20rem; +padding:4rem 2rem; +border-radius: 3rem; +margin: 0 0.5rem; + @media (max-width: 992px) { + width:unset; + min-width: 20rem; + } + @media (max-width: 520px) { + min-width: 20rem; + max-width: 90%; + + } + h3{ + @media (max-width: 520px) { + text-align: center; + + } + } + p{ + margin: 2rem 0; + font-family: ${props => props.theme.secondaryFont}; + font-size: 1.6rem; + color: ${props => props.theme.white}; + } + +` +const StyledButton = styled.button` +border: none; +display: block; +margin: 4rem auto 0 auto; +background-color: ${props => props.theme.white}; +border-radius: 2rem; +padding:0.8rem 1.5rem; +color: ${props => props.theme.background}; +font-family: ${props => props.theme.secondaryFont}; +font-weight: bold; +display: flex; +justify-content: center; +align-items: center; +cursor: pointer; +outline: none; +transition: 0.3s all ease; + &:nth-of-type(2) { + margin: 1rem auto 0 auto; + } + &:hover { + background-color: ${props => props.theme.red}; + color: ${props => props.theme.white}; + } + img{ + width:2rem; + } + +` + +const Meetups = () => { + return ( + +

Naše meetupy

+ + +

Cloud Native Prague

+

We are a group of enthusiasts of cloud native solutions from Prague and we believe there is more of us out there! We want to meet you all. Let's build a strong, cloud-native community to share experiences, learn from one another and talk about our successes and fuck-ups.

+ @CloudNativePrg + Meetup-logoMeetup.com +
+ +

Prague Containers

+

This is a group to share knowledge about latest and greatest container technologies (docker, rkt, cri-o), tools and systems around it like orchestrators (kubernetes, swarm, mesos, nomad, ...), image builders, ci tooling...

+ prgcont.cz + Meetup-logoMeetup.com +
+ +

DigitalOcean Czech Community

+

Komunita lidí a firem co používají DigitalOcean.

+ digitalocean.cz +
+ +

HashiCorp Czech Community

+

Komunita lidí a firem co používají Terraform, Vault, Consul, Packer, ...

+ haspicorp.cz +
+
+
+ ) +} + +export default Meetups diff --git a/new/sites/devopsaci.cz/components/Popup.js b/new/sites/devopsaci.cz/components/Popup.js new file mode 100644 index 00000000..ffd69c90 --- /dev/null +++ b/new/sites/devopsaci.cz/components/Popup.js @@ -0,0 +1,146 @@ +import React from 'react' +import styled from 'styled-components' +import Image from 'next/image'; +import Link from 'next/link'; + +const StyledBackground = styled.div` +position: fixed; +top: 0; +left: 0; +width: 100%; +height: 100%; +background-color:#FFFFFFB0; +` +const StyledDiv = styled.div` +padding: 3rem 0; +position: absolute; +top: 50%; +left: 50%; +transform: translate(-50%, -50%); +width: 70rem; +background-color: ${props => props.theme.background}; +display: flex; +flex-direction: column; +justify-content: center; +align-items:center; +text-align: center; + @media(max-width: 768px) { + width:50rem; + } + @media(max-width: 600px) { + width:40rem; + } + @media(max-width: 420px) { + width: 30rem; + } + p { + color: ${props => props.theme.white}; + font-size: 2.5rem; + width: 80%; + margin:1rem 0; + @media(max-width: 600px) { + font-size: 2rem; + } + @media(max-width: 420px) { + font-size: 1.8rem; + } + &:nth-of-type(2) { + color: ${props => props.theme.red}; + font-weight: bold; + } + } +` + +const StyleHeader = styled.div` + display: flex; + justify-content: center; + align-items: center; + margin:1rem 0; + h2 { + color: ${props => props.theme.white}; + font-size: 4rem; + margin: unset; + @media(max-width: 600px) { + font-size: 3.5rem; + } + @media(max-width: 420px) { + font-size: 3rem; + } + } + img { + width: 5rem; + height: auto; + @media(max-width: 600px) { + width:4rem; + } + } +` + +const StyledNewsletterButton = styled.button` +border: none; +background-color: ${props => props.theme.white}; +margin-top: 2rem; +border-radius: 2rem; +padding:1.5rem 4rem; +color: ${props => props.theme.background}; +font-family: ${props => props.theme.secondaryFont}; +font-weight: bold; +font-size: 2.2rem; +display: flex; +justify-content: center; +align-items: center; +cursor: pointer; +outline: none; +transition: 0.3s all ease-in-out; + &:hover { + background-color: ${props => props.theme.red}; + color: ${props => props.theme.white}; + } + @media (max-width: 600px) { + font-size: 2rem; + padding: 1.5rem 3rem; + } + @media(max-width: 420px) { + padding: 1rem 2rem; + } +` + +const StyledExit = styled.img` +width: 3rem; +position: absolute; +right: 1rem; +top: 1rem; +transition: 0.3s transform ease; +cursor: pointer; +@media(max-width: 600px) { + width: 2.5rem; + } + &:hover { + transform: scale(1.1); + } +` +const Popup = ({SetshowPopup}) => { + + const funcHide = () => { + SetshowPopup(false); + } + + return ( + + + + paper-plane-icon + +

Ahoj Devopsáku

wave-hand-icon +
+

Chceš dostávat aktuální info ohledně DevOps a zůstat tak stále v obraze?

+

Přihlaš se k odběru našeho newsletteru!

+ + Chci dostávat novinky + +
+
+ ) +} + +export default Popup diff --git a/new/sites/devopsaci.cz/components/Socials.js b/new/sites/devopsaci.cz/components/Socials.js new file mode 100644 index 00000000..cc3e24ce --- /dev/null +++ b/new/sites/devopsaci.cz/components/Socials.js @@ -0,0 +1,108 @@ +import React from 'react' +import styled from 'styled-components'; +import Link from 'next/link'; +import Image from 'next/image'; + +const StyledContent = styled.div` +margin: 6rem auto; + @media (max-width: 520px) { + margin: 4rem auto; + } +h2 { + margin-bottom: 2rem; + @media (max-width: 520px) { + margin-bottom: 1rem; + } +} +` + +const StyledContainer = styled.div` +display: flex; +justify-content:center; +align-items: center; +flex-wrap: wrap; +` + +const StyledSingle = styled.div` +padding: 0.6rem 1rem; +margin: 1rem 0.5rem 0 0.5rem; +background-color: ${props => props.theme.background}; +display: flex; +justify-content: center; +align-items: center; +border-radius: 4rem; +cursor: pointer; +transition: 0.3s all ease; + &:hover{ + transform: scale(1.05); + } + p{ + font-family: IBM PLEX Sans, sans-serif; + font-size: 1.6rem; + font-weight: bold; + margin-left: 0.5rem; + color: ${props => props.theme.white}; + } +` + +const Socials = () => { + return ( + +

Rozcestník

+ + + twitter-icon

Twitter

+ + facebook-icon

Facebook group

+ + linkedIn-icon

LinkedIn

+ + slack-icon

Slack

+ + facebook-icon

Facebook

+ + linkedIn-icon

LinkedIn group

+ + newsletter-icon

Newsletter

+ +
+
+ ) +} + +export default Socials diff --git a/new/sites/devopsaci.cz/components/Sponsors.js b/new/sites/devopsaci.cz/components/Sponsors.js new file mode 100644 index 00000000..34b73bb2 --- /dev/null +++ b/new/sites/devopsaci.cz/components/Sponsors.js @@ -0,0 +1,60 @@ +import styled from 'styled-components'; +import Image from 'next/image'; +import Link from 'next/link'; + +const StyledContent = styled.div` +padding: 6rem 0; +width: 80%; +margin: 0 auto; + @media (max-width: 520px) { + padding: 4rem 0; + } + h2 { + color: ${props => props.theme.background}; + text-align: unset; + @media (max-width: 600px) { + text-align: center; + } + } + div { + @media (max-width: 600px) { + display: flex; + justify-content: center; + align-items:center; + } + } + .sponzor-logo{ + width:20rem; + height: auto; + margin-right: 2rem; + transition: 0.5s transform ease; + cursor: pointer; + &:hover { + transform:scale(1.05); + } + @media (max-width: 600px) { + width: 18rem; + margin:0 1rem; + } + @media (max-width: 400px) { + width: 15rem; + } + @media (max-width: 320px) { + width: 13rem; + } + } +` + +const Sponsors = () => { + return ( + +

Sponzoři

+
+ sikalabs-logo + trainera-logo +
+
+ ) +} + +export default Sponsors diff --git a/new/sites/devopsaci.cz/package.json b/new/sites/devopsaci.cz/package.json index 5294a00a..eeb4c647 100644 --- a/new/sites/devopsaci.cz/package.json +++ b/new/sites/devopsaci.cz/package.json @@ -1,20 +1,17 @@ { - "name": "@app/devopsaci.cz", + "name": "devopsaci", + "version": "0.1.0", "private": true, - "version": "0.0.0", - "author": "Ondrej Sika", - "author_email": "ondrej@ondrejsika.com", "scripts": { - "dev": "NODE_ENV=development next", + "dev": "next dev", "build": "next build", - "export": "next export", - "static": "yarn run build && yarn run export" + "start": "next start" }, "dependencies": { - "bootstrap": "^4.5.3", - "next": "^10.0.3", - "react": "^17.0.1", - "react-bootstrap": "^1.4.0", - "react-dom": "^17.0.1" + "babel-plugin-styled-components": "^1.12.0", + "next": "10.1.3", + "react": "17.0.2", + "react-dom": "17.0.2", + "styled-components": "^5.2.3" } } diff --git a/new/sites/devopsaci.cz/pages/_app.js b/new/sites/devopsaci.cz/pages/_app.js index 28555adf..407931a9 100644 --- a/new/sites/devopsaci.cz/pages/_app.js +++ b/new/sites/devopsaci.cz/pages/_app.js @@ -1,5 +1,20 @@ -import App from "next/app"; +import '../styles/globals.css' +import styled, {ThemeProvider} from 'styled-components' +import GlobalStyles from '../themes/GlobalStyles.js'; -import "bootstrap/dist/css/bootstrap.min.css"; +const theme = { + background: '#100146', + red: '#FF0154', + white: '#FFFFFD', + secondaryFont: 'IBM Plex Sans, sans-serif' +} -export default App; +function MyApp({ Component, pageProps }) { + return ( + + + + + )} + +export default MyApp diff --git a/new/sites/devopsaci.cz/pages/_document.js b/new/sites/devopsaci.cz/pages/_document.js new file mode 100644 index 00000000..f6030627 --- /dev/null +++ b/new/sites/devopsaci.cz/pages/_document.js @@ -0,0 +1,30 @@ +import Document from 'next/document' +import { ServerStyleSheet } from 'styled-components' + +export default class MyDocument extends Document { + static async getInitialProps(ctx) { + const sheet = new ServerStyleSheet() + const originalRenderPage = ctx.renderPage + + try { + ctx.renderPage = () => + originalRenderPage({ + enhanceApp: (App) => (props) => + sheet.collectStyles(), + }) + + const initialProps = await Document.getInitialProps(ctx) + return { + ...initialProps, + styles: ( + <> + {initialProps.styles} + {sheet.getStyleElement()} + + ), + } + } finally { + sheet.seal() + } + } +} \ No newline at end of file diff --git a/new/sites/devopsaci.cz/pages/api/hello.js b/new/sites/devopsaci.cz/pages/api/hello.js new file mode 100644 index 00000000..9987aff4 --- /dev/null +++ b/new/sites/devopsaci.cz/pages/api/hello.js @@ -0,0 +1,5 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction + +export default (req, res) => { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/new/sites/devopsaci.cz/pages/index.js b/new/sites/devopsaci.cz/pages/index.js index f156a8e3..ce3c4609 100644 --- a/new/sites/devopsaci.cz/pages/index.js +++ b/new/sites/devopsaci.cz/pages/index.js @@ -1,198 +1,39 @@ -import React from "react"; -import Container from "react-bootstrap/Container"; -import Row from "react-bootstrap/Row"; -import Col from "react-bootstrap/Col"; -import Alert from "react-bootstrap/Alert"; -import Button from "react-bootstrap/Button"; -import Image from "react-bootstrap/Image"; +import Head from 'next/head' +import Header from '../components/Header'; +import Socials from '../components/Socials'; +import Meetups from '../components/Meetups'; +import InfoSection from '../components/InfoSection'; +import Sponsors from '../components/Sponsors'; +import Copyright from '../components/Copyright'; +import Footer from '../components/Footer'; +import Popup from '../components/Popup'; +import { useEffect, useState } from 'react'; -const Page = () => ( - <> - Devopsaci.cz - - - Začínáme, na webu i dalších věcech pracujeme :) - -
-

Devopsaci.cz

-

Česká komunita lidí z DevOps

-
+export default function Home() { -
- -   - -   - -   - -   - -   - -   - -
-

Meetupy

- - -
-

Cloud Native Prague

-

- We are a group of enthusiasts of cloud native solutions from - Prague and we believe there is more of us out there! We want to - meet you all. Let's build a strong, cloud-native community to - share experiences, learn from one another and talk about our - successes and fuck-ups. -

- Meetup.com -
- @CloudNativePrg -
-
- + const [showPopup, SetshowPopup] = useState(false); + useEffect(() => { + setTimeout(() => { + SetshowPopup(true); + }, 20000); + },[]) - -
-

Prague Containers

-

- This is a group to share knowledge about latest and greatest - container technologies (docker, rkt, cri-o), tools and systems - around it like orchestrators (kubernetes, swarm, mesos, nomad, - ...), image builders, ci tooling... -

- prgcont.cz -
- - Meetup.com - -
-
- - -
-

DigitalOcean Czech Community

-

Komunita lidí a firem co používají DigitalOcean

- digitalocean.cz -
- - - -
-

HashiCorp Czech Community

-

- Komunita lidí a firem co používají Terraform, Vault, Consul, - Packer, ... -

- hashicorp.cz -
- -
-

Kdo stojí za Devopsaci.cz?

- - -
- -

Ondřej Šika

-

- @ondrejsika -

-
-

- Jsem freelance DevOps konzultant a lektor. Zlepšuji práci - vývojářských týmů zaváděním efektivních procesů ve vývoji. -

- - -
- -

Vojtěch Mareš

-

- @vojtechmares_ -

-
-

- Freelance software vývojář, DevOps konzultant a lektor. Pomůžu vám s - řešením infrastruktury, vývojem aplikace až po její nasazení do - cloudového prostředí například v Kubernetes. -

- - -
- -

Martin Jurčo

-

- @martinjurco -

-
-

COO & CMO @ SikaLabs.

- -
-

Dotazy

-

- Zajímá Vás něco? Napište mi email na{" "} - - ondrej@sika.io - -

-

- 2020 Ondřej Šika's Project -

-
- -); -export default Page; + return ( + <> + + Devopsáci + + + +
+ + + + +