Organize docs. (#80)
This commit is contained in:
parent
891afabb6d
commit
0a96f836b7
7 changed files with 145 additions and 110 deletions
37
README.md
37
README.md
|
@ -29,38 +29,37 @@
|
||||||
|
|
||||||
![Distribyted Screen Shot][product-screenshot]
|
![Distribyted Screen Shot][product-screenshot]
|
||||||
|
|
||||||
Distribyted tries to make easier integrations with other applications among torrent files, presenting them as a standard filesystem.
|
Distribyted is an alternative torrent client.
|
||||||
|
It can expose torrent files as a standard FUSE mount or webDAV endpoint and download them on demand, allowing random reads using a fixed amount of disk space.
|
||||||
|
|
||||||
We aim to use some compressed file characteristics to avoid download it entirely, just the parts that we'll need.
|
Distribyted tries to make easier integrations with other applications using torrent files, presenting them as a standard filesystem.
|
||||||
|
|
||||||
Also, if the file format is not supported, distribyted can stream and seek through the file if needed.
|
|
||||||
|
|
||||||
**Note that distribyted is in alpha version, it is a proof of concept with a lot of bugs.**
|
**Note that distribyted is in alpha version, it is a proof of concept with a lot of bugs.**
|
||||||
|
|
||||||
### Use Cases
|
## Use Cases
|
||||||
|
|
||||||
- Play **multimedia files** on your favorite video or audio player. These files will be downloaded on demand and only the needed parts.
|
- Play **multimedia files** on your favorite video or audio player. These files will be downloaded on demand and only the needed parts.
|
||||||
- Explore TBs of data from public **datasets** only downloading the parts you need. Use **Jupyter Notebooks** directly to process or analyze this data.
|
- Explore TBs of data from public **datasets** only downloading the parts you need. Use **Jupyter Notebooks** directly to process or analyze this data.
|
||||||
- Play your **ROM backups** directly from the torrent file. You can have virtually GBs in games and only downloaded the needed ones.
|
- Play your **ROM backups** directly from the torrent file. You can have virtually GBs in games and only downloaded the needed ones.
|
||||||
|
|
||||||
### Supported _Expandable_ File Formats
|
|
||||||
Distribyted can show some kind of files directly as folders, making it possible for applications read only the parts that they need. Here is a list of supported, to be supported and not supported formats.
|
|
||||||
|
|
||||||
#### Supported
|
|
||||||
- zip: Able to uncompress just one file. The file is decompressed to a temporal file sequentially to make possible seek over it. The decompression stops if no one is reading it.
|
|
||||||
|
|
||||||
#### To Be Supported
|
|
||||||
- tar: Seek to any file and inside that files using a [modified standard library](https://github.com/ajnavarro/go-tar). Not useful on `.tar.gz` files.
|
|
||||||
- 7zip: Similar to Zip. Need for a library similar to [zip](https://github.com/saracen/go7z).
|
|
||||||
- xz: Only worth it when the file is created using blocks. Possible library [here](https://github.com/ulikunitz/xz) and [here](https://github.com/frrad/bxzf).
|
|
||||||
|
|
||||||
#### Not Supported
|
|
||||||
- gzip: As far as I know, it doesn't support random access.
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Check [here][main-url] or [here][doc-folder-url] for further documentation.
|
Check [here][main-url] or [here][doc-folder-url] for further documentation.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
|
||||||
|
|
||||||
|
1. Fork the Project
|
||||||
|
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
|
||||||
|
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
||||||
|
4. Push to the Branch (`git push origin feature/AmazingFeature`)
|
||||||
|
5. Open a Pull Request
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Distributed under the GPL3 license. See `LICENSE` for more information.
|
||||||
|
|
||||||
[doc-folder-url]: https://github.com/distribyted/distribyted/blob/master/mkdocs/docs/index.md
|
[doc-folder-url]: https://github.com/distribyted/distribyted/blob/master/mkdocs/docs/index.md
|
||||||
[main-url]: https://distribyted.com
|
[main-url]: https://distribyted.com
|
||||||
[releases-shield]: https://img.shields.io/github/v/release/distribyted/distribyted.svg?style=flat-square
|
[releases-shield]: https://img.shields.io/github/v/release/distribyted/distribyted.svg?style=flat-square
|
||||||
|
|
1
mkdocs/docs/api-reference.md
Normal file
1
mkdocs/docs/api-reference.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
TBD
|
1
mkdocs/docs/architecture.md
Normal file
1
mkdocs/docs/architecture.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
TBD
|
76
mkdocs/docs/getting-started.md
Normal file
76
mkdocs/docs/getting-started.md
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Using the binary
|
||||||
|
|
||||||
|
Get the latest release from [releases][releases-url] page or download the source code and execute `make build`.
|
||||||
|
|
||||||
|
Run the program: `./distribyted-[VERSION]-[OS]-[ARCH]`
|
||||||
|
|
||||||
|
Defaults are good enough for starters, but you can change them. Here is the output of `./distribyted -help`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
NAME:
|
||||||
|
distribyted - Torrent client with on-demand file downloading as a filesystem.
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
distribyted [global options] [arguments...]
|
||||||
|
|
||||||
|
GLOBAL OPTIONS:
|
||||||
|
--config value YAML file containing distribyted configuration. (default: "./distribyted-data/config.yaml") [$DISTRIBYTED_CONFIG]
|
||||||
|
--http-port value HTTP port for web interface (default: 4444) [$DISTRIBYTED_HTTP_PORT]
|
||||||
|
--fuse-allow-other Allow other users to acces to all fuse mountpoints. You need to add user_allow_other flag to /etc/fuse.conf file. (default: false) [$DISTRIBYTED_FUSE_ALLOW_OTHER]
|
||||||
|
--help, -h show help (default: false)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Prerequisites on windows
|
||||||
|
|
||||||
|
Download and install [WinFsp](http://www.secfs.net/winfsp/).
|
||||||
|
|
||||||
|
### Using Docker
|
||||||
|
|
||||||
|
Docker run example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run \
|
||||||
|
--rm -p 4444:4444 -p 36911:36911 \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
--device /dev/fuse \
|
||||||
|
--security-opt apparmor:unconfined \
|
||||||
|
-v /tmp/mount:/distribyted-data/mount:shared \
|
||||||
|
-v /tmp/metadata:/distribyted-data/metadata \
|
||||||
|
-v /tmp/config:/distribyted-data/config \
|
||||||
|
distribyted/distribyted:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
Docker compose example:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
distribyted:
|
||||||
|
container_name: distribyted
|
||||||
|
image: distribyted/distribyted:latest
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "4444:4444/tcp"
|
||||||
|
- "36911:36911/tcp"
|
||||||
|
volumes:
|
||||||
|
- /home/user/mount:/distribyted-data/mount:shared
|
||||||
|
- /home/user/metadata:/distribyted-data/metadata
|
||||||
|
- /home/user/config:/distribyted-data/config
|
||||||
|
security_opt:
|
||||||
|
- apparmor:unconfined
|
||||||
|
devices:
|
||||||
|
- /dev/fuse
|
||||||
|
cap_add:
|
||||||
|
- SYS_ADMIN
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
After executing and load all torrent or magnet files, a web interface will be available at `http://localhost:4444`
|
||||||
|
It contains information about the mounted routes and torrent files like download/upload speed, leechers, seeders...
|
||||||
|
|
||||||
|
You can also modify the configuration file and reload the server from `http://localhost:4444/config` .
|
||||||
|
|
||||||
|
### Configuration File
|
||||||
|
|
||||||
|
You can see the default configuration file with some explanation comments [here](https://github.com/distribyted/distribyted/blob/master/templates/config_template.yaml).
|
|
@ -1,93 +1,36 @@
|
||||||
# Main
|
|
||||||
|
|
||||||
## Getting Started
|
Distribyted is an alternative torrent client.
|
||||||
|
It can expose torrent files as a standard FUSE mount or webDAV endpoint and download them on demand, allowing random reads using a fixed amount of disk space.
|
||||||
Get the latest release from [releases][releases-url] page or download the source code and execute `make build`.
|
|
||||||
|
|
||||||
Run the program: `./distribyted-[VERSION]-[OS]-[ARCH]`
|
|
||||||
|
|
||||||
Defaults are good enough for starters, but you can change them. Here is the output of `./distribyted -help`:
|
|
||||||
|
|
||||||
```text
|
|
||||||
NAME:
|
|
||||||
distribyted - Torrent client with on-demand file downloading as a filesystem.
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
distribyted [global options] [arguments...]
|
|
||||||
|
|
||||||
GLOBAL OPTIONS:
|
|
||||||
--config value YAML file containing distribyted configuration. (default: "./distribyted-data/config.yaml") [$DISTRIBYTED_CONFIG]
|
|
||||||
--http-port value HTTP port for web interface (default: 4444) [$DISTRIBYTED_HTTP_PORT]
|
|
||||||
--fuse-allow-other Allow other users to acces to all fuse mountpoints. You need to add user_allow_other flag to /etc/fuse.conf file. (default: false) [$DISTRIBYTED_FUSE_ALLOW_OTHER]
|
|
||||||
--help, -h show help (default: false)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Prerequisites on windows
|
|
||||||
|
|
||||||
Download and install [WinFsp](http://www.secfs.net/winfsp/).
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
After executing and load all torrent or magnet files, a web interface will be available here: `http://localhost:4444`
|
|
||||||
It contains information about the mounted routes and torrent files like download/upload speed, leechers, seeders...
|
|
||||||
|
|
||||||
You can also modify the configuration file and reload the server from here: `http://localhost:4444/config` .
|
|
||||||
|
|
||||||
### Docker
|
|
||||||
|
|
||||||
Docker run example:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
docker run \
|
|
||||||
--rm -p 4444:4444 -p 36911:36911 \
|
|
||||||
--cap-add SYS_ADMIN \
|
|
||||||
--device /dev/fuse \
|
|
||||||
--security-opt apparmor:unconfined \
|
|
||||||
-v /tmp/mount:/distribyted-data/mount:shared \
|
|
||||||
-v /tmp/metadata:/distribyted-data/metadata \
|
|
||||||
-v /tmp/config:/distribyted-data/config \
|
|
||||||
distribyted/distribyted:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
Docker compose example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
distribyted:
|
|
||||||
container_name: distribyted
|
|
||||||
image: distribyted/distribyted:latest
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- "4444:4444/tcp"
|
|
||||||
- "36911:36911/tcp"
|
|
||||||
volumes:
|
|
||||||
- /home/user/mount:/distribyted-data/mount:shared
|
|
||||||
- /home/user/metadata:/distribyted-data/metadata
|
|
||||||
- /home/user/config:/distribyted-data/config
|
|
||||||
security_opt:
|
|
||||||
- apparmor:unconfined
|
|
||||||
devices:
|
|
||||||
- /dev/fuse
|
|
||||||
cap_add:
|
|
||||||
- SYS_ADMIN
|
|
||||||
```
|
|
||||||
|
|
||||||
### Configuration File
|
|
||||||
|
|
||||||
You can see the default configuration file with some explanation comments [here](https://github.com/distribyted/distribyted/blob/master/templates/config_template.yaml).
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
|
|
||||||
|
|
||||||
1. Fork the Project
|
|
||||||
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
|
|
||||||
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
|
||||||
4. Push to the Branch (`git push origin feature/AmazingFeature`)
|
|
||||||
5. Open a Pull Request
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Distributed under the GPL3 license. See `LICENSE` for more information.
|
|
||||||
|
|
||||||
|
![Distribyted Screen Shot][product-screenshot]
|
||||||
|
|
||||||
[product-screenshot]: images/distribyted.gif
|
[product-screenshot]: images/distribyted.gif
|
||||||
|
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### User Interfaces
|
||||||
|
|
||||||
|
Distribyted supports several ways to expose the files to the user or external applications:
|
||||||
|
|
||||||
|
#### Supported
|
||||||
|
|
||||||
|
- FUSE: Other applications can access to torrent files directly as a filesystem.
|
||||||
|
- WebDAV: Applications that supports WebDAV can access torrent files using this protocol. It is recommended when distribyted is running in a remote machine or using docker.
|
||||||
|
|
||||||
|
#### To be supported
|
||||||
|
- HTTP: distribyted will support direct HTTP access to files.
|
||||||
|
|
||||||
|
### _Expandable_ File Formats
|
||||||
|
Distribyted can show some kind of files directly as folders, making it possible for applications read only the parts that they need. Here is a list of supported, to be supported and not supported formats.
|
||||||
|
|
||||||
|
#### Supported
|
||||||
|
- zip: Able to uncompress just one file. The file is decompressed to a temporal file sequentially to make possible seek over it. The decompression stops if no one is reading it.
|
||||||
|
|
||||||
|
#### To Be Supported
|
||||||
|
- tar: Seek to any file and inside that files using a [modified standard library](https://github.com/ajnavarro/go-tar). Not useful on `.tar.gz` files.
|
||||||
|
- 7zip: Similar to Zip. Need for a library similar to [zip](https://github.com/saracen/go7z).
|
||||||
|
- xz: Only worth it when the file is created using blocks. Possible library [here](https://github.com/ulikunitz/xz) and [here](https://github.com/frrad/bxzf).
|
||||||
|
|
||||||
|
#### Not Supported
|
||||||
|
- gzip: As far as I know, it doesn't support random access.
|
||||||
|
|
1
mkdocs/docs/tutorials.md
Normal file
1
mkdocs/docs/tutorials.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
TBD
|
|
@ -1,18 +1,28 @@
|
||||||
site_name: Distribyted Documentation
|
site_name: Distribyted
|
||||||
site_url: https://distribyted.com/
|
site_url: https://distribyted.com/
|
||||||
repo_url: https://github.com/distribyted/distribyted
|
repo_url: https://github.com/distribyted/distribyted
|
||||||
repo_name: distribyted/distribyted
|
repo_name: distribyted/distribyted
|
||||||
|
|
||||||
|
nav:
|
||||||
|
- Home: index.md
|
||||||
|
- Getting Started: getting-started.md
|
||||||
|
- Tutorials: tutorials.md
|
||||||
|
- API Reference: api-reference.md
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
|
logo: images/distribyted_icon.png
|
||||||
icon:
|
icon:
|
||||||
repo: fontawesome/brands/github
|
repo: fontawesome/brands/github
|
||||||
name: material
|
name: material
|
||||||
palette:
|
palette:
|
||||||
primary: blue
|
primary: white
|
||||||
features:
|
features:
|
||||||
|
- navigation.tabs
|
||||||
- navigation.instant
|
- navigation.instant
|
||||||
- navigation.tracking
|
- navigation.tracking
|
||||||
- navigation.expand
|
- navigation.expand
|
||||||
- navigation.indexes
|
- navigation.indexes
|
||||||
|
- navigation.top
|
||||||
- toc.integrate
|
- toc.integrate
|
||||||
|
|
||||||
edit_uri: edit/master/mkdocs/docs/
|
edit_uri: edit/master/mkdocs/docs/
|
||||||
|
@ -24,3 +34,7 @@ extra:
|
||||||
version:
|
version:
|
||||||
default: latest
|
default: latest
|
||||||
provider: mike
|
provider: mike
|
||||||
|
|
||||||
|
markdown_extensions:
|
||||||
|
- toc:
|
||||||
|
permalink: true
|
||||||
|
|
Loading…
Reference in a new issue