hardfiles

- Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.acid.vegas/-c.git
Log | Files | Refs | Archive | README | LICENSE

commit 02483f896cd670b5e5967f3671241e4aaf51c7c9
parent fde218ef6fde02812dbe6d0e9a663c65c5aa0059
Author: hgw <hgw7@yahoo.com>
Date: Wed, 13 Dec 2023 09:41:55 +0000

Update readme to include curl enhancements

Diffstat:
MREADME.md | 50+++++++++++++++++++++++++++++++++++++++-----------

1 file changed, 39 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
@@ -20,7 +20,7 @@ HardFiles is built on the principle of flexibility. If you choose to run your ow
 
 This is necessary even when using the Docker image as the image does not contain the HardFiles frontend.
 
-```
+```shell
 git clone https://git.supernets.org/supernets/hardfiles.git
 ```
 
@@ -32,21 +32,25 @@ Start by adjusting the necessary configuration variables in `config.toml`.
 ##### Bare Metal:
 
 Execute the following commands to build and initiate HardFiles:
-```
+```shell
 go build -o hardfiles main.go
-mkdir files
 ./hardfiles
 ```
 
 ##### Docker Compose:
 
 Execute the following commands to build and initiate HardFiles in Docker:
-```
+```shell
 docker compose up -d
 ```
 
-#### 3. Default Port:
-By default, HardFiles listens on port `5000`. For production environments, it's recommended to use a robust web server like Nginx or Apache to proxy traffic to this port.
+#### 3. Web Server Configuration:
+
+By default, HardFiles listens on port `5000`. For production environments, it's recommended to use a robust web server like Nginx or Caddy to proxy traffic to this port.
+
+For obtaining the Let's Encrypt certificates, you can use tools like `certbot` that automatically handle the certification process for you. If you elect to use Caddy, in most circumstances it is able to handle certificates for you using Let's Encrypt.
+
+Remember, by using a reverse proxy, you can run HardFiles without needing root privileges and maintain a more secure environment.
 
 ###### Using Nginx as a Reverse Proxy:
 
@@ -73,25 +77,48 @@ server {
 
 Replace `your_domain.com` with your actual domain name. Save this configuration to a file, say `hardfiles.conf`, inside the `/etc/nginx/sites-available/` directory, and then create a symbolic link to `/etc/nginx/sites-enabled/`. Restart Nginx after this setup.
 
-For obtaining the Let's Encrypt certificates, you can use tools like `certbot` that automatically handle the certification process for you.
+###### Using Caddy as a Reverse Proxy:
 
-Remember, by using a reverse proxy, you can run HardFiles without needing root privileges and maintain a more secure environment.
+Append the following to the Caddyfile, replacing your_domain.com with your chosen domain.
+
+```caddy
+your_domain.com {
+    reverse_proxy localhost:5000
+}
+```
 
-## cURL Uploads & Bash Alias
+## cURL Uploads
+
+You can upload files using cURL like so:
+
+```shell
+curl -F file=@$1 https://hardfiles.org/
+```
+
+Additionally, you can append some extra options to modify the expiry time or file name length. Currently the file expiry time must be provided in seconds and is limited to 5 days maximum. The file name length is limited to 128 characters. The following example will return a file that expires in 48 hours rather than the default 24 and a file name length of 64 characters:
+
+```shell
+curl -F file=@$1 -F expiry=172800 -F url_len=64 https://hardfiles.org/
+```
+
+### Bash Alias
 
 If you frequently upload files to HardFiles via the command line, you can streamline the process by setting up a bash alias. This allows you to use a simple command, like `upload`, to push your files to HardFiles using `curl`.
 
 #### Setting Up:
+
 1. **Edit your `.bashrc` file:** Open your `~/.bashrc` file in a text editor. You can use `nano` or `vim` for this purpose:
 ```shell
 nano ~/.bashrc
 ```
+
 2. **Add the `upload` function:** At the end of the `.bashrc` file, append the following function (replace the domain if you are running your own instance):
 ```shell
 upload() {
     curl -F file=@$1 https://hardfiles.org/
 }
 ```
+
 3. Reload your .bashrc file: To make the new function available in your current session, reload your .bashrc:
 ```shell
 source ~/.bashrc
@@ -99,6 +126,7 @@ source ~/.bashrc
 
 #### Usage:
 Now, you can easily upload files to HardFiles using the upload command followed by the path to your file. For example:
+
 ```shell
 upload /path/to/your/file.jpg
 ```
@@ -106,7 +134,7 @@ upload /path/to/your/file.jpg
 This will upload the specified file to HardFiles and return a direct link to the file.
 
 ## Roadmap
-- Idea - Uploads stored on a remotely mounted drive, isolating them from the actual service server. Multiple mirrored instances behind a round robin reading from the same remote mount for scaling.
+- Idea - Uploads stored on a remotely mounted drive or S3 compatible volume, isolating them from the actual service server. Multiple mirrored instances behind a round robin reading from the same remote mount for scaling.
 - Random wallpapers as an optional extra, kept simple without javascript. Maybe a local shell script that modifies the index.html on a timer.
 - Fix index wallpaper alignment on smartphones.
 - Clean up CSS.
@@ -116,7 +144,7 @@ This will upload the specified file to HardFiles and return a direct link to the
 
 ## Credits
 - 🚀 **delorean**, our Senior Director of IRC Diplomacy & SuperNets Brand Strategy 🌐 for developing hardfiles.
-- 🤝 **hgw7**, our  Principal Designer of Digital Aquariums & Rare Fish Showcases 🐠 for branding the product.
+- 🤝 **hgw**, our  Principal Designer of Digital Aquariums & Rare Fish Showcases 🐠 for branding the product.
 - 💼 **acidvegas**, our Global Director of IRC Communications 💬 for funding the project 💰.
 
 ___