Skip to content

Commit 61b19b3

Browse files
committed
First Try
0 parents  commit 61b19b3

27 files changed

+1034
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public

.hugo_build.lock

Whitespace-only changes.

README.MD

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# My Personal Blog Using Hugo
2+
3+
<a href="https://gohugo.io/"><img src="https://raw.githubusercontent.com/gohugoio/gohugoioTheme/master/static/images/hugo-logo-wide.svg?sanitize=true" alt="Hugo" width="565"></a>
4+
5+
6+
7+
- A try to create a personal blog using Hugo. https://github.com/gohugoio/hugo
8+
9+
### Credits and Thanks
10+
[Lama Dev](https://www.youtube.com/watch?v=6BRZ-yHjYwo)

archetypes/default.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
+++
2+
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
3+
date = {{ .Date }}
4+
draft = false
5+
description = ""
6+
image = ""
7+
imageBig = ""
8+
categories = ["general"]
9+
avatar = "/images/avatar.webp"
10+
+++

config.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
baseURL = 'http://example.org/'
2+
languageCode = 'en-us'
3+
title = 'OMAR.A'
4+
5+
6+
paginate = 4
7+
8+
[params]
9+
description = "My Tech Blog"
10+
dateFormat = "Jan 2, 2006 03:04:05 PM"
11+
12+
[params.social]
13+
linkedin = 'https://www.linkedin.com/in/omar-a-5956ba215/'
14+
github = 'https://github.com/civilcoder55'
15+
16+
[taxonomies]
17+
category = "categories"

content/journey/mission-1.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
title: "Sw Journey: Mission 1"
3+
date: 2024-08-06T19:11:50+03:00
4+
draft: true
5+
description: "Software Journey Mission 1"
6+
image: "/images/journey/1.jpg"
7+
imageBig: "/images/journey/1.jpg"
8+
categories: ["journey", "k8s", "kubernetes"]
9+
avatar: "/images/avatar.webp"
10+
---
11+
12+
I'm starting a journey to build random stuff, and apply and practice Backend Engineering, I will go from a Monolithic application to a Microservices exploring and building cool stuff and Proof of Concepts. 🚀💻
13+
14+
## Mission 1
15+
16+
during this week I will discover and learn Kubernetes, and how to deploy a simple application to k8s.
17+
18+
I will build a simple API application with Express and then deploy it to Kubernetes, including a database and Redis cache.
19+
20+
the API will be a **Incantogamus app** a simple CRUD application for video games.
21+
22+
**Incantogamus**: is a whimsical and imaginary word created with a mix of Latin and whimsy, inspired by the magical world of Harry Potter. However, in terms of actual meaning, it doesn't have a specific definition or translation as it's a made-up term. It's intended to evoke a sense of enchantment and mystery, fitting for a magical word related to games in the Harry Potter universe.
23+
24+
### To Do
25+
26+
#### project: https://github.com/civilcoder55/incantogamus
27+
28+
- [x] Create a simple API application with express
29+
![incantogamus](/images/journey/incantogamus-api-example.png " {width='1360', height='720'}")
30+
31+
- [x] Dockerize the application
32+
- [x] Deploy the application to Kubernetes
33+
34+
- I deployed the application to a Kubernetes cluster on my local machine using minikube. the cluster looks like this:
35+
36+
![cluster-overview](/images/journey/cluster-overview.png)
37+
38+
- created an ingress to expose the application to the outside world, and made a domain point to the minikube node IP address.
39+
![hosts](/images/journey/hosts.png)
40+
41+
- the application is accessible at `incantogamus.com`
42+
![incantogamus](/images/journey/incantogamus-api.png)
43+
44+
- [ ] Discover and play with Kubernetes features
45+
- [x] Learning Helm Charts
46+
- During this sub-mission, I learned what Helm is and how to use and create Helm Charts.
47+
- I created a Helm Chart for the Incantogamus application. And I have published it to a Helm Repo hosted on GitHub using GitHub pages and helm releaser.
48+
- The Helm Chart is accessible at: https://civilcoder55.github.io/learning-helm-charts/
49+
- updated the application readme to include the Helm Chart usage. https://github.com/civilcoder55/incantogamus
50+
51+
## Mission 2
52+
53+
- [x] Discover Prometheus and Grafana
54+
55+
- I discovered Prometheus, understanding its functionality and how to use it for monitoring applications. Additionally, I learned about Grafana and how to visualize the metrics collected by Prometheus.
56+
- I also gained knowledge on creating and using an Exporter to gather metrics from an application and expose them to Prometheus.
57+
58+
- [x] Collect and Visualize Asterisk Metrics
59+
60+
- I collected metrics from an Asterisk server using the Asterisk `res_prometheus` module and exposed them to Prometheus.
61+
- I visualized these metrics using a simple Grafana dashboard.
62+
- Additionally, I used `node_exporter` to collect metrics from the Asterisk server node.
63+
64+
![incantogamus](/images/journey/prom-1.png)
65+
66+
![incantogamus](/images/journey/prom-2.png)
67+
68+
![incantogamus](/images/journey/prom-3.png)
69+
70+
- [ ] Collect K8s Cluster Metrics Using Prometheus
71+
- [ ] Visualize the Metrics Using Grafana
72+
- [ ] Create Alerts using Prometheus Alertmanager

layouts/404.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Not Found</title>
8+
</head>
9+
10+
<body>
11+
Not Found
12+
<a href="/">Go to homepage</a>
13+
</body>
14+
15+
</html>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<a href="{{ .Destination | safeURL }}" class="lightbox-image current gallery">
2+
<img class='md-img' src="{{ .Destination | safeURL }}" {{- with .Text }} alt="{{ . }}" {{ end -}} {{- with .Title }}
3+
title="{{ . }}" {{ end -}}>
4+
</a>

layouts/_default/baseof.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<meta name="description" content={{or .Params.description .Site.Params.description}}>
9+
<link rel="preconnect" href="https://fonts.googleapis.com">
10+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11+
<link href="https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap"
12+
rel="stylesheet">
13+
<link rel="stylesheet" href="/styles/style.css">
14+
<link rel="icon" href="/images/favicon.png" />
15+
<title>{{ .Title }}</title>
16+
</head>
17+
18+
<body>
19+
<div class="container">
20+
{{ partial "navbar" . }}
21+
{{ block "main" . }} {{ end }}
22+
{{ partial "footer" . }}
23+
</div>
24+
<script src="/js/app.js"></script>
25+
<script type="text/javascript" src="/js/lightbox.js"></script>
26+
<link rel="stylesheet" href="/styles/lightbox.css">
27+
</body>
28+
29+
</html>

layouts/_default/list.html

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{{ define "main" }}
2+
<div class="list">
3+
{{ range .Paginator.Pages }}
4+
5+
<div class="list-item">
6+
<img src={{ .Params.image }} alt="{{.Title}}" class="list-item__image" loading="lazy" />
7+
8+
<div class="list-item__texts">
9+
<h1 class="list-item__title">
10+
<a href="{{.Permalink}}">{{.Title}}</a>
11+
</h1>
12+
13+
14+
<p class="list-item__desc">{{.Params.description}}</p>
15+
16+
<div class="list-item__detail">
17+
<img src="{{.Params.avatar}}" loading="lazy" alt="" class="list-item__avatar" />
18+
<span>{{ range (.GetTerms "authors")}}
19+
<a href={{.Permalink}}>{{ .Name }}</a>
20+
{{end}}</span>
21+
<time>{{ dateFormat .Site.Params.dateFormat .Date}}</time>
22+
</div>
23+
24+
25+
<div class="list-item__categories">
26+
{{ range (.GetTerms "categories") }}
27+
<a class="list-item__category" href={{ .Permalink }}>{{ .Name }}</a>
28+
{{ end }}
29+
</div>
30+
</div>
31+
</div>
32+
33+
34+
<div class="divider"></div>
35+
36+
{{ end }} {{ template "_internal/pagination.html" . }}
37+
38+
</div>
39+
{{ end }}

0 commit comments

Comments
 (0)