ShadowJonathan / Essy

Easy Static Site Hoster (ESSH, spoken "Essy")
MIT License
34 stars 0 forks source link

WebDAV / Remote Mount #2

Open ShadowJonathan opened 4 months ago

ShadowJonathan commented 4 months ago

We could possibly expose the site directory for a domain as a WebDAV share, but I don't entirely know how secure it is, or how supported it is (I heard Windows can't handle HTTPS webDAV, or something like that)

However, I'd like for there to be a possibility for remote mounts, so that users don't have to use the web interface to edit their stuff, but that they can use any application to edit locally mounted remote files.

ShadowJonathan commented 4 months ago

Mentioned on fedi, FTP library: https://pyftpdlib.readthedocs.io/en/latest/

Apparently Windows explorer supports connecting to it out of the box. Not sure about SFTP though.

4censord commented 4 months ago

If we choose to use python, we could also expose FTP(s) using the pyftpd lib.

While FTP is not the greatest protocol, its widely supported, and comparatively easy. Additionally, the pyftpd lib is using async by default, so that fits well.

Docs: https://pyftpdlib.readthedocs.io/en/latest/ Example: https://pyftpdlib.readthedocs.io/en/latest/tutorial.html#id2

And another note on security: pyftpd supports FTPS (FTP over TLS), and we are already generating TLS certs for the domains anyways

ShadowJonathan commented 4 months ago

Got this mentioned today: https://rexzhang.github.io/asgi-webdav/

4censord commented 4 months ago

That also sounds nice. Is this a library, or is it supposed to run as a separate service? I couldn't conclusively tell from a quick look at the docs

ShadowJonathan commented 4 months ago

Eventually, it's supposed to run embedded, so it can use the same authentication module