final draft of dufs post
This commit is contained in:
parent
d1387c052b
commit
2233983419
6 changed files with 49 additions and 24 deletions
|
|
@ -1,25 +1,24 @@
|
||||||
quick and easy cloud storage with dufs and nixos
|
quick and easy cloud storage with dufs and nixos
|
||||||
|
|
||||||
[dufs](https://github.com/sigoden/dufs) - 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.
|
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.
|
||||||
|
|
||||||
it's very easy to set up and get going in nixos using a docker container.
|
it's very easy to set up and get going in nixos using a docker container.
|
||||||
|
|
||||||
## set up dufs
|
## set up dufs
|
||||||
|
|
||||||
first, enable docker in your `configuration.nix`:
|
first, enable docker in your `configuration.nix`:
|
||||||
|
```
|
||||||
```nix
|
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
```
|
```
|
||||||
|
|
||||||
then define a docker container, either in your `configuration.nix` or in a custom module:
|
then define a docker container, either in your `configuration.nix` or in a custom module:
|
||||||
|
```
|
||||||
```nix
|
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
backend = "docker";
|
backend = "docker";
|
||||||
|
|
||||||
containers.dufs = {
|
containers.dufs = {
|
||||||
autoStart = true; # automatically restart server after reboot
|
# automatically restart server after reboot
|
||||||
|
autoStart = true;
|
||||||
|
|
||||||
image = "sigoden/dufs";
|
image = "sigoden/dufs";
|
||||||
|
|
||||||
|
|
@ -27,8 +26,9 @@ virtualisation.oci-containers = {
|
||||||
"5000:5000"
|
"5000:5000"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# the files i want to serve are in /srv/dufs
|
||||||
volumes = [
|
volumes = [
|
||||||
"/srv/dufs:/data" # the files i want to serve are in /srv/dufs
|
"/srv/dufs:/data"
|
||||||
];
|
];
|
||||||
|
|
||||||
# tells dufs to serve the files in the docker volume /data
|
# tells dufs to serve the files in the docker volume /data
|
||||||
|
|
@ -40,32 +40,41 @@ virtualisation.oci-containers = {
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
rebuild your configuration using `nixos-rebuild switch` and head on over to http://localhost:5000 to behold your lovely files.
|
rebuild your configuration using `nixos-rebuild switch` and head on over to `http://localhost:5000` to behold your lovely files.
|
||||||
|
|
||||||
# set up tailscale
|
## set up tailscale
|
||||||
|
|
||||||
you can use [tailscale](https://tailscale.com/) 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](https://tailscale.com/kb/1081/magicdns), [keyless ssh](https://tailscale.com/kb/1193/tailscale-ssh) and [easy https](https://tailscale.com/kb/1153/enabling-https).
|
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].
|
||||||
|
|
||||||
to enable it in nixos, add the following to your `configuration.nix`:
|
to enable it in nixos, add the following to your `configuration.nix`:
|
||||||
|
```
|
||||||
```nix
|
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
networking.firewall.trustedInterfaces = [ "tailscale0" ]; # lets tailscale use whichever ports it likes
|
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||||
```
|
```
|
||||||
|
|
||||||
once again, rebuild your configuration using `nixos-rebuild switch` and run `tailscale up` to start tailscale.
|
once again, rebuild your configuration using `nixos-rebuild switch` and run `tailscale up` to start tailscale.
|
||||||
|
|
||||||
i reccomend 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 `tailscale ip -4`.
|
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 `tailscale ip -4`.
|
||||||
|
|
||||||
now for the fun part, putting everything together!
|
head over to `http://<hostname or ip>:5000` on one of your other machines running tailscale to upload, download, and view your self-hosted files.
|
||||||
|
|
||||||
head over to `http://<hostname or ip>:5000` on one of your other machines to upload, download, and view your self-hosted files.
|
## dufs clients
|
||||||
|
|
||||||
## clients
|
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.
|
||||||
|
|
||||||
as for client recommendations, [round sync](https://github.com/newhinton/Round-Sync) on android is good, and [file browser go](https://www.stratospherix.com/filebrowsergo/) on ios isn't terrible. i'm yet to find something better.
|
|
||||||
|
|
||||||
thanks for stopping by ^.^
|
thanks for stopping by ^.^
|
||||||
|
|
||||||
;tags: self hosting, cloud storage, nixos, tailscale
|
[1] [dufs](https://github.com/sigoden/dufs)
|
||||||
|
|
||||||
|
[2] [tailscale](https://tailscale.com/)
|
||||||
|
|
||||||
|
[3] [magic dns](https://tailscale.com/kb/1081/magicdns)
|
||||||
|
|
||||||
|
[4] [tailscale ssh](https://tailscale.com/kb/1193/tailscale-ssh)
|
||||||
|
|
||||||
|
[5] [tailscale https](https://tailscale.com/kb/1153/enabling-https)
|
||||||
|
|
||||||
|
[6] [round sync](https://github.com/newhinton/Round-Sync)
|
||||||
|
|
||||||
|
;tags: all self-hosting cloud-storage nixos tailscale
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
<!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: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>#all</h1><nav><a href="index.html">← all posts</a></header></nav><body><h2>posts</h2><ul><li>2025/01/27 - <a href="welcome.html">welcome!</a></li></ul></body></body></html>
|
<!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>
|
||||||
|
|
@ -2,11 +2,20 @@
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
|
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
|
||||||
<title type="text">will holdsworth's blog</title>
|
<title type="text">will holdsworth's blog</title>
|
||||||
<subtitle type="text">blog</subtitle>
|
<subtitle type="text">blog</subtitle>
|
||||||
<updated>2025-01-27T23:42:34Z</updated>
|
<updated>2025-01-28T19:01:55Z</updated>
|
||||||
<link rel="alternate" type="text/html" href="https://fi33.buzz"/>
|
<link rel="alternate" type="text/html" href="https://fi33.buzz"/>
|
||||||
<id>https://fi33.buzz/atom.xml</id>
|
<id>https://fi33.buzz/atom.xml</id>
|
||||||
<link rel="self" type="application/atom+xml" href="https://fi33.buzz/atom.xml"/>
|
<link rel="self" type="application/atom+xml" href="https://fi33.buzz/atom.xml"/>
|
||||||
<entry>
|
<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-28T18:41:39Z</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>
|
<title type="text">welcome!</title>
|
||||||
<link rel="alternate" type="text/html" href="https://fi33.buzz/welcome.html"/>
|
<link rel="alternate" type="text/html" href="https://fi33.buzz/welcome.html"/>
|
||||||
<id>https://fi33.buzz/welcome.html</id>
|
<id>https://fi33.buzz/welcome.html</id>
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
<!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: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>will holdsworth's blog</h1><nav></nav></header><body><p>tags: <a href="@all.html">#all</a></p><h2>posts</h2><ul><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><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="@all.html">#all</a>, <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>
|
||||||
|
|
@ -5,6 +5,13 @@
|
||||||
<link>https://fi33.buzz</link>
|
<link>https://fi33.buzz</link>
|
||||||
<description>blog</description>
|
<description>blog</description>
|
||||||
<item>
|
<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>
|
<title>welcome!</title>
|
||||||
<link>https://fi33.buzz/welcome.html</link>
|
<link>https://fi33.buzz/welcome.html</link>
|
||||||
<guid>https://fi33.buzz/welcome.html</guid>
|
<guid>https://fi33.buzz/welcome.html</guid>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!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: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>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/27 23:11</i></p><p>
|
<!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/27 23:11</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.
|
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>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue