Fixing my mistake!
This commit is contained in:
parent
4af5bfc265
commit
3edb2cc0f2
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB |
@ -97,17 +97,18 @@
|
|||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
<header class="entry-header">
|
<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>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<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:
|
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||||
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:
|
I didn’t even realize it until someone pointed it out.
|
||||||
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.
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
...</p>
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
<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="http://localhost:1313/posts/first-attempt/"></a>
|
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="http://localhost:1313/posts/i-messed-up/"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@ -9,44 +9,14 @@
|
|||||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||||
<atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
<title>Oops... That Was a Mistake</title>
|
||||||
<link>http://localhost:1313/posts/first-attempt/</link>
|
<link>http://localhost:1313/posts/i-messed-up/</link>
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
<guid>http://localhost:1313/posts/first-attempt/</guid>
|
<guid>http://localhost:1313/posts/i-messed-up/</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>
|
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||||
<ul>
|
I didn’t even realize it until someone pointed it out.</p>
|
||||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
<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>
|
||||||
<li>Build the site using Hugo,</li>
|
<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>
|
||||||
<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>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|||||||
BIN
public/mykey.png
BIN
public/mykey.png
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB |
@ -1,240 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" dir="auto">
|
|
||||||
|
|
||||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><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="noindex, nofollow">
|
|
||||||
<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="http://localhost:1313/posts/first-attempt/">
|
|
||||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
|
||||||
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="http://localhost:1313/favicon-16x16.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="http://localhost:1313/favicon-32x32.png">
|
|
||||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
|
||||||
<link rel="mask-icon" href="http://localhost:1313/safari-pinned-tab.svg">
|
|
||||||
<meta name="theme-color" content="#2e2e33">
|
|
||||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
|
||||||
<link rel="alternate" hreflang="en" href="http://localhost:1313/posts/first-attempt/">
|
|
||||||
<noscript>
|
|
||||||
<style>
|
|
||||||
#theme-toggle,
|
|
||||||
.top-link {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</noscript>
|
|
||||||
</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="http://localhost:1313/" 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="http://localhost:1313/tags/gitea/">Gitea</a></li>
|
|
||||||
<li><a href="http://localhost:1313/tags/ci/cd/">Ci/Cd</a></li>
|
|
||||||
<li><a href="http://localhost:1313/tags/hugo/">Hugo</a></li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</article>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<span>© 2025 <a href="http://localhost:1313/">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>
|
|
||||||
@ -5,30 +5,14 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="robots" content="noindex, nofollow">
|
<meta name="robots" content="noindex, nofollow">
|
||||||
<title>Automating Hugo Deployment with Gitea Actions | Dev Logbook</title>
|
<title>Oops... That Was a Mistake | Dev Logbook</title>
|
||||||
<meta name="keywords" content="gitea, ci/cd, hugo">
|
<meta name="keywords" content="gitea, security, 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:
|
<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.
|
||||||
Use Gitea’s built-in CI/CD to pull the repo,
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
Build the site using Hugo,
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!">
|
||||||
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">
|
|
||||||
<meta name="author" content="Dev">
|
<meta name="author" content="Dev">
|
||||||
<link rel="canonical" href="http://localhost:1313/first-attempt/">
|
<link rel="canonical" href="http://localhost:1313/posts/i-messed-up/">
|
||||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||||||
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="http://localhost:1313/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="http://localhost:1313/favicon-16x16.png">
|
||||||
@ -37,7 +21,7 @@ uses: actions/checkout@v3">
|
|||||||
<link rel="mask-icon" href="http://localhost:1313/safari-pinned-tab.svg">
|
<link rel="mask-icon" href="http://localhost:1313/safari-pinned-tab.svg">
|
||||||
<meta name="theme-color" content="#2e2e33">
|
<meta name="theme-color" content="#2e2e33">
|
||||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||||
<link rel="alternate" hreflang="en" href="http://localhost:1313/first-attempt/">
|
<link rel="alternate" hreflang="en" href="http://localhost:1313/posts/i-messed-up/">
|
||||||
<noscript>
|
<noscript>
|
||||||
<style>
|
<style>
|
||||||
#theme-toggle,
|
#theme-toggle,
|
||||||
@ -46,34 +30,6 @@ uses: actions/checkout@v3">
|
|||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<style>
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
--theme: rgb(29, 30, 32);
|
|
||||||
--entry: rgb(46, 46, 51);
|
|
||||||
--primary: rgb(218, 218, 219);
|
|
||||||
--secondary: rgb(155, 156, 157);
|
|
||||||
--tertiary: rgb(65, 66, 68);
|
|
||||||
--content: rgb(196, 196, 197);
|
|
||||||
--code-block-bg: rgb(46, 46, 51);
|
|
||||||
--code-bg: rgb(55, 56, 62);
|
|
||||||
--border: rgb(51, 51, 51);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list {
|
|
||||||
background: var(--theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-track {
|
|
||||||
background: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
|
||||||
border-color: var(--theme);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</noscript>
|
</noscript>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -81,10 +37,6 @@ uses: actions/checkout@v3">
|
|||||||
<script>
|
<script>
|
||||||
if (localStorage.getItem("pref-theme") === "dark") {
|
if (localStorage.getItem("pref-theme") === "dark") {
|
||||||
document.body.classList.add('dark');
|
document.body.classList.add('dark');
|
||||||
} else if (localStorage.getItem("pref-theme") === "light") {
|
|
||||||
document.body.classList.remove('dark')
|
|
||||||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@ -126,61 +78,24 @@ uses: actions/checkout@v3">
|
|||||||
<header class="post-header">
|
<header class="post-header">
|
||||||
|
|
||||||
<h1 class="post-title entry-hint-parent">
|
<h1 class="post-title entry-hint-parent">
|
||||||
Automating Hugo Deployment with Gitea Actions
|
Oops... That Was a Mistake
|
||||||
</h1>
|
</h1>
|
||||||
<div class="post-meta"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev
|
<div class="post-meta"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</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>
|
<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>
|
||||||
<ul>
|
I didn’t even realize it until someone pointed it out.</p>
|
||||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
<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>
|
||||||
<li>Build the site using Hugo,</li>
|
<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>
|
||||||
<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>
|
|
||||||
<p>``yaml
|
|
||||||
name: Deploy Hugo Site</p>
|
|
||||||
<p>on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main</p>
|
|
||||||
<p>jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Clone repository
|
|
||||||
uses: actions/checkout@v3</p>
|
|
||||||
<pre><code> - 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/
|
|
||||||
</code></pre>
|
|
||||||
<pre tabindex="0"><code>
|
|
||||||
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.
|
|
||||||
|
|
||||||
<placeholder>
|
|
||||||
|
|
||||||
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.
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer class="post-footer">
|
<footer class="post-footer">
|
||||||
<ul class="post-tags">
|
<ul class="post-tags">
|
||||||
<li><a href="http://localhost:1313/tags/gitea/">Gitea</a></li>
|
<li><a href="http://localhost:1313/tags/gitea/">Gitea</a></li>
|
||||||
<li><a href="http://localhost:1313/tags/ci/cd/">Ci/Cd</a></li>
|
<li><a href="http://localhost:1313/tags/security/">Security</a></li>
|
||||||
<li><a href="http://localhost:1313/tags/hugo/">Hugo</a></li>
|
<li><a href="http://localhost:1313/tags/hugo/">Hugo</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
@ -79,17 +79,18 @@
|
|||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
<header class="entry-header">
|
<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>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<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:
|
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||||
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:
|
I didn’t even realize it until someone pointed it out.
|
||||||
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.
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
...</p>
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
<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="http://localhost:1313/posts/first-attempt/"></a>
|
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="http://localhost:1313/posts/i-messed-up/"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@ -9,44 +9,14 @@
|
|||||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||||
<atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
<title>Oops... That Was a Mistake</title>
|
||||||
<link>http://localhost:1313/posts/first-attempt/</link>
|
<link>http://localhost:1313/posts/i-messed-up/</link>
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
<guid>http://localhost:1313/posts/first-attempt/</guid>
|
<guid>http://localhost:1313/posts/i-messed-up/</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>
|
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||||
<ul>
|
I didn’t even realize it until someone pointed it out.</p>
|
||||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
<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>
|
||||||
<li>Build the site using Hugo,</li>
|
<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>
|
||||||
<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>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|||||||
@ -2,12 +2,6 @@
|
|||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
<url>
|
<url>
|
||||||
<loc>http://localhost:1313/posts/first-attempt/</loc>
|
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
|
||||||
</url><url>
|
|
||||||
<loc>http://localhost:1313/tags/ci/cd/</loc>
|
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
|
||||||
</url><url>
|
|
||||||
<loc>http://localhost:1313/</loc>
|
<loc>http://localhost:1313/</loc>
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
@ -16,9 +10,15 @@
|
|||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://localhost:1313/tags/hugo/</loc>
|
<loc>http://localhost:1313/tags/hugo/</loc>
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>http://localhost:1313/posts/i-messed-up/</loc>
|
||||||
|
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://localhost:1313/posts/</loc>
|
<loc>http://localhost:1313/posts/</loc>
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>http://localhost:1313/tags/security/</loc>
|
||||||
|
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://localhost:1313/tags/</loc>
|
<loc>http://localhost:1313/tags/</loc>
|
||||||
<lastmod>2025-02-27T00:00:00+00:00</lastmod>
|
<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>http://localhost:1313/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="http://localhost:1313/tags/ci/cd/index.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
|
||||||
<link>http://localhost:1313/posts/first-attempt/</link>
|
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
|
||||||
<guid>http://localhost:1313/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>
|
|
||||||
@ -79,17 +79,18 @@
|
|||||||
|
|
||||||
<article class="post-entry tag-entry">
|
<article class="post-entry tag-entry">
|
||||||
<header class="entry-header">
|
<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>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<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:
|
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||||
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:
|
I didn’t even realize it until someone pointed it out.
|
||||||
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.
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
...</p>
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
<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="http://localhost:1313/posts/first-attempt/"></a>
|
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="http://localhost:1313/posts/i-messed-up/"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@ -9,44 +9,14 @@
|
|||||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||||
<atom:link href="http://localhost:1313/tags/gitea/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://localhost:1313/tags/gitea/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
<title>Oops... That Was a Mistake</title>
|
||||||
<link>http://localhost:1313/posts/first-attempt/</link>
|
<link>http://localhost:1313/posts/i-messed-up/</link>
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
<guid>http://localhost:1313/posts/first-attempt/</guid>
|
<guid>http://localhost:1313/posts/i-messed-up/</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>
|
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||||
<ul>
|
I didn’t even realize it until someone pointed it out.</p>
|
||||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
<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>
|
||||||
<li>Build the site using Hugo,</li>
|
<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>
|
||||||
<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>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|||||||
@ -79,17 +79,18 @@
|
|||||||
|
|
||||||
<article class="post-entry tag-entry">
|
<article class="post-entry tag-entry">
|
||||||
<header class="entry-header">
|
<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>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<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:
|
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||||
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:
|
I didn’t even realize it until someone pointed it out.
|
||||||
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.
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
...</p>
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
<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="http://localhost:1313/posts/first-attempt/"></a>
|
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="http://localhost:1313/posts/i-messed-up/"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@ -9,44 +9,14 @@
|
|||||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||||
<atom:link href="http://localhost:1313/tags/hugo/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://localhost:1313/tags/hugo/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Automating Hugo Deployment with Gitea Actions</title>
|
<title>Oops... That Was a Mistake</title>
|
||||||
<link>http://localhost:1313/posts/first-attempt/</link>
|
<link>http://localhost:1313/posts/i-messed-up/</link>
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
<guid>http://localhost:1313/posts/first-attempt/</guid>
|
<guid>http://localhost:1313/posts/i-messed-up/</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>
|
<description><p>So&hellip; turns out <strong>posting my SSH private key</strong> in a blog post wasn’t the smartest move. 🙃<br>
|
||||||
<ul>
|
I didn’t even realize it until someone pointed it out.</p>
|
||||||
<li>Use Gitea’s built-in CI/CD to pull the repo,</li>
|
<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>
|
||||||
<li>Build the site using Hugo,</li>
|
<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>
|
||||||
<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>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|||||||
@ -76,15 +76,15 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<ul class="terms-tags">
|
<ul class="terms-tags">
|
||||||
<li>
|
|
||||||
<a href="http://localhost:1313/tags/ci/cd/">cd <sup><strong><sup>1</sup></strong></sup> </a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="http://localhost:1313/tags/gitea/">gitea <sup><strong><sup>1</sup></strong></sup> </a>
|
<a href="http://localhost:1313/tags/gitea/">gitea <sup><strong><sup>1</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="http://localhost:1313/tags/hugo/">hugo <sup><strong><sup>1</sup></strong></sup> </a>
|
<a href="http://localhost:1313/tags/hugo/">hugo <sup><strong><sup>1</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://localhost:1313/tags/security/">security <sup><strong><sup>1</sup></strong></sup> </a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@ -8,13 +8,6 @@
|
|||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
<lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
|
||||||
<atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
|
||||||
<title>Ci/Cd</title>
|
|
||||||
<link>http://localhost:1313/tags/ci/cd/</link>
|
|
||||||
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
|
||||||
<guid>http://localhost:1313/tags/ci/cd/</guid>
|
|
||||||
<description></description>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<title>Gitea</title>
|
<title>Gitea</title>
|
||||||
<link>http://localhost:1313/tags/gitea/</link>
|
<link>http://localhost:1313/tags/gitea/</link>
|
||||||
@ -29,5 +22,12 @@
|
|||||||
<guid>http://localhost:1313/tags/hugo/</guid>
|
<guid>http://localhost:1313/tags/hugo/</guid>
|
||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Security</title>
|
||||||
|
<link>http://localhost:1313/tags/security/</link>
|
||||||
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://localhost:1313/tags/security/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="robots" content="noindex, nofollow">
|
<meta name="robots" content="noindex, nofollow">
|
||||||
<title>Ci/Cd | Dev Logbook</title>
|
<title>Security | Dev Logbook</title>
|
||||||
<meta name="keywords" content="">
|
<meta name="keywords" content="">
|
||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
<link rel="canonical" href="http://localhost:1313/tags/ci/cd/">
|
<link rel="canonical" href="http://localhost:1313/tags/security/">
|
||||||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||||||
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="http://localhost:1313/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="http://localhost:1313/favicon-16x16.png">
|
||||||
@ -18,8 +18,8 @@
|
|||||||
<link rel="mask-icon" href="http://localhost:1313/safari-pinned-tab.svg">
|
<link rel="mask-icon" href="http://localhost:1313/safari-pinned-tab.svg">
|
||||||
<meta name="theme-color" content="#2e2e33">
|
<meta name="theme-color" content="#2e2e33">
|
||||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||||
<link rel="alternate" type="application/rss+xml" href="http://localhost:1313/tags/ci/cd/index.xml">
|
<link rel="alternate" type="application/rss+xml" href="http://localhost:1313/tags/security/index.xml">
|
||||||
<link rel="alternate" hreflang="en" href="http://localhost:1313/tags/ci/cd/">
|
<link rel="alternate" hreflang="en" href="http://localhost:1313/tags/security/">
|
||||||
<noscript>
|
<noscript>
|
||||||
<style>
|
<style>
|
||||||
#theme-toggle,
|
#theme-toggle,
|
||||||
@ -73,23 +73,24 @@
|
|||||||
<main class="main">
|
<main class="main">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<h1>
|
<h1>
|
||||||
Ci/Cd
|
Security
|
||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<article class="post-entry tag-entry">
|
<article class="post-entry tag-entry">
|
||||||
<header class="entry-header">
|
<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>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<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:
|
<p>So… turns out posting my SSH private key in a blog post wasn’t the smartest move. 🙃
|
||||||
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:
|
I didn’t even realize it until someone pointed it out.
|
||||||
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.
|
Obviously, I had to delete the previous post ASAP. Lesson learned: Always double-check what you’re pushing to production!
|
||||||
...</p>
|
A new, safer version of the post will be up soon. This time, I’ll be using a better approach—stay tuned!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2025-02-27 00:00:00 +0000 UTC'>February 27, 2025</span> · Dev</footer>
|
<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="http://localhost:1313/posts/first-attempt/"></a>
|
<a class="entry-link" aria-label="post link to Oops... That Was a Mistake" href="http://localhost:1313/posts/i-messed-up/"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</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>http://localhost:1313/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="http://localhost:1313/tags/security/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Oops... That Was a Mistake</title>
|
||||||
|
<link>http://localhost:1313/posts/i-messed-up/</link>
|
||||||
|
<pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://localhost:1313/posts/i-messed-up/</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>
|
<!DOCTYPE html>
|
||||||
<html lang="en-us">
|
<html lang="en-us">
|
||||||
<head>
|
<head>
|
||||||
<title>http://localhost:1313/tags/ci/cd/</title>
|
<title>http://localhost:1313/tags/security/</title>
|
||||||
<link rel="canonical" href="http://localhost:1313/tags/ci/cd/">
|
<link rel="canonical" href="http://localhost:1313/tags/security/">
|
||||||
<meta name="robots" content="noindex">
|
<meta name="robots" content="noindex">
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/ci/cd/">
|
<meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/security/">
|
||||||
</head>
|
</head>
|
||||||
</html>
|
</html>
|
||||||
Loading…
x
Reference in New Issue
Block a user