Fixing my mistake!
This commit is contained in:
parent
1e96c1dd91
commit
9f7bc98553
@ -1,53 +0,0 @@
|
||||
---
|
||||
title: "Automating Hugo Deployment with Gitea Actions"
|
||||
date: 2025-02-27
|
||||
author: "Dev"
|
||||
tags: ["gitea", "ci/cd", "hugo"]
|
||||
---
|
||||
|
||||
Recently, I tried setting up **Gitea Actions** to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
- Use Gitea’s built-in CI/CD to pull the repo,
|
||||
- Build the site using Hugo,
|
||||
- Deploy it to the server.
|
||||
|
||||
## Setting Up Gitea Actions
|
||||
First, I created a `.gitea/workflows/deploy.yml` file with the following steps:
|
||||
|
||||
```yaml
|
||||
name: Deploy Hugo Site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Hugo
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y hugo
|
||||
|
||||
- name: Build site
|
||||
run: hugo -D
|
||||
|
||||
- name: Deploy to server
|
||||
run: |
|
||||
scp -r public/* user@server:/var/www/html/
|
||||
|
||||
```
|
||||
|
||||
# Authentication Issues 😩
|
||||
To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
|
||||

|
||||
|
||||
I knew this wasn't ideal, but I just wanted to get it working first. Unfortunately, after multiple attempts, it still failed with permission denied (publickey) errors.
|
||||
|
||||
# What's Next? 🤔
|
||||
Instead of fighting with Gitea Actions, I decided to try something else. In my next post, I'll explain how I switched to a simpler, more reliable approach using a sync service.
|
||||
|
||||
13
content/posts/oopsie.md
Normal file
13
content/posts/oopsie.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: "Oops... That Was a Mistake"
|
||||
date: 2025-02-27
|
||||
author: "Dev"
|
||||
tags: ["gitea", "security", "hugo"]
|
||||
---
|
||||
|
||||
So... turns out **posting my SSH private key** in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
|
||||
Obviously, I had to **delete the previous post** ASAP. Lesson learned: **Always double-check what you're pushing to production!**
|
||||
|
||||
A new, **safer** version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB |
@ -118,17 +118,18 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Automating Hugo Deployment with Gitea Actions
|
||||
<h2 class="entry-hint-parent">Oops... That Was a Mistake
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
...</p>
|
||||
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
||||
<a class="entry-link" aria-label="post link to Automating Hugo Deployment with Gitea Actions" href="https://blog.rakowskiii.com/posts/first-attempt/"></a>
|
||||
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="https://blog.rakowskiii.com/posts/oopsie/"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
|
||||
@ -9,44 +9,14 @@
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
||||
<link>https://blog.rakowskiii.com/posts/first-attempt/</link>
|
||||
<title>Oops... That Was a Mistake</title>
|
||||
<link>https://blog.rakowskiii.com/posts/oopsie/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/first-attempt/</guid>
|
||||
<description><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions</h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update &amp;&amp; sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩</h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p></description>
|
||||
<guid>https://blog.rakowskiii.com/posts/oopsie/</guid>
|
||||
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you&rsquo;re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -1,344 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Automating Hugo Deployment with Gitea Actions | Dev Logbook</title>
|
||||
<meta name="keywords" content="gitea, ci/cd, hugo">
|
||||
<meta name="description" content="Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
|
||||
Use Gitea’s built-in CI/CD to pull the repo,
|
||||
Build the site using Hugo,
|
||||
Deploy it to the server.
|
||||
|
||||
Setting Up Gitea Actions
|
||||
First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Hugo
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y hugo
|
||||
|
||||
- name: Build site
|
||||
run: hugo -D
|
||||
|
||||
- name: Deploy to server
|
||||
run: |
|
||||
scp -r public/* user@server:/var/www/html/
|
||||
Authentication Issues 😩
|
||||
To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.">
|
||||
<meta name="author" content="Dev">
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/posts/first-attempt/">
|
||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="https://blog.rakowskiii.com/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="https://blog.rakowskiii.com/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="https://blog.rakowskiii.com/favicon-32x32.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.rakowskiii.com/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="https://blog.rakowskiii.com/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="https://blog.rakowskiii.com/posts/first-attempt/">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:url" content="https://blog.rakowskiii.com/posts/first-attempt/">
|
||||
<meta property="og:site_name" content="Dev Logbook">
|
||||
<meta property="og:title" content="Automating Hugo Deployment with Gitea Actions">
|
||||
<meta property="og:description" content="Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.">
|
||||
<meta property="og:locale" content="en-us">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="article:section" content="posts">
|
||||
<meta property="article:published_time" content="2025-02-27T00:00:00+00:00">
|
||||
<meta property="article:modified_time" content="2025-02-27T00:00:00+00:00">
|
||||
<meta property="article:tag" content="Gitea">
|
||||
<meta property="article:tag" content="Ci/Cd">
|
||||
<meta property="article:tag" content="Hugo">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Automating Hugo Deployment with Gitea Actions">
|
||||
<meta name="twitter:description" content="Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
|
||||
Use Gitea’s built-in CI/CD to pull the repo,
|
||||
Build the site using Hugo,
|
||||
Deploy it to the server.
|
||||
|
||||
Setting Up Gitea Actions
|
||||
First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Hugo
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y hugo
|
||||
|
||||
- name: Build site
|
||||
run: hugo -D
|
||||
|
||||
- name: Deploy to server
|
||||
run: |
|
||||
scp -r public/* user@server:/var/www/html/
|
||||
Authentication Issues 😩
|
||||
To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.">
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "https://blog.rakowskiii.com/posts/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2 ,
|
||||
"name": "Automating Hugo Deployment with Gitea Actions",
|
||||
"item": "https://blog.rakowskiii.com/posts/first-attempt/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Automating Hugo Deployment with Gitea Actions",
|
||||
"name": "Automating Hugo Deployment with Gitea Actions",
|
||||
"description": "Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:\nUse Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:\nname: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update \u0026amp;\u0026amp; sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.\n",
|
||||
"keywords": [
|
||||
"gitea", "ci/cd", "hugo"
|
||||
],
|
||||
"articleBody": "Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:\nUse Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:\nname: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update \u0026\u0026 sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.\nI knew this wasn’t ideal, but I just wanted to get it working first. Unfortunately, after multiple attempts, it still failed with permission denied (publickey) errors.\nWhat’s Next? 🤔 Instead of fighting with Gitea Actions, I decided to try something else. In my next post, I’ll explain how I switched to a simpler, more reliable approach using a sync service.\n",
|
||||
"wordCount" : "200",
|
||||
"inLanguage": "en",
|
||||
"datePublished": "2025-02-27T00:00:00Z",
|
||||
"dateModified": "2025-02-27T00:00:00Z",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Dev"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "https://blog.rakowskiii.com/posts/first-attempt/"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Dev Logbook",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://blog.rakowskiii.com/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="https://blog.rakowskiii.com/" accesskey="h" title="Dev Logbook (Alt + H)">Dev Logbook</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Automating Hugo Deployment with Gitea Actions
|
||||
</h1>
|
||||
<div class="post-meta"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content"><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions<a hidden class="anchor" aria-hidden="true" href="#setting-up-gitea-actions">#</a></h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update && sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩<a hidden class="anchor" aria-hidden="true" href="#authentication-issues-">#</a></h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p>
|
||||
<p><img alt="My SSH Key" loading="lazy" src="/images/mykey.png"></p>
|
||||
<p>I knew this wasn’t ideal, but I just wanted to get it working first. Unfortunately, after multiple attempts, it still failed with permission denied (publickey) errors.</p>
|
||||
<h1 id="whats-next-">What’s Next? 🤔<a hidden class="anchor" aria-hidden="true" href="#whats-next-">#</a></h1>
|
||||
<p>Instead of fighting with Gitea Actions, I decided to try something else. In my next post, I’ll explain how I switched to a simpler, more reliable approach using a sync service.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="https://blog.rakowskiii.com/tags/gitea/">Gitea</a></li>
|
||||
<li><a href="https://blog.rakowskiii.com/tags/ci/cd/">Ci/Cd</a></li>
|
||||
<li><a href="https://blog.rakowskiii.com/tags/hugo/">Hugo</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2025 <a href="https://blog.rakowskiii.com/">Dev Logbook</a></span> ·
|
||||
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -102,17 +102,18 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Automating Hugo Deployment with Gitea Actions
|
||||
<h2 class="entry-hint-parent">Oops... That Was a Mistake
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
...</p>
|
||||
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
||||
<a class="entry-link" aria-label="post link to Automating Hugo Deployment with Gitea Actions" href="https://blog.rakowskiii.com/posts/first-attempt/"></a>
|
||||
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="https://blog.rakowskiii.com/posts/oopsie/"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
|
||||
@ -9,44 +9,14 @@
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
||||
<link>https://blog.rakowskiii.com/posts/first-attempt/</link>
|
||||
<title>Oops... That Was a Mistake</title>
|
||||
<link>https://blog.rakowskiii.com/posts/oopsie/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/first-attempt/</guid>
|
||||
<description><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions</h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update &amp;&amp; sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩</h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p></description>
|
||||
<guid>https://blog.rakowskiii.com/posts/oopsie/</guid>
|
||||
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you&rsquo;re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
251
public/posts/oopsie/index.html
Normal file
251
public/posts/oopsie/index.html
Normal file
@ -0,0 +1,251 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Oops... That Was a Mistake | Dev Logbook</title>
|
||||
<meta name="keywords" content="gitea, security, hugo">
|
||||
<meta name="description" content="So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!">
|
||||
<meta name="author" content="Dev">
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/posts/oopsie/">
|
||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="https://blog.rakowskiii.com/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="https://blog.rakowskiii.com/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="https://blog.rakowskiii.com/favicon-32x32.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.rakowskiii.com/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="https://blog.rakowskiii.com/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="https://blog.rakowskiii.com/posts/oopsie/">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:url" content="https://blog.rakowskiii.com/posts/oopsie/">
|
||||
<meta property="og:site_name" content="Dev Logbook">
|
||||
<meta property="og:title" content="Oops... That Was a Mistake">
|
||||
<meta property="og:description" content="So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!">
|
||||
<meta property="og:locale" content="en-us">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="article:section" content="posts">
|
||||
<meta property="article:published_time" content="2025-02-27T00:00:00+00:00">
|
||||
<meta property="article:modified_time" content="2025-02-27T00:00:00+00:00">
|
||||
<meta property="article:tag" content="Gitea">
|
||||
<meta property="article:tag" content="Security">
|
||||
<meta property="article:tag" content="Hugo">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Oops... That Was a Mistake">
|
||||
<meta name="twitter:description" content="So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!">
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "https://blog.rakowskiii.com/posts/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2 ,
|
||||
"name": "Oops... That Was a Mistake",
|
||||
"item": "https://blog.rakowskiii.com/posts/oopsie/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Oops... That Was a Mistake",
|
||||
"name": "Oops... That Was a Mistake",
|
||||
"description": "So\u0026hellip; turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃\nI didn’t even realize it until someone pointed it out.\nObviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you\u0026rsquo;re pushing to production!\nA new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!\n",
|
||||
"keywords": [
|
||||
"gitea", "security", "hugo"
|
||||
],
|
||||
"articleBody": "So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃\nI didn’t even realize it until someone pointed it out.\nObviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!\nA new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!\n",
|
||||
"wordCount" : "65",
|
||||
"inLanguage": "en",
|
||||
"datePublished": "2025-02-27T00:00:00Z",
|
||||
"dateModified": "2025-02-27T00:00:00Z",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Dev"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "https://blog.rakowskiii.com/posts/oopsie/"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Dev Logbook",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://blog.rakowskiii.com/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="https://blog.rakowskiii.com/" accesskey="h" title="Dev Logbook (Alt + H)">Dev Logbook</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Oops... That Was a Mistake
|
||||
</h1>
|
||||
<div class="post-meta"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content"><p>So… turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you’re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="https://blog.rakowskiii.com/tags/gitea/">Gitea</a></li>
|
||||
<li><a href="https://blog.rakowskiii.com/tags/security/">Security</a></li>
|
||||
<li><a href="https://blog.rakowskiii.com/tags/hugo/">Hugo</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2025 <a href="https://blog.rakowskiii.com/">Dev Logbook</a></span> ·
|
||||
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -2,12 +2,6 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>https://blog.rakowskiii.com/posts/first-attempt/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/tags/ci/cd/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
@ -16,9 +10,15 @@
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/tags/hugo/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/posts/oopsie/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/posts/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/tags/security/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.rakowskiii.com/tags/</loc>
|
||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Ci/Cd on Dev Logbook</title>
|
||||
<link>https://blog.rakowskiii.com/tags/ci/cd/</link>
|
||||
<description>Recent content in Ci/Cd on Dev Logbook</description>
|
||||
<generator>Hugo -- 0.145.0</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/tags/ci/cd/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
||||
<link>https://blog.rakowskiii.com/posts/first-attempt/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/first-attempt/</guid>
|
||||
<description><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions</h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update &amp;&amp; sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩</h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@ -87,17 +87,18 @@
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Automating Hugo Deployment with Gitea Actions
|
||||
<h2 class="entry-hint-parent">Oops... That Was a Mistake
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
...</p>
|
||||
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
||||
<a class="entry-link" aria-label="post link to Automating Hugo Deployment with Gitea Actions" href="https://blog.rakowskiii.com/posts/first-attempt/"></a>
|
||||
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="https://blog.rakowskiii.com/posts/oopsie/"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
|
||||
@ -9,44 +9,14 @@
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/tags/gitea/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
||||
<link>https://blog.rakowskiii.com/posts/first-attempt/</link>
|
||||
<title>Oops... That Was a Mistake</title>
|
||||
<link>https://blog.rakowskiii.com/posts/oopsie/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/first-attempt/</guid>
|
||||
<description><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions</h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update &amp;&amp; sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩</h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p></description>
|
||||
<guid>https://blog.rakowskiii.com/posts/oopsie/</guid>
|
||||
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you&rsquo;re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -87,17 +87,18 @@
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Automating Hugo Deployment with Gitea Actions
|
||||
<h2 class="entry-hint-parent">Oops... That Was a Mistake
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
...</p>
|
||||
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
||||
<a class="entry-link" aria-label="post link to Automating Hugo Deployment with Gitea Actions" href="https://blog.rakowskiii.com/posts/first-attempt/"></a>
|
||||
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="https://blog.rakowskiii.com/posts/oopsie/"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
|
||||
@ -9,44 +9,14 @@
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/tags/hugo/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
||||
<link>https://blog.rakowskiii.com/posts/first-attempt/</link>
|
||||
<title>Oops... That Was a Mistake</title>
|
||||
<link>https://blog.rakowskiii.com/posts/oopsie/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/first-attempt/</guid>
|
||||
<description><p>Recently, I tried setting up <strong>Gitea Actions</strong> to automatically update my Hugo blog whenever I pushed new content. The idea was simple:</p>
|
||||
<ul>
|
||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
||||
<li>Build the site using Hugo,</li>
|
||||
<li>Deploy it to the server.</li>
|
||||
</ul>
|
||||
<h2 id="setting-up-gitea-actions">Setting Up Gitea Actions</h2>
|
||||
<p>First, I created a <code>.gitea/workflows/deploy.yml</code> file with the following steps:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy Hugo Site</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">push</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">branches</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">main</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">build</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">steps</span>:
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Clone repository</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Install Hugo</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo apt update &amp;&amp; sudo apt install -y hugo</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Build site</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo -D</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to server</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#f92672">run</span>: |<span style="color:#e6db74">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> scp -r public/* user@server:/var/www/html/</span>
|
||||
</span></span></code></pre></div><h1 id="authentication-issues-">Authentication Issues 😩</h1>
|
||||
<p>To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.</p></description>
|
||||
<guid>https://blog.rakowskiii.com/posts/oopsie/</guid>
|
||||
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you&rsquo;re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -84,15 +84,15 @@
|
||||
</header>
|
||||
|
||||
<ul class="terms-tags">
|
||||
<li>
|
||||
<a href="https://blog.rakowskiii.com/tags/ci/cd/">cd <sup><strong><sup>1</sup></strong></sup> </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://blog.rakowskiii.com/tags/gitea/">gitea <sup><strong><sup>1</sup></strong></sup> </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://blog.rakowskiii.com/tags/hugo/">hugo <sup><strong><sup>1</sup></strong></sup> </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://blog.rakowskiii.com/tags/security/">security <sup><strong><sup>1</sup></strong></sup> </a>
|
||||
</li>
|
||||
</ul>
|
||||
</main>
|
||||
|
||||
|
||||
@ -8,13 +8,6 @@
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Ci/Cd</title>
|
||||
<link>https://blog.rakowskiii.com/tags/ci/cd/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/tags/ci/cd/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Gitea</title>
|
||||
<link>https://blog.rakowskiii.com/tags/gitea/</link>
|
||||
@ -29,5 +22,12 @@
|
||||
<guid>https://blog.rakowskiii.com/tags/hugo/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Security</title>
|
||||
<link>https://blog.rakowskiii.com/tags/security/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/tags/security/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,11 +5,11 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Ci/Cd | Dev Logbook</title>
|
||||
<title>Security | Dev Logbook</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/tags/ci/cd/">
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/tags/security/">
|
||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="https://blog.rakowskiii.com/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="https://blog.rakowskiii.com/favicon-16x16.png">
|
||||
@ -18,8 +18,8 @@
|
||||
<link rel="mask-icon" href="https://blog.rakowskiii.com/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="https://blog.rakowskiii.com/tags/ci/cd/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="https://blog.rakowskiii.com/tags/ci/cd/">
|
||||
<link rel="alternate" type="application/rss+xml" href="https://blog.rakowskiii.com/tags/security/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="https://blog.rakowskiii.com/tags/security/">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -28,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:url" content="https://blog.rakowskiii.com/tags/ci/cd/">
|
||||
</noscript><meta property="og:url" content="https://blog.rakowskiii.com/tags/security/">
|
||||
<meta property="og:site_name" content="Dev Logbook">
|
||||
<meta property="og:title" content="Ci/Cd">
|
||||
<meta property="og:title" content="Security">
|
||||
<meta property="og:locale" content="en-us">
|
||||
<meta property="og:type" content="website">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Ci/Cd">
|
||||
<meta name="twitter:title" content="Security">
|
||||
<meta name="twitter:description" content="">
|
||||
|
||||
</head>
|
||||
@ -81,23 +81,24 @@
|
||||
<main class="main">
|
||||
<header class="page-header">
|
||||
<h1>
|
||||
Ci/Cd
|
||||
Security
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Automating Hugo Deployment with Gitea Actions
|
||||
<h2 class="entry-hint-parent">Oops... That Was a Mistake
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Recently, I tried setting up Gitea Actions to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
|
||||
Use Gitea’s built-in CI/CD to pull the repo, Build the site using Hugo, Deploy it to the server. Setting Up Gitea Actions First, I created a .gitea/workflows/deploy.yml file with the following steps:
|
||||
name: Deploy Hugo Site on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Install Hugo run: | sudo apt update && sudo apt install -y hugo - name: Build site run: hugo -D - name: Deploy to server run: | scp -r public/* user@server:/var/www/html/ Authentication Issues 😩 To deploy, I needed SSH access to the server. Gitea doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||||
...</p>
|
||||
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||
I didn’t even realize it until someone pointed it out.
|
||||
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||
</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
||||
<a class="entry-link" aria-label="post link to Automating Hugo Deployment with Gitea Actions" href="https://blog.rakowskiii.com/posts/first-attempt/"></a>
|
||||
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="https://blog.rakowskiii.com/posts/oopsie/"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
22
public/tags/security/index.xml
Normal file
22
public/tags/security/index.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Security on Dev Logbook</title>
|
||||
<link>https://blog.rakowskiii.com/tags/security/</link>
|
||||
<description>Recent content in Security on Dev Logbook</description>
|
||||
<generator>Hugo -- 0.145.0</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.rakowskiii.com/tags/security/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Oops... That Was a Mistake</title>
|
||||
<link>https://blog.rakowskiii.com/posts/oopsie/</link>
|
||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.rakowskiii.com/posts/oopsie/</guid>
|
||||
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||
I didn’t even realize it until someone pointed it out.</p>
|
||||
<p>Obviously, I had to <strong>delete the previous post</strong> ASAP. Lesson learned: <strong>Always double-check what you&rsquo;re pushing to production!</strong></p>
|
||||
<p>A new, <strong>safer</strong> version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>https://blog.rakowskiii.com/tags/ci/cd/</title>
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/tags/ci/cd/">
|
||||
<title>https://blog.rakowskiii.com/tags/security/</title>
|
||||
<link rel="canonical" href="https://blog.rakowskiii.com/tags/security/">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.rakowskiii.com/tags/ci/cd/">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.rakowskiii.com/tags/security/">
|
||||
</head>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB |
Loading…
x
Reference in New Issue
Block a user