tree-server

command module
v0.0.0-...-810a370 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2024 License: MIT Imports: 12 Imported by: 0

README

Tree Server

Serve Files at Lightning Speed according to the Tree Structure of your File System

Diagram


$ ./tree-server.exe --PORT=3000

|-- Documents
    |-- spreadsheets
        |-- third-quarter-report.csv    -->     http://localhost:3000/Documents/spreadsheets/third-quarter-report.csv
|-- Pictures
    |-- family-photos
        |-- first-birthday.jpeg         -->     http://localhost:3000/Pictures/family-photos/first-birthday.jpeg
    |-- screenshots
        |-- screenshot.png              -->     http://localhost:3000/Pictures/screenshots/screenshot.png

Getting Started

Make sure you have Go installed.

Clone the repo:

git clone https://github.com/EricFrancis12/tree-server.git
cd tree-server
Option A: Quickstart (Run the Application without building)

Run the following command, optionally specifying a port (PORT) and working directory (WD):

go run . --PORT=3000 --WD=./

In the example above, --WD=./ means the contents of this repo will be served on port 3000.

Option B: Build and Run

Run the following command:

go build .

This will create a binary file located at ./tree-server.

Run the binary, optionally specifying a port (PORT) and working directory (WD).

Note that if no working directory is specified, the working directory will be the location where the binary is ran. This means you can copy the binary to anywhere in the file system to serve its contents.

./tree-server --PORT=3000 --WD=./
Option C: Run via Docker

Make sure you have Docker installed.

Build the Docker Image:

docker build -t tree-server .

Run it using the following command:

docker run -p 3000:3000 -v .:/app/serve --name tree-server tree-server

The contents of the /app/serve directory located inside the container will be served. To bind /app/serve to a directory on your local machine, use a bind mount. In the above command, we are binding the current local directory . to the /app/serve directory.

For more information on bind mounts, click here.

For more information on port mapping using the -p flag, click here

Using the Application

Once the Application is running, visit it at your chosen port:

http://localhost:3000

Downloading files

Use dl=1 or download=1 to download the file if it exists.

Example: http://localhost:3000/my/file.txt?dl=1

Documentation

Overview

templ: version: v0.2.707

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL