.
This commit is contained in:
parent
96573664a6
commit
4663084e7a
76 changed files with 11180 additions and 519 deletions
75
public/backing-up-nixos-state-with-restic/index.html
Normal file
75
public/backing-up-nixos-state-with-restic/index.html
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<!doctype html>
|
||||
<html lang="en"><head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.ico">
|
||||
<link id="stylesheet" rel="stylesheet" href="/css/light.css">
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/backing-up-nixos-state-with-restic/" />
|
||||
<title>Backing up nixos state with restic</title>
|
||||
</head>
|
||||
<body><header id="banner">
|
||||
<nav class="navbar">
|
||||
|
||||
<a href="http://localhost:1313/" class="home">🏠</a>
|
||||
|
||||
<a
|
||||
href="/info/"
|
||||
title="👋"
|
||||
>👋</a
|
||||
><a
|
||||
href="/search/"
|
||||
title="🔎"
|
||||
>🔎</a
|
||||
>
|
||||
|
||||
<button id="toggle-button" class="toggle-button" onclick="toggleTheme()">🌚</button>
|
||||
</nav>
|
||||
</header>
|
||||
<main id="content">
|
||||
<article>
|
||||
<header id="post-header">
|
||||
<h2>Backing up nixos state with restic</h2>
|
||||
<div>
|
||||
<p>February 16, 2026</p>
|
||||
</div>
|
||||
</header><p>I’m writing this so I can hopefully remember what I did in six months.</p>
|
||||
<p>As hard as you try to eliminate all state from your computing life with nixos, the fact remains that you can’t get rid of all of it.
|
||||
For example, I run forgejo on my VPS.
|
||||
Now I have my config which means I could set up a forgejo instance just how I like it if everything went to pot.
|
||||
But that wouldn’t bring back any of the repos I had there previously.</p>
|
||||
<p>This is the method I cooked up for backing up some of those important bits and bob on my VPS.</p>
|
||||
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nix" data-lang="nix"><span class="line"><span class="cl"><span class="p">{</span> <span class="n">config</span><span class="o">,</span> <span class="o">...</span> <span class="p">}:</span> <span class="p">{</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">services</span><span class="o">.</span><span class="n">restic</span> <span class="o">=</span> <span class="p">{</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">backups</span><span class="o">.</span><span class="s2">"hetzner-storage-box"</span> <span class="o">=</span> <span class="p">{</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">initialize</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">user</span> <span class="o">=</span> <span class="s2">"root"</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">passwordFile</span> <span class="o">=</span> <span class="s2">"/etc/nixos/secrets/restic"</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">paths</span> <span class="o">=</span> <span class="p">[</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s2">"</span><span class="si">${</span><span class="n">config</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">forgejo</span><span class="o">.</span><span class="n">stateDir</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">];</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">repository</span> <span class="o">=</span> <span class="s2">"sftp:user@storagebox:/remotelab"</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">extraOptions</span> <span class="o">=</span> <span class="p">[</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s2">"sftp.command='ssh user@storagebox -i /root/.ssh/id_ed25519 -s sftp'"</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">];</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">timerConfig</span> <span class="o">=</span> <span class="p">{</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">OnCalendar</span> <span class="o">=</span> <span class="s2">"daily"</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="n">Persistent</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">};</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">};</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">};</span>
|
||||
</span></span><span class="line"><span class="cl"><span class="p">}</span>
|
||||
</span></span></code></pre></div></article>
|
||||
</main>
|
||||
<footer id="footer">
|
||||
<small>
|
||||
made with <a href="https://gohugo.io">hugo</a>
|
||||
</small>
|
||||
|
||||
<script src="/js/search.js"></script>
|
||||
<script src="/js/toggle.js"></script>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue