mirror of
https://github.com/gmemstr/sliproad.git
synced 2024-09-19 16:11:11 +01:00
Update README, add configuration examples.
Expanded the README with more up-to-date data and elaboration on providers, which may have been a bit unclear before. Also added a few configuration examples for each provider, with comments.
This commit is contained in:
parent
d86ed1233f
commit
a765d52e4b
33
README.md
33
README.md
|
@ -1,9 +1,15 @@
|
|||
# nas
|
||||
small go nas platform for my raspberry pi
|
||||
bringing filesystems together
|
||||
|
||||
## usage
|
||||
## about
|
||||
|
||||
### configuration
|
||||
this project aims to be an easy-to-manage web application that allows the management of cloud storage, whether it be on
|
||||
the host machine or part of a remote api. this is intended mostly for my own use, but i am documenting it in a way that
|
||||
i hope allows others to pick it up and improve on it down the line.
|
||||
|
||||
if something is unclear, feel free to open an issue :)
|
||||
|
||||
## configuration
|
||||
|
||||
unlike the initial version of this project, the current build uses _providers_ to determine how to handle various
|
||||
functions related to files. currently, two are implemented, `disk` and `backblaze`, since they are the primary providers
|
||||
|
@ -25,27 +31,34 @@ backblaze:
|
|||
|
||||
(read more here: [#providers](#providers))
|
||||
|
||||
### running
|
||||
## running
|
||||
|
||||
after adding the providers you would like to use, the application can be run simply with `./nas`.
|
||||
after adding the providers you would like to use, the application can be run simply with `./nas`. it will attach to port
|
||||
`:3000`.
|
||||
|
||||
### building
|
||||
## building
|
||||
|
||||
this project uses go modules and a makefile, so building should be relatively straightforward.
|
||||
|
||||
- `make` will build the project for your system's architecture.
|
||||
- `make run` will run the project with `go run`
|
||||
- `make pi` will build the project with the `GOOS=linux GOARCH=arm GOARM=5 go` flags set for raspberry pis.
|
||||
|
||||
### providers
|
||||
## providers
|
||||
|
||||
"providers" provide a handful of functions to interact nicely with a filesystem, whether it be on local disk or on a
|
||||
remote server via an api. best-effort is done to keep these performant, up to date and minimal.
|
||||
|
||||
there are a few built-in providers, and more can be added by opening a pull request.
|
||||
|
||||
|name|service|configuration example|
|
||||
|----|-------|---------------------|
|
||||
|disk|local filesystem|disk.yml|
|
||||
|backblaze|backblaze b2|backblaze.yml|
|
||||
|disk|local filesystem|assets/config_examples/disk.yml|
|
||||
|backblaze|backblaze b2|assets/config_examples/backblaze.yml|
|
||||
|
||||
#### custom provider
|
||||
you can find a full configuration file under `assets/config_examples/providers.yml`
|
||||
|
||||
### custom provider
|
||||
|
||||
custom file providers can be implemented by adding a new go file to the `files` module. it should
|
||||
implement the `FileProviderInterface` interface.
|
0
assets/config_examples/README.md
Normal file
0
assets/config_examples/README.md
Normal file
9
assets/config_examples/backblaze.yml
Normal file
9
assets/config_examples/backblaze.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
# The Backblaze provider requires an application key, application key ID, and bucket ID to use.
|
||||
# You can find steps for generating there here: https://www.backblaze.com/b2/docs/application_keys.html
|
||||
# Keys should have at least the listBuckets, readFiles, writeFiles and shareFiles permissions for a bucket.
|
||||
backblaze:
|
||||
provider: backblaze
|
||||
config: # Provider-specific files.
|
||||
applicationKeyId: aaaaaaaaaaaa
|
||||
applicationKey: aaaaaaaaaaaa
|
||||
bucket: aaaaaaaaaaaa
|
5
assets/config_examples/disk.yml
Normal file
5
assets/config_examples/disk.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
# The disk provider is the most basic of providers, requiring only a path on disk to write and retrieve files to and
|
||||
# from.
|
||||
disk:
|
||||
provider: disk
|
||||
path: /tmp/nas # This is only used for the `disk` provider right now, and indicates where to manage files.
|
20
assets/config_examples/providers.yml
Normal file
20
assets/config_examples/providers.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
# A "provider" is a service that provides access to a filesystem.
|
||||
#
|
||||
# A full configuration for every provider implemented in the application.
|
||||
# You can find full breakdowns for each provider's configuration in it's respective file under
|
||||
# `assets/config_examples/`.
|
||||
#
|
||||
# Schema is as follows:
|
||||
# Provider Name: string - used to identify which filesystem to access.
|
||||
# provider: string - should be one of the built-in providers.
|
||||
# path: string - optional, just used for `disk` right now.
|
||||
# config: mapping - used for provider-specific configuration values, such as authentication.
|
||||
disk:
|
||||
provider: disk
|
||||
path: /tmp/nas
|
||||
backblaze:
|
||||
provider: backblaze
|
||||
config:
|
||||
applicationKeyId: aaaaaaaaaaaa
|
||||
applicationKey: aaaaaaaaaaaa
|
||||
bucket: aaaaaaaaaaaa
|
Loading…
Reference in a new issue