Adding Checksums to Golang Webdav Server Part I

Golang x/net has an implementation of WebDAV protocol, which can be used as a backend for Rclone. Rclone can be used to manage files on various storage systems, be it local or on cloud. Using WebDAV with Rclone, we can sync local files with files stored on remote server. However, vanilla golang webdav server doesn’t support checksum, meaning rclone will only use file size to determine if file has changed. In some situations, rclone won’t be able to pick up local filesystem changes, resulting in data discrepancy....

published on March 9, 2023 · last edited on April 26, 2023 · 4 min · 793 words

Writing a Forward Auth for ttyd

Background ttyd is a simple tool for sharing terminal over the web. It can be used in place of ssh clients to manage remote servers as it only requires the presence of a browser with internet connectivity. It can be used with a variety of commands ranging from showing the output of top command to fully interactive bash session. However, ttyd itself only supports basic auth and auth proxy. In basic auth mode, ttyd authenticates requests from a predefined list of users....

published on February 28, 2023 · last edited on April 21, 2023 · 5 min · 940 words

Markdown Cheatsheet

Overview Contents below are directly modified from the official cheatsheet with syntax not supported by Hugo removed. Basic Syntax These are the elements outlined in John Gruber’s original design document. All Markdown applications support these elements. Heading # H1 ## H2 ### H3 Bold **bold text** Italic *italicized text* Blockquote > blockquote Ordered List 1. First item 2. Second item 3. Third item Unordered List - First item - Second item - Third item Code `code` Horizontal Rule --- Link [Markdown Guide](https://www....

published on February 23, 2023 · 2 min · 215 words