<!doctype html><htmllang=de-de><head><metacharset=utf-8><metahttp-equiv=x-ua-compatiblecontent="IE=edge,chrome=1"><title>Deployment von Hugo auf Codeberg Pages via Woodpecker CI | My New Hugo Site</title><metaname=viewportcontent="width=device-width,minimum-scale=1"><metaname=descriptioncontent="Mit Codeberg-Pages eine eigene Webseite hosten"><metaname=generatorcontent="Hugo 0.111.3"><metaname=robotscontent="noindex, nofollow"><linkrel=stylesheethref=/hugo-code-berg-pages-template/ananke/css/main.min.css><linkrel=canonicalhref=https://joerglohrer.codeberg.page/hugo-code-berg-pages-template/ersteseite/><metaproperty="og:title"content="Deployment von Hugo auf Codeberg Pages via Woodpecker CI"><metaproperty="og:description"content="Mit Codeberg-Pages eine eigene Webseite hosten"><metaproperty="og:type"content="article"><metaproperty="og:url"content="https://joerglohrer.codeberg.page/hugo-code-berg-pages-template/ersteseite/"><metaproperty="article:section"content><metaitemprop=namecontent="Deployment von Hugo auf Codeberg Pages via Woodpecker CI"><metaitemprop=descriptioncontent="Mit Codeberg-Pages eine eigene Webseite hosten"><metaitemprop=wordCountcontent="537"><metaitemprop=keywordscontent><metaname=twitter:cardcontent="summary"><metaname=twitter:titlecontent="Deployment von Hugo auf Codeberg Pages via Woodpecker CI"><metaname=twitter:descriptioncontent="Mit Codeberg-Pages eine eigene Webseite hosten"></head><bodyclass="ma0 avenir bg-near-white DEV"><header><divclass=bg-black><navclass="pv3 ph3 ph4-ns"role=navigation><divclass="flex-l justify-between items-center center"><ahref=/hugo-code-berg-pages-template/class="f3 fw2 hover-white no-underline white-90 dib">My New Hugo Site</a><divclass="flex-l items-center"><divclass=ananke-socials></div></div></div></nav></div></header><mainclass=pb7role=main><divclass="flex-l mt2 mw8 center"><articleclass="center cf pv5 ph3 ph4-ns mw7"><header><h1class=f1>Deployment von Hugo auf Codeberg Pages via Woodpecker CI</h1></header><divclass="nested-copy-line-height lh-copy f4 nested-links mid-gray"><h1id=deployment-von-hugo-auf-codeberg-pages-via-woodpecker-ci>Deployment von Hugo auf Codeberg Pages via Woodpecker CI</h1><p><ahref=https://codeberg.org/joerglohrer/hugopage>https://codeberg.org/joerglohrer/hugopage</a></p><h2id=vorbereitung>Vorbereitung</h2><p><ahref=https://toheine.net/posts/2023/website-deployment/>https://toheine.net/posts/2023/website-deployment/</a>
</code></pre><ul><li><code>git switch</code>: Dieser Befehl wird verwendet, um zwischen verschiedenen Git-Branches zu wechseln.</li><li><code>--orphan</code>: Diese Option erzeugt einen neuen Branch, der keine Eltern-Commits hat. Er ist sozusagen völlig losgelöst von der bisherigen Commit-Historie des Repositorys.</li><li><code>pages</code>: Das ist der Name des neuen Branches, der erstellt wird.</li></ul><pretabindex=0><code>git rm --cached -r .
</code></pre><ul><li><code>git rm</code>: Der Befehl zum Entfernen von Dateien aus der Git-Verfolgung. Die Dateien werden nicht aus deinem Arbeitsverzeichnis gelöscht.</li><li><code>--cached</code>: Diese Flagge weist Git an, die Dateien nur aus dem Staging-Bereich zu entfernen, nicht aus deinem lokalen Dateisystem.</li><li><code>-r</code>: Diese Flagge aktiviert die rekursive Entfernung, d.h. sie zielt auf Dateien in allen Unterverzeichnissen ab.</li><li><code>.</code> : Der Punkt kennzeichnet “alles im aktuellen Verzeichnis und darunter”.</li></ul><pretabindex=0><code>nano neu.md
git add neu.md
git commit -m "neu"
git push --set-upstream origin pages
</code></pre><p><imgsrc=https://pad.gwdg.de/uploads/1596177b-0edd-4b54-bf40-6ee57da781b3.pngalt></p><h3id=hugo-installieren>Hugo installieren</h3><p>hugo new site hugo-codeberg-pages-template –force</p><h3id=vorbereitung-für-die-pipeline>Vorbereitung für die Pipeline</h3><h4id=access-token-erstellenhttpsdocscodebergorgadvancedaccess-token><ahref=https://docs.codeberg.org/advanced/access-token/>Access Token erstellen</a></h4><p>Unter <ahref=https://codeberg.org/user/settings/applications>https://codeberg.org/user/settings/applications</a>
Im Beispiel wird der Token-Name “hugopagetoken” generiert bei dem in den Berechtigungen unter “repository” Lesen und Schreiben ausgewählt ist.
Soblad man auf “Token generieren” klickt, erscheint der Token mit einem Hinweis, diesen jetzt zu kopieren, da er später nicht mehr angezeigt wird.</p><h4id=geheimnisse-eintragen>Geheimnisse eintragen</h4><p>Auf <ahref=https://ci.codeberg.org/repos>https://ci.codeberg.org/repos</a> das Repo hinzufügen für das die Pipeline gestartet werden soll und dort die Geheimnisse eintragen:
Im Beispiel wird ein Geheimnis mit dem Namen <code>codeberg_token</code> mit generierte <code>hugopagetoken</code> mit dem Wert <code>883029f2a627c7b5fa181f24b9205a775add1ff1</code> eingesetzt und dann noch das Geheimnis <code>mail</code> mit der Mailadresse des dazu passenden Codeberg-Users als Wert gespeichert.</p><p>Die Geheimnisse werden zur Laufzeit als Umgebungsvariablen an einzelne Pipelineschritte übergeben.
<code>.woodpecker.yml</code> angeben und die Vorlage verwenden aus folgendem Pipeline Beispiel</p><h3id=codeberg-pages>Codeberg Pages</h3><p><ahref=https://docs.codeberg.org/codeberg-pages/>https://docs.codeberg.org/codeberg-pages/</a>