remove useless info

This commit is contained in:
visionmercer 2026-03-23 09:22:51 +01:00
commit 27b5897c1f
2 changed files with 18 additions and 41 deletions

View file

@ -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
```
@ -61,7 +57,7 @@ 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 |
@ -69,7 +65,8 @@ Then open http://localhost:8080 in your browser.
## 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).

View file

@ -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"]