From ec86a187b5c4b9b0aae50fcb7e03b31d45d2007d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Tue, 17 May 2022 21:44:01 +0200 Subject: [PATCH] reinit --- .drone.yaml | 13 +++++ ...atic-web-apps-brave-mushroom-038a3c503.yml | 47 ++++++++++++++++++ .gitignore | 4 ++ README.md | 2 + archetypes/default.md | 6 +++ assets/avatar.jpg | Bin 0 -> 7132 bytes assets/icons/brand-linkedin.svg | 8 +++ assets/icons/file-certificate.svg | 7 +++ config.toml | 46 +++++++++++++++++ content/_index.md | 8 +++ content/page/about/index.md | 18 +++++++ content/post/hello-world/index.md | 16 ++++++ go.mod | 5 ++ go.sum | 2 + static/favicon.ico | Bin 0 -> 15406 bytes 15 files changed, 182 insertions(+) create mode 100644 .drone.yaml create mode 100644 .github/workflows/azure-static-web-apps-brave-mushroom-038a3c503.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 archetypes/default.md create mode 100755 assets/avatar.jpg create mode 100644 assets/icons/brand-linkedin.svg create mode 100644 assets/icons/file-certificate.svg create mode 100644 config.toml create mode 100644 content/_index.md create mode 100644 content/page/about/index.md create mode 100644 content/post/hello-world/index.md create mode 100644 go.mod create mode 100644 go.sum create mode 100755 static/favicon.ico diff --git a/.drone.yaml b/.drone.yaml new file mode 100644 index 0000000..a350ddd --- /dev/null +++ b/.drone.yaml @@ -0,0 +1,13 @@ +kind: pipeline +type: docker +name: Azure Static WebApp + +steps: +- name: Build and upload static web app + environment: + APITOKEN: + from_secret: APITOKEN + HUGO_VERSION: 0.97.1 + image: mcr.microsoft.com/appsvc/staticappsclient:stable + commands: + - /bin/staticsites/StaticSitesClient --apiToken $APITOKEN --outputLocation "public" --app "/drone/src" diff --git a/.github/workflows/azure-static-web-apps-brave-mushroom-038a3c503.yml b/.github/workflows/azure-static-web-apps-brave-mushroom-038a3c503.yml new file mode 100644 index 0000000..45bc2ac --- /dev/null +++ b/.github/workflows/azure-static-web-apps-brave-mushroom-038a3c503.yml @@ -0,0 +1,47 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_BRAVE_MUSHROOM_038A3C503 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/" # App source code path + api_location: "" # Api source code path - optional + output_location: "public" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### + env: + HUGO_VERSION: 0.97.1 + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_BRAVE_MUSHROOM_038A3C503 }} + action: "close" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d929b0d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +public/* +.hugo_build.lock +resources/_gen +jsconfig.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..8d16187 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# personalsite-azure-static-webapp +Personal site generated with hugo diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/assets/avatar.jpg b/assets/avatar.jpg new file mode 100755 index 0000000000000000000000000000000000000000..2c2113af4e413239ea69ef82d7f08195e4bc60e7 GIT binary patch literal 7132 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 + + + + + + + diff --git a/assets/icons/file-certificate.svg b/assets/icons/file-certificate.svg new file mode 100644 index 0000000..3e96a0b --- /dev/null +++ b/assets/icons/file-certificate.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..20a599d --- /dev/null +++ b/config.toml @@ -0,0 +1,46 @@ +baseURL = 'https://www.tormakristof.eu/' +languageCode = 'en-us' +title = 'HomeLab misadventures - Kristóf Torma' +paginate = 5 +[[module.imports]] +path = 'github.com/CaiJimmy/hugo-theme-stack/v3' +disable = false + +[params] + + [params.sidebar] + subtitle = 'DevOps Enginner' + + [params.sidebar.avatar] + enabled = true + local = true + src = 'avatar.jpg' + + [params.article] + math = false + toc = true + readingTime = true + +[[menu.main]] +identifier = "cv" +name = "CV" +url = "https://cv.tormakristof.eu" + + [menu.main.params] + icon = "file-certificate" + +[[menu.main]] +identifier = "github" +name = "GitHub" +url = "https://github.com/tormachris" + + [menu.main.params] + icon = "brand-github" + +[[menu.main]] +identifier = "linkedin" +name = "LinkedIn" +url = "https://www.linkedin.com/in/tormakris" + + [menu.main.params] + icon = "brand-linkedin" diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..530dfe8 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,8 @@ +--- +menu: + main: + name: Home + weight: -100 + params: + icon: home +--- \ No newline at end of file diff --git a/content/page/about/index.md b/content/page/about/index.md new file mode 100644 index 0000000..316f265 --- /dev/null +++ b/content/page/about/index.md @@ -0,0 +1,18 @@ +--- +title: About me +date: '2022-04-17' +lastmod: '2022-04-17' +menu: + main: + weight: -90 + params: + icon: user +--- + +# About me + +Hi! My name is Kristóf Torma and I am a Hungarian DevOpsEngineer/guy. I spend a lot of my free time playing around with my homelab. There is still much for me to learn despite having tried many different technologies and methodologies connected to my hobby and profession as I self-host more and more services to serve yours truly and also my close circle of friends and family. + +I led a local group of enthusiastic students between 2020 and 2022 called [KSZK](https://kszk.bme.hu/), or in English, a Special Interest Group (SIG) for Computer Science. As a member, and later on, leader of the group, I had the opportunity to operate services for real users and maintain the server and residential network of the Schönherz Dorm, which serves over 1000 students with gigabit Internet access and provides high-quality server colocation services, both to servers operated by us and other students as well. + +I use this blog to share my recent (mis)adventures and lessons learned on a semi-frequent basis. Watch this space to see what I’m working on, and hopefully, take the opportunity to learn together with me! diff --git a/content/post/hello-world/index.md b/content/post/hello-world/index.md new file mode 100644 index 0000000..2416497 --- /dev/null +++ b/content/post/hello-world/index.md @@ -0,0 +1,16 @@ ++++ +author = "Kristóf Torma" +title = "Hello World" +date = "2022-04-17" +description = "Welcome to my blog!" +categories = [ + "personal" +] +tags = [ + "personal" +] ++++ + +# Hello World! + +Hello World! This is my statically generated blog. Very modern and fancy. I plan to post here semi-regularly about things that interest me at the time or maybe I'll tear this place down and replace it with an even more modern and facy blank HTML page. \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1f84018 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/tormachris/personalsite-azure-static-webapp + +go 1.17 + +require github.com/CaiJimmy/hugo-theme-stack/v3 v3.11.0 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..50a2dfe --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/CaiJimmy/hugo-theme-stack/v3 v3.11.0 h1:HyHdT59BYMdPSjDljIWpJY/DT+NPiZgfqMlJBQwOa1A= +github.com/CaiJimmy/hugo-theme-stack/v3 v3.11.0/go.mod h1:IPmCXiIxlFSLFYS0tOmYP6ySLviyeNVSabyvSuaxD+I= diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..34409cc03af8edf1dafe715dee52671ac1ed02c5 GIT binary patch literal 15406 zcmeHNOKclO7~ayVAR(b5@emZLIaQIkgbOzioDnBL$^{8Hm2xgzICAEKs32*fi9}vb z$fL2-JQ_Q3;@9pvwqvjD_!Xx?ib@Y9s1glQhVNTvgR^yssV&R=_qM<4DS6h?G%$SP0z})j<7r z9osG?!qH^1?>t2*8v1v|gkO|mla9c)>|+U0`}v zP4+)T{fdTms~qkV_x$aSz_#qOef{F`SBjbF$HkQPi6fwG9(}C-r@7=h(*(Q+aDCeC zGwN!)I@;Iv2oT2#7kt9^%vkSVUQZ9!qvMCq)4N_UG&dleg6m{t)?E|otVd+x0mruJ zyO`ELw0y@^pI8WEeXIelvstXo`rMtm*C~#^nRw7#muuOHN4z4RQcaHZErd7=|K(gV zvc1k%uld!#)%kIe(r4@X&%^>E;vcJPD_zm3Oy7)4%-L_LK^Xc~`?LS%{fFEaHJ?bR z-Y1aMX3Tp3)X=VW=Dj18vBRe|CzcKEwL)6|CmHqc+Rx(RzdIzzV>htgYFn$M{ut|{ z;$rAk%Rft;`x02ib=cs2`zS!$^ifDfzo_=j-=$LNIovyasNYZg?z=60(3jnRVNv_Q z^qmZfa-<({9Wwew5w=Yq@b!fMwE7Y2R%d>2e7|@4zrt!q+opf`+RgtT-tUjhKW$6@ zh;OOCj6d51WK3{w$oVJNA8Wln?D90MzvWQ3xIglhxIcXLZ~>dNz1#gKmr~zC-KJT8 zwEsai>B~0#&BKxrZ7mpjcOj*@js&nxAGLhTb5a4R!0{`Hyq>+c(8}nu!;h=uWy=X+=g&pS0D);cGEXjQW`x=Nx2e@hG*$(J)o!qlo z?WICWow97Dkn0J}xJA%6x;JJ<%{>a{$e7>bo{ZCZq#{>HpE2Zpf=>LQO#=BXD@RAp zr~H{`%?*LI+G*0l5>T9Iof$!$JtomBI0Yo z)IAkOp1e=2&Rz$8Y!I%C73{qhz=fR1jT|k$_7Y=z18dVF+b%~v;=$nON0#$;oWlVJ zaxpapH*&P|wvKo3R|gx<9q%4+oXg-M`8#{p!*N_}Y3roD)W31s%lL1s_ELYTzmqkx zUK_c7Ha3Q&{!;&X^K-8{89y?9_KJ~u^)h}=N&LkBe||45+`)SSSHz!qer_blfn2tq zf5FjuUbmMknds|ir<-k=Kf!bJN}v