Openbooks allows you to download ebooks from irc.irchighway.net quickly and easily.
- Download the latest release for your platform from the releases page.
- Run the binary
- Linux users may have to run
chmod +x [binary name]
to make it executable
- Linux users may have to run
./openbooks --help
- This will display all possible configuration values and introduce the two modes; CLI or Server.
- Basic config
docker run -p 8080:80 evanbuss/openbooks
- Config to persist all eBook files to disk
docker run -p 8080:80 -v /home/evan/Downloads/openbooks:/books evanbuss/openbooks --persist
OpenBooks server doesn't have to be hosted at the root of your webserver. The basepath value allows you to host it behind a reverse proxy. The base path value must have opening and closing forward slashes (default "/").
- Docker
docker run -p 8080:80 -e BASE_PATH=/openbooks/ evanbuss/openbooks
- Binary
./openbooks server --basepath /openbooks/
For a complete list of features use the --help
flags on all subcommands.
For example openbooks cli --help or openbooks cli download --help
. There are
two modes; Server or CLI. In CLI mode you interact and download books through
a terminal interface. In server mode the application runs as a web application
that you can visit in your browser.
go get
cd server/app && npm install
cd ../..
go run main.go
- Run
./build.sh
- This will install npm packages, build the React app, and compile the executable.
go build
- The mock server allows you to debug responses and requests to simplified IRC / DCC servers that mimic the responses received from IRC Highway.
-
cd cmd/mock_server go run . # Another Terminal cd cmd/openbooks go run . server --server localhost --log
- I wrote this as an easier way to search and download books from irchighway.net. It handles all the extraction and data processing for you. You just have to click the book you want. Hopefully you find it much easier than the IRC interface.
- It was also interesting to learn how the IRC and DCC protocols work and write custom implementations.
- Backend
- Golang
- Archiver (extract files from various archive formats)
- gorilla/websocket
- Frontend
- React.js
- TypeScript
- Redux / Redux Toolkit
- Styled Components
- Evergreen UI