From 27b5897c1f873bb7181231ff2f77b04f03cf3b9d Mon Sep 17 00:00:00 2001 From: visionmercer <62051836+visionmercer@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:22:51 +0100 Subject: [PATCH] remove useless info --- README.md | 39 ++++++++++++++++++--------------------- internal/Dockerfile | 20 -------------------- 2 files changed, 18 insertions(+), 41 deletions(-) delete mode 100644 internal/Dockerfile diff --git a/README.md b/README.md index 5c34d3c..5357036 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,17 @@ # ISOSilo -A lightweight Go web server that lets you browse and download files from ISO 9660 images via your browser — without mounting them. +A lightweight Go web server that lets you browse and download files from ISO +9660 images via your browser — without mounting them. ## Features - **Library view** — lists all `.iso` files in a directory as clickable cards -- **In-ISO browsing** — navigate directories inside any ISO just like a file manager +- **In-ISO browsing** — navigate directories inside any ISO just like a file + manager - **File downloads** — download individual files directly from within an ISO - **Clean UI** — dark-themed, responsive interface with file-type icons -- **Safe** — path traversal protection; only `.iso` files in the served directory are accessible +- **Safe** — path traversal protection; only `.iso` files in the served + directory are accessible - **Zero mount required** — reads ISO images directly using the ISO 9660 library ## Installation @@ -20,19 +23,12 @@ A lightweight Go web server that lets you browse and download files from ISO 966 ### Build from source ```bash -git clone https://github.com/yourname/isosilo +git clone https://code.oscorp.dk/visionmercer/isosilo.git cd isosilo go mod tidy # fetches github.com/kdomanski/iso9660 go build -o isosilo . ``` -### Run with Docker - -```bash -docker build -t isosilo . -docker run -p 8080:8080 -v /path/to/your/isos:/isos isosilo -``` - ## Usage ``` @@ -60,16 +56,17 @@ Then open http://localhost:8080 in your browser. ## URL Structure -| URL | Description | -|-----|-------------| -| `GET /` | List all ISO files in the served directory | -| `GET /browse/{iso}` | Browse the root of an ISO | -| `GET /browse/{iso}/{path}` | Browse a subdirectory inside an ISO | -| `GET /file/{iso}/{path}` | Download a file from inside an ISO | +| URL | Description | +| -------------------------- | ------------------------------------------ | +| `GET /` | List all ISO files in the served directory | +| `GET /browse/{iso}` | Browse the root of an ISO | +| `GET /browse/{iso}/{path}` | Browse a subdirectory inside an ISO | +| `GET /file/{iso}/{path}` | Download a file from inside an ISO | ## Dependencies -- [`github.com/kdomanski/iso9660`](https://github.com/kdomanski/iso9660) — pure-Go ISO 9660 reader +- [`github.com/kdomanski/iso9660`](https://github.com/kdomanski/iso9660) — + pure-Go ISO 9660 reader ## Project Layout @@ -78,7 +75,6 @@ isosilo/ ├── main.go # Entry point, CLI flags, route registration ├── go.mod ├── go.sum -├── Dockerfile └── internal/ ├── iso/ │ └── reader.go # ISO open/list/read abstraction @@ -88,7 +84,8 @@ isosilo/ ## Security Notes -- The server only serves files with a `.iso` extension from the configured directory. +- The server only serves files with a `.iso` extension from the configured + directory. - ISO names are validated to prevent path traversal (`..`, `/`, `\`). - Internal ISO paths are cleaned before use. -- There is **no authentication**. Do not expose this server to the public internet without adding auth (e.g. a reverse proxy with basic auth). + diff --git a/internal/Dockerfile b/internal/Dockerfile deleted file mode 100644 index 23b58ab..0000000 --- a/internal/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -# ── Build stage ────────────────────────────────────────────────────────────── -FROM golang:1.22-alpine AS builder - -WORKDIR /src -COPY go.mod go.sum ./ -RUN go mod download - -COPY . . -RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /isosilo . - -# ── Runtime stage ───────────────────────────────────────────────────────────── -FROM scratch - -COPY --from=builder /isosilo /isosilo - -# ISOs should be mounted here at runtime. -VOLUME ["/isos"] - -EXPOSE 8080 -ENTRYPOINT ["/isosilo", "-dir", "/isos", "-addr", ":8080"]