Compare commits

..

12 Commits

Author SHA1 Message Date
435c5c7847 feat: regular font for easier reading 2025-04-09 16:52:21 +01:00
bc04cbfc54 fix: email to 2025-04-04 12:15:18 +01:00
7f2025875b fix: gitea to profile 2025-04-04 12:12:12 +01:00
3d689aa9af feat: adding converge 2025-04-04 12:11:34 +01:00
73f1289e25 feat: email 2025-04-04 12:10:33 +01:00
f176cc23c0 feat: adding gitea 2025-04-04 12:10:22 +01:00
18bb9d753f fix: cloudflare running an older version of hugo 2025-03-12 23:14:28 +00:00
e624ed78b6 fix 2025-03-12 23:12:22 +00:00
82c0c1d492 fix: rss feed now displays full content 2025-03-12 23:09:11 +00:00
f0495c5f7c feat: adding rss 2025-03-12 22:48:07 +00:00
1b5ff4d378 fix: recent posts 2025-03-12 22:42:42 +00:00
af0eacefe2 gitea post 2025-03-12 22:26:48 +00:00
7 changed files with 151 additions and 4 deletions

View File

@ -0,0 +1,50 @@
+++
title = "Hello Gitea"
date = "2025-03-12"
author = "John Costa"
toc = true
tags = ["Software", "homelab"]
+++
# TLDR
> I use my own Gitea instance now! [git.johncosta.tech](https://git.johncosta.tech)
Three days after I moved into my apartment, I bought a server. A small, fairly low power Fujitsu desktop, from facebook marketplace. Since then I've been really into self-hosting, so far I have.
- [Immich](https://immich.app)
- [Jellyfin](https://jellyfin.org)
- [Pi-hole](https://pi-hole.net)
- [Planka](https://planka.app)
- [Grafana](https://grafana.com)
And a couple of others.
Point being, I've really enjoyed the journey of managing and using all these services. In the future I'll write more in detail about my setup.
# Gitea
I came across [Gitea](https://about.gitea.com), and prompt closed it - surely GitHub is unbeatable, right? But it kept bugging me, but at the same time I thought.
- It's probably too hard to manage.
- SSH would be too weird.
- GitHub is just better.
I was wrong on all fronts.
In fact, this might be the service I most enjoy using (although they are all pretty great). Having ownership over my code has felt good, and the WebUI is snappy and a pleasure to use, and because it's self-hosted it's super quick (I only have to go through LAN most of the time).
## But GitHub?
### Open Source
I still believe GitHub is the best for open-source projects - it's just more popular - and therefore much easier to people to contribute. But for private code? Or personal projects you don't expect to have contributors to? Why not try another service?
### The AI problem
GitHub was (and for the most part still is) an incredible service, but now it's using it's massive amounts of code to train AI, whether you want to or not. It's perhaps not worth it to trade privacy for convinience anymore.
I also do not trust a huge company (Microsoft), to not use my private repo's to train AI.
# Conclusion
So far, I love Gitea. It's super fast, incredibly easy to setup and manage, and it's completely open source. And from now on, my personal projects and private projects will be self hosted. Check out [git.johncosta.tech](https://git.johncosta.tech) to view my public repo's on there.

View File

@ -25,19 +25,34 @@ palette = "tokyo-night-dark"
# * FontAwesome 6 <https://fontawesome.com/> ('fa-brands', 'fa-normal', or 'fa-solid' for brands)
# * Academicons <https://jpswalsh.github.io/academicons> ('ai ai-')
[Author]
name = "John Costa"
email = "me@johncosta.tech"
[[params.socialLinks]]
icon = "fa-brands fa-github"
title = "GitHub"
url = "https://github.com/JohnCosta27/JohnTech"
[[params.socialLinks]]
icon = "fa-solid fa-envelope"
title = "Email"
url = "mailto:johncosta027@gmail.com"
icon = "fa-brands fa-git-alt"
title = "Gitea"
url = "https://git.johncosta.tech/JohnCosta27"
[[params.socialLinks]]
icon = "fa-brands fa-linkedin"
title = "LinkedIn"
url = "https://www.linkedin.com/in/john-costa-b883971b5/"
[[params.socialLinks]]
icon = "fa-brands fa-hashtag"
title = "Converge"
url = "https://converge.sh/1"
[[params.socialLinks]]
icon = "fa-solid fa-envelope"
title = "Email"
url = "mailto:me@johncosta.tech"
[taxonomies]
tags = "tags"

59
layouts/_default/rss.xml Normal file
View File

@ -0,0 +1,59 @@
{{- $authorEmail := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .email }}
{{- $authorEmail = . }}
{{- end }}
{{- end }}
{{- end }}
{{- $authorName := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .name }}
{{- $authorName = . }}
{{- end }}
{{- else }}
{{- $authorName = . }}
{{- end }}
{{- end }}
{{- $pctx := . }}
{{- if .IsHome }}{{ $pctx = .Site }}{{ end }}
{{- $pages := slice }}
{{- if or $.IsHome $.IsSection }}
{{- $pages = $pctx.RegularPages }}
{{- else }}
{{- $pages = $pctx.Pages }}
{{- end }}
{{- $limit := .Site.Config.Services.RSS.Limit }}
{{- if ge $limit 1 }}
{{- $pages = $pages | first $limit }}
{{- end }}
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo</generator>
<language>{{ site.Language.LanguageCode }}</language>{{ with $authorEmail }}
<managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
<webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with .Site.Copyright }}
<copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{- end }}
{{- range $pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
<guid>{{ .Permalink }}</guid>
<description>{{ .Content | html }}</description>
</item>
{{- end }}
</channel>
</rss>

View File

@ -2,6 +2,13 @@
<html lang="{{- site.Language.Lang -}}">
<head>
{{- partial "head.html" . -}}
<link rel="alternate"
type="application/rss+xml"
href="{{.Site.BaseURL }}/index.xml"
title="{{ .Site.Title }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap" rel="stylesheet">
</head>
<body>
@ -16,6 +23,9 @@
<div class="aside__content">
{{- block "aside" . }}{{- end }}{{partial "allTags.html" . -}}
</div>
<div class="aside__content">
{{- block "aside" . }}{{- end }}{{partial "recentPosts.html" . -}}
</div>
</section>
<footer class="page__footer">{{- partial "footer.html" . -}}</footer>

View File

@ -0,0 +1,6 @@
<h2>Recent Posts</h2>
<ul>
{{ range first 5 (where site.RegularPages "Section" "blog") }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>{{ if .Date }}<p>{{ .Date.Format "2006-01-02" }}</p>{{ end }}</li>
{{ end }}
</ul>

View File

@ -1,3 +1,9 @@
.main.nav {
font-family: var(--font-monospace);
font-size: 16px;
line-height: 1.5rem;
}
/* Main menu */
.main-nav ul {
display: flex;

View File

@ -1,10 +1,11 @@
/* Fonts */
:root {
--font-monospace: "Fira Mono", monospace;
--font-sans: "Open Sans", sans-serif;
}
body {
font-family: var(--font-monospace);
font-family: var(--font-sans);
font-size: 16px;
line-height: 1.5rem;
}