hand code posts
This commit is contained in:
parent
dd014a106b
commit
15c5cf1a3e
56 changed files with 367 additions and 711 deletions
154
blog/2025/01/28-leveraging-nixos-dufs-cloud-storage.html
Normal file
154
blog/2025/01/28-leveraging-nixos-dufs-cloud-storage.html
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>Will Holdsworth</h1>
|
||||
<hr>
|
||||
<nav>
|
||||
<a href="/index.html">Home</a>
|
||||
|
|
||||
<a href="/projects/index.html">Projects</a>
|
||||
|
|
||||
<a href="/blog/index.html">Blog</a>
|
||||
|
|
||||
<a href="/about.html">About</a>
|
||||
|
|
||||
<a href="/contact.html">Contact</a>
|
||||
</nav>
|
||||
<hr>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<h1>Quick & easy cloud storage with dufs and NixOS</h1>
|
||||
<p>
|
||||
dufs<sup><a id="footnote-1-ref" href="#footnote-1" title="link to footnote">1</a></sup> (the distinctive file
|
||||
utility server) is a cloud storage replacement for those looking to move away from third-party services like
|
||||
Google Drive or Proton Drive. it supports WebDAV and HTTPS file transfer protocols.
|
||||
</p>
|
||||
<p>It's very easy to set up and get going in NixOS using a Docker container.</p>
|
||||
|
||||
<h2>Set up dufs</h2>
|
||||
<p>First, enable docker in your <code>configuration.nix</code>:</p>
|
||||
<pre>
|
||||
<code>
|
||||
virtualisation.docker.enable = true;
|
||||
</code>
|
||||
</pre>
|
||||
Then define a Docker container, either in your <code>configuration.nix</code> or in a custom module:
|
||||
<pre>
|
||||
<code>
|
||||
virtualisation.oci-containers = {
|
||||
backend = "docker";
|
||||
containers.dufs = {
|
||||
|
||||
# automatically restart server after reboot
|
||||
autoStart = true;
|
||||
|
||||
image = "sigoden/dufs";
|
||||
|
||||
ports = [
|
||||
"5000:5000"
|
||||
];
|
||||
|
||||
# the files i want to serve are in /srv/dufs
|
||||
volumes = [
|
||||
"/srv/dufs:/data"
|
||||
];
|
||||
|
||||
# tells dufs to serve the files in the docker volume /data
|
||||
cmd = [
|
||||
"-A"
|
||||
"/data"
|
||||
];
|
||||
};
|
||||
};
|
||||
</code>
|
||||
</pre>
|
||||
Rebuild your configuration by running <code>sudo nixos-rebuild switch</code> and head on over to
|
||||
<code>http://localhost:5000</code> to behold your lovely files. Now we need a method to access our files on other
|
||||
devices inside (and outside) of our home network. Tailscale<sup><a id="footnote-2-ref" href="#footnote-2"
|
||||
title="link to footnote">2</a></sup> provides commands to accomplish this easily.
|
||||
|
||||
<h2>Set up Tailscale</h2>
|
||||
<p>
|
||||
You can use Tailscale to access the files on other devices inside (and outside) of your home network. Tailscale is
|
||||
like a crazy-fast vpn with a bunch of other comfort features like MagicDNS<sup><a id="footnote-3-ref"
|
||||
href="#footnote-3" title="link to footnote">3</a></sup>, keyless SSH<sup><a id="footnote-4-ref"
|
||||
href="#footnote-4" title="link to footnote">4</a></sup> and
|
||||
easy HTTPS<sup><a id="footnote-5-ref" href="#footnote-5" title="link to footnote">5</a></sup>.
|
||||
</p>
|
||||
<p>To enable it in nixos, add the following to your <code>configuration.nix</code>:</p>
|
||||
<pre>
|
||||
<code>
|
||||
services.tailscale.enable = true;
|
||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||
</code>
|
||||
</pre>
|
||||
<p>
|
||||
Once again, rebuild your configuration by running <code>sudo nixos-rebuild switch</code> and run
|
||||
<code>tailscale up</code> to start tailscale. The tailscale connection will persist on reboot, so no need to worry
|
||||
about adding it to your init process.
|
||||
</p>
|
||||
<p>
|
||||
I recommend enabling MagicDNS in the admin console > DNS > MagicDNS, but if you prefer not to, your server's IP
|
||||
address will be visible by running <code>tailscale ip -4</code>.
|
||||
</p>
|
||||
<p>
|
||||
Head over to <code>http://<hostname or ip>:5000</code> on one of your other machines running tailscale to
|
||||
upload,
|
||||
download, and view your self-hosted files.
|
||||
</p>
|
||||
|
||||
<h2>dufs clients</h2>
|
||||
<p>
|
||||
As for client recommendations, Round Sync<sup><a id="footnote-6-ref" href="#footnote-6"
|
||||
title="link to footnote">6</a></sup> on android is quite good. it supports both WebDAV and HTTPS remotes, I
|
||||
chose to use WebDAV when connecting.
|
||||
</p>
|
||||
<br>
|
||||
<p>Thanks for stopping by ^.^</p>
|
||||
|
||||
<h2>Footnotes</h2>
|
||||
<ol>
|
||||
<li id="footnote-1">
|
||||
<a href="https://github.com/sigoden/dufs">dufs</a>
|
||||
<a href="#footnote-1-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
<li id="footnote-2">
|
||||
<a href="https://tailscale.com/">Tailscale</a>
|
||||
<a href="#footnote-2-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
<li id="footnote-3">
|
||||
<a href="https://tailscale.com/kb/1081/magicdns">MagicDNS</a>
|
||||
<a href="#footnote-3-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
<li id="footnote-4">
|
||||
<a href="https://tailscale.com/kb/1193/tailscale-ssh">Tailscale SSH</a>
|
||||
<a href="#footnote-4-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
<li id="footnote-5">
|
||||
<a href="https://tailscale.com/kb/1153/enabling-https">Tailscale HTTPS</a>
|
||||
<a href="#footnote-5-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
<li id="footnote-6">
|
||||
<a href="https://github.com/newhinton/Round-Sync">Round Sync</a>
|
||||
<a href="#footnote-6-ref" title="return to text">↩</a>
|
||||
</li>
|
||||
</ol>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<hr>
|
||||
Copyright (C) 2025 Will Holdsworth under MPLv2
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged all</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#all</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li><li>2025/01/27 - <a href="welcome.html">welcome!</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged cloud-storage</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#cloud-storage</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged cloud</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:monospace;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#cloud</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged hosting,</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:monospace;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#hosting,</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged nixos,</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:monospace;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#nixos,</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged nixos</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#nixos</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged self-hosting</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#self-hosting</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged self</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:monospace;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#self</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged storage,</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:monospace;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#storage,</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>Articles tagged tailscale</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>#tailscale</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li></ul></body></body></html>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
|
||||
<title type="text">will holdsworth's blog</title>
|
||||
<subtitle type="text">blog</subtitle>
|
||||
<updated>2025-01-28T19:06:19Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://fi33.buzz"/>
|
||||
<id>https://fi33.buzz/atom.xml</id>
|
||||
<link rel="self" type="application/atom+xml" href="https://fi33.buzz/atom.xml"/>
|
||||
<entry>
|
||||
<title type="text">quick and easy cloud storage with dufs and nixos</title>
|
||||
<link rel="alternate" type="text/html" href="https://fi33.buzz/dufs.html"/>
|
||||
<id>https://fi33.buzz/dufs.html</id>
|
||||
<published>2025-01-28T18:41:39Z</published>
|
||||
<updated>2025-01-28T19:05:53Z</updated>
|
||||
<author><name>wi11-holdsworth</name></author>
|
||||
<summary type="text">dufs[1] -- the distinctive file utility server -- is a decent cloud storage replacement for those looking to move away from third-party services like google drive or proton drive. it supports webdav and https file transfer protocols.</summary>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="text">welcome!</title>
|
||||
<link rel="alternate" type="text/html" href="https://fi33.buzz/welcome.html"/>
|
||||
<id>https://fi33.buzz/welcome.html</id>
|
||||
<published>2025-01-27T22:16:57Z</published>
|
||||
<updated>2025-01-27T23:11:05Z</updated>
|
||||
<author><name>wi11-holdsworth</name></author>
|
||||
<summary type="text">the static site generator i'm using to kickstart this blog[1] requires a single post to exist in order to compile, and failing to provide a post sends `make` into an infinite loop.</summary>
|
||||
</entry>
|
||||
</feed>
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>quick and easy cloud storage with dufs and nixos</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>will holdsworth's blog</h1><nav><a href="index.html">← all posts</a></nav></header><body><h2>quick and easy cloud storage with dufs and nixos</h2><p><i>posted: 2025/01/28 18:41<br>edited: 2025/01/28 19:06</i></p><p>
|
||||
dufs[1] -- the distinctive file utility server -- is a decent cloud storage replacement for those looking to move away from third-party services like google drive or proton drive. it supports webdav and https file transfer protocols.
|
||||
</p>
|
||||
<p>
|
||||
it's very easy to set up and get going in nixos using a docker container.
|
||||
</p>
|
||||
|
||||
<h2> set up dufs </h2>
|
||||
<p>
|
||||
first, enable docker in your <code>configuration.nix</code>:
|
||||
</p>
|
||||
<pre><code>
|
||||
virtualisation.docker.enable = true;
|
||||
</code></pre>
|
||||
<p>
|
||||
then define a docker container, either in your <code>configuration.nix</code> or in a custom module:
|
||||
</p>
|
||||
<pre><code>
|
||||
virtualisation.oci-containers = {
|
||||
backend = "docker";
|
||||
|
||||
containers.dufs = {
|
||||
# automatically restart server after reboot
|
||||
autoStart = true;
|
||||
|
||||
image = "sigoden/dufs";
|
||||
|
||||
ports = [
|
||||
"5000:5000"
|
||||
];
|
||||
|
||||
# the files i want to serve are in /srv/dufs
|
||||
volumes = [
|
||||
"/srv/dufs:/data"
|
||||
];
|
||||
|
||||
# tells dufs to serve the files in the docker volume /data
|
||||
cmd = [
|
||||
"-A"
|
||||
"/data"
|
||||
];
|
||||
};
|
||||
};
|
||||
</code></pre>
|
||||
<p>
|
||||
rebuild your configuration using <code>nixos-rebuild switch</code> and head on over to <code>http://localhost:5000</code> to behold your lovely files.
|
||||
</p>
|
||||
|
||||
<h2> set up tailscale</h2>
|
||||
<p>
|
||||
you can use tailscale[2] to access the files on other devices inside (and outside) of your home network. tailscale is like a crazy-fast vpn with a bunch of other comfort features like magic dns[3], keyless ssh[4] and easy https[5].
|
||||
</p>
|
||||
<p>
|
||||
to enable it in nixos, add the following to your <code>configuration.nix</code>:
|
||||
</p>
|
||||
<pre><code>
|
||||
services.tailscale.enable = true;
|
||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||
</code></pre>
|
||||
<p>
|
||||
once again, rebuild your configuration using <code>nixos-rebuild switch</code> and run <code>tailscale up</code> to start tailscale.
|
||||
</p>
|
||||
<p>
|
||||
i recommend enabling magic dns in admin console > dns > magic dns, but if you prefer not to, your server's ip address will be visible by running <code>tailscale ip -4</code>.
|
||||
</p>
|
||||
<p>
|
||||
head over to <code>http://<hostname or ip>:5000</code> on one of your other machines running tailscale to upload, download, and view your self-hosted files.
|
||||
</p>
|
||||
|
||||
<h2> dufs clients</h2>
|
||||
<p>
|
||||
as for client recommendations, round sync[6] on android is quite good. it supports both webdav and https remotes, i chose to use webdav when connecting.
|
||||
</p>
|
||||
<p>
|
||||
thanks for stopping by ^.^
|
||||
</p>
|
||||
<p>
|
||||
[1] <a href="https://github.com/sigoden/dufs">dufs</a>
|
||||
</p>
|
||||
<p>
|
||||
[2] <a href="https://tailscale.com/">tailscale</a>
|
||||
</p>
|
||||
<p>
|
||||
[3] <a href="https://tailscale.com/kb/1081/magicdns">magic dns</a>
|
||||
</p>
|
||||
<p>
|
||||
[4] <a href="https://tailscale.com/kb/1193/tailscale-ssh">tailscale ssh</a>
|
||||
</p>
|
||||
<p>
|
||||
[5] <a href="https://tailscale.com/kb/1153/enabling-https">tailscale https</a>
|
||||
</p>
|
||||
<p>
|
||||
[6] <a href="https://github.com/newhinton/Round-Sync">round sync</a>
|
||||
</p>
|
||||
<p><br></p></body><footer><hr>tags: self-hosting cloud-storage nixos tailscale</footer></body></html>
|
||||
|
|
@ -1 +1,40 @@
|
|||
<!DOCTYPE html><html><head><title>will holdsworth's blog</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>will holdsworth's blog</h1><nav></nav></header><body><p>tags: <a href="@cloud-storage.html">#cloud-storage</a>, <a href="@nixos.html">#nixos</a>, <a href="@self-hosting.html">#self-hosting</a>, <a href="@tailscale.html">#tailscale</a></p><h2>posts</h2><ul><li>2025/01/28 - <a href="dufs.html">quick and easy cloud storage with dufs and nixos</a></li><li>2025/01/27 - <a href="welcome.html">welcome!</a></li></ul><p><br></p></body><footer><hr>feeds: <a href="atom.xml">atom</a>, <a href="rss.xml">rss</a></footer></body></html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>Will Holdsworth</h1>
|
||||
<hr>
|
||||
<nav>
|
||||
<a href="/index.html">Home</a>
|
||||
|
|
||||
<a href="/projects/index.html">Projects</a>
|
||||
| Blog |
|
||||
<a href="/about.html">About</a>
|
||||
|
|
||||
<a href="/contact.html">Contact</a>
|
||||
</nav>
|
||||
<hr>
|
||||
</header>
|
||||
<main>
|
||||
<h2>Posts</h2>
|
||||
<ul>
|
||||
<li>2025-01-28 | <a href="/blog/2025/01/28-leveraging-nixos-dufs-cloud-storage.html">Quick and easy cloud storage
|
||||
with dufs and NixOS
|
||||
</a></li>
|
||||
</ul>
|
||||
</main>
|
||||
<footer>
|
||||
<hr>
|
||||
Copyright (C) 2025 Will Holdsworth under MPLv2
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
22
blog/rss.xml
22
blog/rss.xml
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>will holdsworth's blog</title>
|
||||
<link>https://fi33.buzz</link>
|
||||
<description>blog</description>
|
||||
<item>
|
||||
<title>quick and easy cloud storage with dufs and nixos</title>
|
||||
<link>https://fi33.buzz/dufs.html</link>
|
||||
<guid>https://fi33.buzz/dufs.html</guid>
|
||||
<pubDate>Tue, 28 Jan 2025 18:41:39 +1100</pubDate>
|
||||
<description>dufs[1] -- the distinctive file utility server -- is a decent cloud storage replacement for those looking to move away from third-party services like google drive or proton drive. it supports webdav and https file transfer protocols.</description>
|
||||
</item>
|
||||
<item>
|
||||
<title>welcome!</title>
|
||||
<link>https://fi33.buzz/welcome.html</link>
|
||||
<guid>https://fi33.buzz/welcome.html</guid>
|
||||
<pubDate>Mon, 27 Jan 2025 22:16:57 +1100</pubDate>
|
||||
<description>the static site generator i'm using to kickstart this blog[1] requires a single post to exist in order to compile, and failing to provide a post sends `make` into an infinite loop.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
<!DOCTYPE html><html><head><title>welcome!</title><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom feed"/><style>body{font-family:verdana;margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#d9d9d9;background-color:#000;padding:0 10px}html a{color:#00a2e7}html a:visited {color:#ca1a70}h1,h2,h3{line-height:1.2}</style></head><body><header><h1>will holdsworth's blog</h1><nav><a href="index.html">← all posts</a></nav></header><body><h2>welcome!</h2><p><i>posted: 2025/01/27 22:16<br>edited: 2025/01/28 19:06</i></p><p>
|
||||
the static site generator i'm using to kickstart this blog[1] requires a single post to exist in order to compile, and failing to provide a post sends <code>make</code> into an infinite loop.
|
||||
</p>
|
||||
<p>
|
||||
so without further ado... here it is, my first post!
|
||||
</p>
|
||||
<p>
|
||||
topics to expect once i get myself more organised:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>basic tutorials on setting up self-hosted nixos web services</li>
|
||||
<li>lazy hardware reviews</li>
|
||||
<li>software shenanigans</li>
|
||||
<li>anything else i feel is relevant and useful to the wider web</li>
|
||||
</ul>
|
||||
<p>
|
||||
thanks for stopping by ^.^
|
||||
</p>
|
||||
<p>
|
||||
[1] <a href="https://pedantic.software/git/blogit">blogit</a>
|
||||
</p>
|
||||
<p><br></p></body><footer><hr>tags: </footer></body></html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue