-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 9709a11
Showing
127 changed files
with
5,461 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# | ||
name: Create and publish a Docker image | ||
|
||
on: | ||
push: | ||
branches: ['main'] | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: ${{ github.repository }} | ||
|
||
jobs: | ||
build-and-push-image: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Log into Github registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Extract metadata (tags, labels) for Docker | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: | | ||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
tags: | | ||
type=sha,format=long | ||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: deployment/Dockerfile | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
public |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
title: "{{ replace .Name "-" " " | title }}" | ||
date: {{ .Date }} | ||
draft: true | ||
--- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
/* Background */ .bg { color: #f8f8f2; background-color: #000000; } | ||
/* PreWrapper */ .chroma { color: #f8f8f2; background-color: #000000; } | ||
/* Other */ .chroma .x { } | ||
/* Error */ .chroma .err { } | ||
/* CodeLine */ .chroma .cl { } | ||
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } | ||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } | ||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } | ||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc } | ||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7c7c79 } | ||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7c7c79 } | ||
/* Line */ .chroma .line { display: flex; } | ||
/* Keyword */ .chroma .k { color: #ff0000 } | ||
/* KeywordConstant */ .chroma .kc { color: #ff0000 } | ||
/* KeywordDeclaration */ .chroma .kd { color: #ff0000 } | ||
/* KeywordNamespace */ .chroma .kn { color: #ff0000 } | ||
/* KeywordPseudo */ .chroma .kp { color: #ff0000 } | ||
/* KeywordReserved */ .chroma .kr { color: #ff0000 } | ||
/* KeywordType */ .chroma .kt { color: #ee82ee } | ||
/* Name */ .chroma .n { } | ||
/* NameAttribute */ .chroma .na { } | ||
/* NameBuiltin */ .chroma .nb { } | ||
/* NameBuiltinPseudo */ .chroma .bp { } | ||
/* NameClass */ .chroma .nc { } | ||
/* NameConstant */ .chroma .no { color: #7fffd4 } | ||
/* NameDecorator */ .chroma .nd { } | ||
/* NameEntity */ .chroma .ni { } | ||
/* NameException */ .chroma .ne { } | ||
/* NameFunction */ .chroma .nf { color: #ffff00 } | ||
/* NameFunctionMagic */ .chroma .fm { } | ||
/* NameLabel */ .chroma .nl { } | ||
/* NameNamespace */ .chroma .nn { } | ||
/* NameOther */ .chroma .nx { } | ||
/* NameProperty */ .chroma .py { } | ||
/* NameTag */ .chroma .nt { } | ||
/* NameVariable */ .chroma .nv { color: #eedd82 } | ||
/* NameVariableClass */ .chroma .vc { } | ||
/* NameVariableGlobal */ .chroma .vg { } | ||
/* NameVariableInstance */ .chroma .vi { } | ||
/* NameVariableMagic */ .chroma .vm { } | ||
/* Literal */ .chroma .l { } | ||
/* LiteralDate */ .chroma .ld { } | ||
/* LiteralString */ .chroma .s { color: #87ceeb } | ||
/* LiteralStringAffix */ .chroma .sa { color: #87ceeb } | ||
/* LiteralStringBacktick */ .chroma .sb { color: #87ceeb } | ||
/* LiteralStringChar */ .chroma .sc { color: #87ceeb } | ||
/* LiteralStringDelimiter */ .chroma .dl { color: #87ceeb } | ||
/* LiteralStringDoc */ .chroma .sd { color: #87ceeb } | ||
/* LiteralStringDouble */ .chroma .s2 { color: #87ceeb } | ||
/* LiteralStringEscape */ .chroma .se { color: #87ceeb } | ||
/* LiteralStringHeredoc */ .chroma .sh { color: #87ceeb } | ||
/* LiteralStringInterpol */ .chroma .si { color: #87ceeb } | ||
/* LiteralStringOther */ .chroma .sx { color: #87ceeb } | ||
/* LiteralStringRegex */ .chroma .sr { color: #87ceeb } | ||
/* LiteralStringSingle */ .chroma .s1 { color: #87ceeb } | ||
/* LiteralStringSymbol */ .chroma .ss { color: #ff6600 } | ||
/* LiteralNumber */ .chroma .m { color: #ff6600 } | ||
/* LiteralNumberBin */ .chroma .mb { color: #ff6600 } | ||
/* LiteralNumberFloat */ .chroma .mf { color: #ff6600 } | ||
/* LiteralNumberHex */ .chroma .mh { color: #ff6600 } | ||
/* LiteralNumberInteger */ .chroma .mi { color: #ff6600 } | ||
/* LiteralNumberIntegerLong */ .chroma .il { color: #ff6600 } | ||
/* LiteralNumberOct */ .chroma .mo { color: #ff6600 } | ||
/* Operator */ .chroma .o { } | ||
/* OperatorWord */ .chroma .ow { } | ||
/* Punctuation */ .chroma .p { } | ||
/* Comment */ .chroma .c { color: #00ff00 } | ||
/* CommentHashbang */ .chroma .ch { color: #00ff00 } | ||
/* CommentMultiline */ .chroma .cm { color: #00ff00 } | ||
/* CommentSingle */ .chroma .c1 { color: #00ff00 } | ||
/* CommentSpecial */ .chroma .cs { color: #00ff00 } | ||
/* CommentPreproc */ .chroma .cp { color: #e5e5e5 } | ||
/* CommentPreprocFile */ .chroma .cpf { color: #e5e5e5 } | ||
/* Generic */ .chroma .g { } | ||
/* GenericDeleted */ .chroma .gd { } | ||
/* GenericEmph */ .chroma .ge { } | ||
/* GenericError */ .chroma .gr { } | ||
/* GenericHeading */ .chroma .gh { } | ||
/* GenericInserted */ .chroma .gi { } | ||
/* GenericOutput */ .chroma .go { } | ||
/* GenericPrompt */ .chroma .gp { } | ||
/* GenericStrong */ .chroma .gs { } | ||
/* GenericSubheading */ .chroma .gu { } | ||
/* GenericTraceback */ .chroma .gt { } | ||
/* GenericUnderline */ .chroma .gl { } | ||
/* TextWhitespace */ .chroma .w { } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
.profile-introduction { | ||
margin: auto; | ||
padding-top: 1em; | ||
text-align: justify; | ||
text-align-last: left; | ||
} | ||
|
||
@media only screen and (min-width: 600px) { | ||
.profile-introduction { | ||
width: 600px; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
:root { | ||
--main-width: var(--nav-width); | ||
} | ||
|
||
.chroma .lnt { | ||
color: #fff; | ||
} | ||
|
||
.chroma .ln { | ||
color: #fff; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
baseURL: "https://patrickscheid.de" | ||
title: "Patrick Scheid" | ||
paginate: 5 | ||
theme: PaperMod | ||
|
||
enableRobotsTXT: true | ||
buildDrafts: false | ||
buildFuture: false | ||
buildExpired: false | ||
|
||
minify: | ||
disableXML: true | ||
minifyOutput: true | ||
|
||
params: | ||
env: production | ||
title: Patrick Scheid | ||
description: > | ||
Patrick Scheid, experienced people-focused, product-minded backend developer in Munich. | ||
Leveraging a background as a Product Owner and Scrum Master for comprehensive tech solutions. | ||
keywords: [Blog, Portfolio, PaperMod] | ||
DateFormat: "January 2, 2006" | ||
defaultTheme: auto | ||
disableThemeToggle: false | ||
mainSections: | ||
- posts | ||
|
||
ShowReadingTime: true | ||
ShowShareButtons: false | ||
ShowPostNavLinks: true | ||
ShowBreadCrumbs: false | ||
ShowCodeCopyButtons: true | ||
disableSpecial1stPost: false | ||
disableScrollToTop: false | ||
comments: false | ||
hidemeta: false | ||
hideSummary: false | ||
showtoc: false | ||
tocopen: false | ||
|
||
schema: | ||
publisherType: Person | ||
|
||
assets: | ||
disableHLJS: true | ||
favicon: "favicon.ico" | ||
favicon16x16: "favicon.ico" | ||
favicon32x32: "favicon.ico" | ||
apple_touch_icon: "favicon.ico" | ||
safari_pinned_tab: "favicon.ico" | ||
|
||
label: | ||
text: "Home" | ||
|
||
profileMode: | ||
enabled: true | ||
title: Patrick Scheid | ||
subtitle: | | ||
**Software Engineer** | ||
**People-Centric & Product-Minded** | ||
introduction: | | ||
{{< rawhtml >}} | ||
<div class="profile-introduction"> | ||
I'm a software engineer specialised in backend development. | ||
With my experience as a Product Owner, Scrum Master, and Data Scientist, I bring a unique perspective to software development. | ||
Based in Munich, I'm passionate about building solutions that add real value to customers. | ||
</div> | ||
{{< /rawhtml >}} | ||
imageUrl: "avatar-20220921-173622.webp" | ||
imageWidth: 240 | ||
imageHeight: 240 | ||
imageTitle: Avatar | ||
|
||
socialIcons: | ||
- name: stackoverflow | ||
url: "https://stackoverflow.com/users/3533066/pscheid" | ||
- name: github | ||
url: "https://github.com/pscheid92" | ||
- name: linkedin | ||
url: "https://www.linkedin.com/in/pscheid92/" | ||
- name: email | ||
url: "mailto:[email protected]" | ||
|
||
cover: | ||
hidden: true | ||
hiddenInList: true | ||
hiddenInSingle: true | ||
|
||
# for search | ||
# https://fusejs.io/api/options.html | ||
fuseOpts: | ||
isCaseSensitive: false | ||
shouldSort: true | ||
location: 0 | ||
distance: 1000 | ||
threshold: 0.4 | ||
minMatchCharLength: 0 | ||
keys: ["title", "permalink", "summary", "content"] | ||
|
||
menu: | ||
main: | ||
- identifier: search | ||
name: Search | ||
url: /search/ | ||
weight: 10 | ||
- identifier: about | ||
name: About | ||
url: /about/ | ||
weight: 20 | ||
- identifier: cv | ||
name: CV | ||
url: /cv-20230411.pdf | ||
weight: 30 | ||
- identifier: posts | ||
name: Posts | ||
url: /posts/ | ||
weight: 40 | ||
|
||
outputs: | ||
home: | ||
- HTML | ||
- RSS | ||
- JSON | ||
|
||
# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma | ||
markup: | ||
highlight: | ||
noClasses: false | ||
codeFences: true | ||
guessSyntax: true | ||
lineNos: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
title: "About Me" | ||
summary: "about" | ||
placeholder: "Information about me and my CV ..." | ||
--- | ||
I am an experienced software developer and leader from Munich. | ||
As a backend developer I'm passionat about developing systems that solve complex problems and deliver real value to customers. | ||
|
||
With my experience as a Product Owner, Scrum Master, Data Scientist and Team Lead, I deeply understand software development aspects beyond pure technology. | ||
|
||
My true passion is for people! Effective communication, autonomy and a holistic systemic-constructivist view are essential for building successful software solutions. | ||
|
||
A strong team with an aspiration for self-improvement is a prerequisite for success. I want to keep learning and growing personally and professionally, and I want to help my team and company do the same. | ||
|
||
With my experience in software development and focus on customer needs, I am always looking for ways to innovate and improve. | ||
|
||
If you are looking for an experienced software developer and a leader for whom people are more important than technologies and want to add real value to their customers, then we should talk! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
--- | ||
title: Using ngrok-go with gin-gonic | ||
desciption: an article showing how to combine gin-gonic and ngrok-go to expose your local http server via ngrok to the public internet. | ||
--- | ||
|
||
In this brief tutorial, we're going to discuss how to utilize the newly released [ngrok-go](https://ngrok.com/blog-post/ngrok-go) library alongside `gin-gonic`. The `ngrok-go` library provides a way to expose local servers to the internet, which can be highly beneficial during development and testing phases. On the other hand, `gin-gonic` is a highly-regarded web framework for building APIs in Go, recognized for its minimalistic design and excellent performance. When combined, these tools can significantly enhance the efficiency of your web application development process. | ||
|
||
```go | ||
// define an endpoint /now that returns the current time. | ||
r := gin.Default() | ||
r.GET("/now", func(c *gin.Context) { | ||
response := gin.H{"time": time.Now()} | ||
c.JSON(http.StatusOK, response) | ||
}) | ||
|
||
// We instruct ngrok to listen to our application. | ||
// The 'config.HttpEndpoint' allows us how ngrok exposes our application. | ||
// The result of `ngrok.Listen(...)` implements the net.Listener interface. | ||
ctx := context.Background() | ||
listener, err := ngrok.Listen(ctx, config.HTTPEndpoint()) | ||
if err != nil { | ||
log.Fatalln(err) | ||
} | ||
|
||
// We log the ngrok address, which serves as the address to access your local server from the internet. | ||
log.Printf("public address: %s\n", listener.Addr()) | ||
|
||
// We start the gin application with the ngrok listener. | ||
// This fires up the gin server and makes it accessible through the ngrok address. | ||
if err := r.RunListener(listener); err != nil { | ||
log.Fatalln(err) | ||
} | ||
``` | ||
|
||
After booting up the server locally, follow these steps to access it via the ngrok address: | ||
|
||
1. Copy the address output by `listener.Addr()`. This is the ngrok address that you can use to access your local server from the internet. | ||
2. Run your local server using the command `go run .`. This initiates your gin server. | ||
3. You can now access your server by sending a request to the ngrok address. In the example below, we use the 'https' command to send a GET request to the '/now' endpoint of our server. | ||
|
||
```shell | ||
$ GIN_MODE=release go run . | ||
2023/05/20 17:56:19 public address: fee6-2003-dc-d740-7394-7c9a-a007-80fa-b617.eu.ngrok.io | ||
[GIN] 2023/05/20 - 17:56:33 | 200 | 29.583µs | 2001:dc:e741:7394:7c9a:a018:80fa:b617 | GET "/now" | ||
``` | ||
|
||
When you send a request to your server, you should receive a JSON response similar to this | ||
```shell | ||
$ https fee6-2003-dc-d740-7394-7c9a-a007-80fa-b617.eu.ngrok.io/now | ||
|
||
HTTP/1.1 200 OK | ||
Content-Length: 43 | ||
Content-Type: application/json; charset=utf-8 | ||
Date: Sat, 20 May 2023 15:56:33 GMT | ||
Ngrok-Agent-Ips: 2003:dc:d740:7394:7c9a:a007:80fa:b617 | ||
Ngrok-Trace-Id: f8919710b6a082c85e69836ee251a02a | ||
|
||
{ | ||
"time": "2023-05-20T17:56:33.807461+02:00" | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
title: "Search" | ||
layout: "search" | ||
summary: "search" | ||
placeholder: "Search for a blog article ..." | ||
searchHidden: true | ||
--- |
Oops, something went wrong.