Skip to content

Commit

Permalink
New post: tailscale s3 proxy
Browse files Browse the repository at this point in the history
  • Loading branch information
offbyone committed Dec 10, 2023
1 parent 580ff6f commit bdab1b4
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions content/rst/2023-12-09-serve-an-s3-bucket-over-tailscale.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Serve an S3 bucket over tailscale
#################################

.. role:: raw-html(raw)
:format: html

:slug: serve-an-s3-bucket-over-tailscale
:date: 2023-12-09T22:24:21.463022
:category: homelab
:tags: tailscale, s3,
:author: Chris Rose
:email: offline@offby1.net
:summary: A short intro to the idea of serving an S3 bucket on your tailnet
:status: published

I found myself wanting to host a private website that I could reliably update, but only serve it to users on my tailnet.

I didn't find anything obvious that could do the job, but I _did_ realize that between the existence of `s3fs <https://github.com/jszwec/s3fs>`_, `tsnet <https://pkg.go.dev/tailscale.com/tsnet>`_, and the batteries that come with Go, I could probably bodge together something that does the job for me.

This is it: `offbyone/tailscale-s3-proxy <https://github.com/offbyone/tailscale-s3-proxy>`_.

It's not complicated, thanks to Go's tools to merge a custom network listner -- thanks, tailscale! -- and the adapter from ``fs.FS`` to ``http.FileSystem``. I almost feel like I didn't really do the work, honestly, but I can't find any extant code that does this.

Now, I'm hoping someone can read this and recommend to me a viable release process; I *can* build it myself, and just toss the binary around (and I will!) but I really would love to have this better-packaged. Suggestions? Keep in mind, I am a _total_ go newb.

0 comments on commit bdab1b4

Please sign in to comment.