Merge filesystems together.
Find a file
Gabriel Simmer 49dba732d3
Implement Setup() function for providers, cleanup
Implemented a much-needed Setup() function for providers to implement,
which (as demonstrated in the backblaze provider) allows for
authentication in advance of needing to make calls to remote locations.
This could also be used to create a directory or perform some other
sanity check required for the provider to work. So far, haven't noticed
any performance impacts from this approach, besides not needing to auth
each time we make a request.
2020-03-21 00:31:24 +00:00
auth Directory listing in new frontend 2019-07-27 21:43:05 -07:00
common Initial commit of basic functional file listing 2019-02-24 00:25:39 -08:00
files Implement Setup() function for providers, cleanup 2020-03-21 00:31:24 +00:00
router Implement Setup() function for providers, cleanup 2020-03-21 00:31:24 +00:00
.gitignore Refactoring file storage to enable different providers 2020-02-24 18:07:47 +00:00
go.mod Refactoring file storage to enable different providers 2020-02-24 18:07:47 +00:00
go.sum Refactoring file storage to enable different providers 2020-02-24 18:07:47 +00:00
LICENSE Initial commit 2019-02-24 00:23:09 -08:00
Makefile Rewrite file provider to proxy data download (rather than redirect) 2020-03-15 23:49:00 +00:00
README.md Rewrite file provider to proxy data download (rather than redirect) 2020-03-15 23:49:00 +00:00
webserver.go Implement Setup() function for providers, cleanup 2020-03-21 00:31:24 +00:00

nas

small go nas platform for my raspberry pi

usage

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 i use myself. the providers you would like to use can be added to providers.yml alongside the binary.

for example, here is a sample configuration implementing both of them:

disk:
  provider: disk
  path: /tmp/nas
backblaze:
  provider: backblaze
  config:
    appKeyId: APP_KEY_ID
    appId: APP_ID
    bucket: BUCKET_ID

(read more here: #providers)

running

after adding the providers you would like to use, the application can be run simply with ./nas.

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 pi will build the project with the GOOS=linux GOARCH=arm GOARM=5 go flags set for raspberry pis.

api

initially the heavy lifting was done by the server, but the need for a better frontend was clear.

full documentation coming soon once actual functionality has been nailed down.

providers

// todo

credits

svg icons via https://iconsvg.xyz

raspberry pi svg via https://www.vectorlogo.zone/logos/raspberrypi/index.html