{"id":19987457,"url":"https://github.com/sdavids/sdavids.de-homepage","last_synced_at":"2026-04-19T15:32:03.378Z","repository":{"id":255170232,"uuid":"450115580","full_name":"sdavids/sdavids.de-homepage","owner":"sdavids","description":"Sebastian Davids Homepage","archived":false,"fork":false,"pushed_at":"2026-03-07T19:30:03.000Z","size":3862,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-08T00:54:49.743Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sdavids.de","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sdavids.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-20T13:49:14.000Z","updated_at":"2026-03-07T19:30:08.000Z","dependencies_parsed_at":"2024-10-18T00:36:40.223Z","dependency_job_id":"da49b19c-1c78-4e90-b928-e65e06962eda","html_url":"https://github.com/sdavids/sdavids.de-homepage","commit_stats":null,"previous_names":["sdavids/sdavids.de-homepage"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sdavids/sdavids.de-homepage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdavids%2Fsdavids.de-homepage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdavids%2Fsdavids.de-homepage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdavids%2Fsdavids.de-homepage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdavids%2Fsdavids.de-homepage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sdavids","download_url":"https://codeload.github.com/sdavids/sdavids.de-homepage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdavids%2Fsdavids.de-homepage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32011976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T04:36:25.758Z","updated_at":"2026-04-19T15:32:03.369Z","avatar_url":"https://github.com/sdavids.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"// SPDX-FileCopyrightText: © 2022 Sebastian Davids \u003csdavids@gmx.de\u003e\n// SPDX-License-Identifier: Apache-2.0\n= sdavids.de Homepage\nSebastian Davids \u003csdavids@gmx.de\u003e\n// Metadata:\n:description: Sebastian Davids' Homepage\n// Settings:\n:sectnums:\n:sectanchors:\n:sectlinks:\n:toc: macro\n:toclevels: 3\n:toc-placement!:\n:hide-uri-scheme:\n:source-highlighter: rouge\n:rouge-style: github\n// Refs:\n:docker-install-url: https://docs.docker.com/install/\n:hadolint-install-url: https://github.com/hadolint/hadolint?tab=readme-ov-file#install\n:pnpm-install-url: https://pnpm.io/installation\n:easyrsa-install-url: https://easy-rsa.readthedocs.io/en/latest/#obtaining-and-using-easy-rsa\n:gh-actions-url: https://github.com/sdavids/sdavids.de-homepage/actions\n\nifdef::env-browser[:outfilesuffix: .adoc]\n\nifdef::env-github[]\n:outfilesuffix: .adoc\n:important-caption: :heavy_exclamation_mark:\n:note-caption: :information_source:\nendif::[]\n\ntoc::[]\n\n== Development\n\n[,console]\n----\n$ cd hp\n$ pnpm install\n----\n\n[#dev-server]\n=== Development Server\n\n==== Shell 1--Tailwind CSS CLI build process\n\n[,console]\n----\n$ cd hp\n$ pnpm run dev:css\n----\n\n==== Shell 2 - Browsersync process\n\n[,console]\n----\n$ cd hp\n$ pnpm run dev\n----\n\n=\u003e http://localhost:3000[http://localhost:3000]\n\n=== Local Build\n\n[,console]\n----\n$ cd hp\n$ pnpm run build\n----\n\n=\u003e `hp/dist`\n\n=== Format Source Code\n\n[,console]\n----\n$ cd hp\n$ pnpm run format\n----\n\n=== Lint Source Code\n\n[,console]\n----\n$ cd hp\n$ pnpm run lint\n----\n\n=== Run Unit Tests\n\n[,console]\n----\n$ cd hp\n$ pnpm run test\n----\n\n=== Run End-to-End Unit Tests\n\n[NOTE]\n====\nEnsure Playwright has been \u003c\u003cplaywright,installed\u003e\u003e.\n====\n\n==== Running in Headless Mode\n\nStart a \u003c\u003cdev-server,development server\u003e\u003e; in a new shell:\n\n[,console]\n----\n$ cd hp\n$ pnpm run playwright\n----\n\n==== Running in Headless Mode With Tracing\n\nStart a \u003c\u003cdev-server,development server\u003e\u003e; in a new shell:\n\n[,console]\n----\n$ cd hp\n$ pnpm run playwright:trace\n----\n\n==== Running in UI Mode\n\nStart a \u003c\u003cdev-server,development server\u003e\u003e; in a new shell:\n\n[,console]\n----\n$ cd hp\n$ pnpm run playwright:ui\n----\n\n== Deployment\n\n=== Local Deployment\n\n==== Create CA and Certificate\n\n[,console]\n----\n$ cd hp\n$ pnpm run cert:ca:create\n$ pnpm run cert:create\n----\n\n[IMPORTANT]\n====\nEnsure that you have modified your \u003c\u003cdns\u003e\u003e settings to include `httpd.internal`.\n====\n\n==== Create Base Docker Image\n\n[,console]\n----\n$ cd httpd\n$ scripts/docker_build.sh\n----\n\n==== Build And Start Apache HTTPD\n\n[,console]\n----\n$ cd hp\n$ pnpm run docker:httpd:start:with-build\n----\n\n=\u003e https://httpd.internal:8443[https://httpd.internal:8443]\n\n==== Start Apache HTTPD Without a Build\n\n[,console]\n----\n$ cd hp\n$ pnpm run docker:httpd:start\n----\n\n=\u003e https://httpd.internal:8443[https://httpd.internal:8443]\n\n==== Stop Apache HTTPD\n\n[,console]\n----\n$ cd hp\n$ pnpm run docker:httpd:stop\n----\n\n=== Deployment to sdavids.de\n\nDeployed website:: https://sdavids.de.\n\nGitHub Action Workflow:: link:.github/workflows/ci.yaml[]\n\nGitHub Action Runs:: {gh-actions-url}\n\n== Development Environment Setup\n\n[IMPORTANT]\n====\nAfter initializing this repository, you need to configure the https://git-scm.com/docs/git-config#Documentation/git-config.txt-blameignoreRevsFile[ignore-revs-file]:\n\n[,console]\n----\n$ git config set blame.ignoreRevsFile .git-blame-ignore-revs\n----\n====\n\n=== Installation\n\n[#dns]\n==== DNS\n\nAdd `httpd.internal` to your `/etc/hosts`:\n\n./etc/hosts\n[,text]\n----\n127.0.0.1       localhost httpd.internal\n::1             localhost httpd.internal\n----\n\n[NOTE]\n====\nIf you want to change this entry, you need to also change:\n\n.httpd/httpd.conf\n[,text]\n----\nServerName httpd.internal:80\n----\n\n.httpd/httpd-ssl.conf\n[,text]\n----\nServerName httpd.internal:443\n----\n\n.hp/scripts/docker_httpd_start.sh\n[,shell]\n----\nreadonly host_name='httpd.internal'\n----\n\n.hp/package.json\n[,json]\n----\n…\n  \"scripts\": {\n…\n    \"cert:copy\": \"scripts/copy_ca_based_cert.sh certs httpd.internal\",\n    \"cert:create\": \"scripts/create_ca_based_cert.sh certs 30 httpd.internal\",\n    \"cert:delete\": \"scripts/delete_ca_based_cert.sh certs httpd.internal\",\n    \"cert:renew\": \"scripts/renew_ca_based_cert.sh certs 30 httpd.internal\",\n    \"cert:verify\": \"scripts/verify_ca_based_cert.sh certs 30 httpd.internal\",\n…\n  },\n…\n----\n====\n\n==== Docker\n\nInstall {docker-install-url}[Docker].\n\n==== pnpm\n\nInstall {pnpm-install-url}[pnpm].\n\n==== Certificates\n\n=====  New Certificate\n\n[,console]\n----\n$ cd hp\n$ pnpm run cert:ca:create\n$ pnpm run cert:create\n----\n\n=====  Existing Certificate\n\n[,console]\n----\n$ cd hp\n$ pnpm run cert:copy\n----\n\n==== jq\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install jq\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install jq\n----\n\n==== brotli\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install brotli\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install brotli\n----\n\n==== zstd\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install zstd\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install zstd\n----\n\n==== shellcheck\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install shellcheck\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install shellcheck\n----\n\n==== shfmt\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install shfmt\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install shfmt\n----\n\n==== yamllint\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install yamllint\n----\n\n===== Mac\n\n[,console]\n----\n$ brew install yamllint\n----\n\n==== hadolint\n\n===== Linux\n\nInstall {hadolint-install-url}[hadolint].\n\n===== Mac\n\n[,console]\n----\n$ brew install hadolint\n----\n\n==== gpg\n\n===== Linux\n\n[,console]\n----\n$ sudo apt-get install gpg\n----\n\n===== Mac\n\nInstall https://gpgtools.org[GPG Suite].\n\n==== easyrsa\n\n[IMPORTANT]\n====\nEnsure that you install version `3.1.7` and not `3.2.x`!\n====\n\n===== Linux\n\nInstall {easyrsa-install-url}[easyrsa].\n\n===== Mac\n\n[WARNING]\n====\nUnfortunately, homebrew provides `easy-rsa` version `3.2.x` .\n====\n\n[,console]\n----\n$ curl -L https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.7/EasyRSA-3.1.7.tgz -o ~/Downloads/easy-rsa.tgz\n$ tar -xzf ~/Downloads/easy-rsa.tgz -C ~/.local/share\n$ mv  ~/.local/share/EasyRSA-3.1.7 ~/.local/share/easyrsa\n$ ln -s ~/.local/share/easyrsa/easyrsa ~/.local/bin/easyrsa\n$ rm ~/Downloads/easy-rsa.tgz\n----\n\n[#playwright]\n==== Playwright\n\n[,console]\n----\n$ cp hp\n$ pnpm exec playwright install --with-deps --no-shell\n----\n\n[NOTE]\n====\nYou can delete all downloaded binaries via:\n\n[,console]\n----\n$ pnpm exec playwright uninstall --all\n----\n====\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdavids%2Fsdavids.de-homepage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdavids%2Fsdavids.de-homepage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdavids%2Fsdavids.de-homepage/lists"}