kraken is a on-demand http server: you can create new http servers at runtime through a RESTful API or one of the available clients. Those servers are meant to serve static files. It needs almost no configuration and can (will) save state across restarts.
Typical uses are sharing files quickly, on LAN or from a remote box.
If you happen to often use
python -m http.server, then this project should be of interest.
Kraken is written in Go. The first step is to install Go on your system, if it isn’t done yet.
Go is packaged for most linux distributions, but you can install it from a binary distribution or from source.
To install the kraken programs, do
go get github.com/vincent-petithory/kraken/...
You can update an installation of kraken with
go get -u github.com/vincent-petithory/kraken/...
krakenctl are available.
$ # Start the server $ krakend 2014/08/22 16:50:17 [admin] Listening on 127.0.0.1:4214 2014/08/22 16:50:17 [admin] Available on http://127.0.0.1:4214
Here’s a sample session, using the
It creates a http server and makes it serve
$ # Create a http server listening on port 4567, and bind it to localhost. $ krakenctl add --bind=localhost 4567 server available on 127.0.0.1:4567 $ # Make it serve $HOME/Pictures mounted on /pics $ krakenctl mount 4567 --target=/pics $HOME/Pictures 8f71ae0: /home/meow/Pictures -> /pics $ # Print a status $ krakenctl ls 127.0.0.1:4567 * 8f71ae0: /home/vincent/Pictures -> /pics $ # View contents in a browser $ xdg-open http://localhost:4567/pics
For help on all available commands.
It is possible to monitor krakend activity by listening to events.
There are 3 kind of events:
- server: a http server was created or deleted,
- mount: a mount point has been created, deleted or updated on one http server,
- fileserve: a file was served by a server on a mount point.
To listen to events, simply run
This will listen to all events. To limit listening to only certain kind of events:
krakenctl events server mount