diff --git a/config/img_config.json b/config/img_config.json index 94d49b5..5d4be90 100644 --- a/config/img_config.json +++ b/config/img_config.json @@ -54,6 +54,11 @@ "id": "cnn_website_4", "image": "images_jpg/yolo.jpg", "image_pos": "center" + }, + { + "id": "selfhost_1", + "image": "images_jpg/gitea.jpg", + "image_pos": "left" } ] } \ No newline at end of file diff --git a/images/gitea.png b/images/gitea.png new file mode 100644 index 0000000..892548e Binary files /dev/null and b/images/gitea.png differ diff --git a/images_jpg/gitea.jpg b/images_jpg/gitea.jpg new file mode 100644 index 0000000..020a25e Binary files /dev/null and b/images_jpg/gitea.jpg differ diff --git a/lang/de.json b/lang/de.json index 793b2d2..50f1aef 100644 --- a/lang/de.json +++ b/lang/de.json @@ -95,6 +95,32 @@ } ] }, + { + "id": "selfhosting", + "title": "Self-Hosting", + "description": "Selbst gehostete Dienste, die in Docker-Containern auf meinem eigenen Debian 13-Server laufen.", + "tags": [ + "Linux", + "Docker Compose", + "Gitea", + "SQLite" + ], + "github": "https://git.marvinkrausser.com", + "blocks": [ + { + "heading": "Gitea", + "text": "Die --link-- dient mir als privater Git-Server für persönliche Repositories. Sie läuft als Docker-Container, der nur über den Caddy Reverse Proxy erreichbar ist, welcher HTTPS mit Let's-Encrypt-Zertifikaten bereitstellt. Der Git-Zugriff per SSH läuft über einen separaten Port und funktioniert ausschließlich mit SSH-Keys. Alle Daten, einschließlich der Repositories und der SQLite-Datenbank, liegen in einem einzigen Ordner auf dem Host, sodass ein Backup lediglich aus dem Archivieren dieses Ordners besteht.", + "image": "selfhost_1", + "links": [ + { + "id": "gitea", + "link": "https://git.marvinkrausser.com", + "desc": "Gitea-Instanz ↗" + } + ] + } + ] + }, { "id": "pixelcnn", "title": "PixelCNN Bildgeneration", diff --git a/lang/en.json b/lang/en.json index e14efbb..1328c77 100644 --- a/lang/en.json +++ b/lang/en.json @@ -95,6 +95,32 @@ } ] }, + { + "id": "selfhosting", + "title": "Self-Hosting", + "description": "Self-hosted services running in Docker containers on my own Debian 13 server.", + "tags": [ + "Linux", + "Docker Compose", + "Gitea", + "SQLite" + ], + "github": "https://git.marvinkrausser.com", + "blocks": [ + { + "heading": "Gitea", + "text": "The --link-- serves as my private Git server for personal repositories. It runs as a Docker container that is only reachable through the Caddy reverse proxy, which provides HTTPS with Let's Encrypt certificates. Git access via SSH uses a separate port and works exclusively with SSH keys. All data, including repositories and the SQLite database, is stored in a single folder on the host, making backups as simple as archiving that folder.", + "image": "selfhost_1", + "links": [ + { + "id": "gitea", + "link": "https://git.marvinkrausser.com", + "desc": "Gitea instance ↗" + } + ] + } + ] + }, { "id": "pixelcnn", "title": "PixelCNN Generator", diff --git a/scripts/sections/projects.js b/scripts/sections/projects.js index 5979e8e..b52d86c 100644 --- a/scripts/sections/projects.js +++ b/scripts/sections/projects.js @@ -16,7 +16,9 @@ export function renderProjects(container, navbar, data, imageConfig) { blocks.appendChild(createBlock(block, i, imageConfig)); }); - section.appendChild(createGithubLink(item.github, data.github_desc)); + if (item.github) { + section.appendChild(createGithubLink(item.github, data.github_desc)); + } }); }