Cloud is a web app that aims to simplify secure file sharing for self hosted users. Main goals of the project are to be simple to setup, secure and have support for ARM devices.
Screenshots:
Cloud is a golang application and you are going to need golang toolchain to compile the app.
To install or update run:
go get -u github.com/ap4y/cloud/cmd/cloudWeb UI is implemented using react and is pre-bundled into golang
app. To setup local development environment for react app you will
need node.js with either npm or yarn.
To pull react app dependecies run:
cd app
npm installTo start local development setup:
cd app
npm startThis will start creat-react web server on a port 3000, you can proxy
local cloud app to it using -devURL argument.
Cloud uses json config files to setup authentication and necessary paths. Sample config:
{
"jwt_secret": "secret",
"modules": ["gallery"],
"users": {
"ap4y": "$2b$10$fEWhY87kzeaV3hUEB6phTuyWjpv73V5m.YcqTxHXnvqEGIou1tXGO"
},
"share": {
"path": "./"
},
"gallery": {
"path": "/mnt/media/Photos/Export/",
"cache": "/tmp/cloud/"
},
"files": {
"path": "/mnt/media/Photos/Export/"
}
}Configuration fields:
jwt_secretis a secret used for JWT (HS256algorithm) related operations.modulesdefines enabled modules.usersdefinesbcrypthashes for user credentials, you can usemkpasswdto hash your passwords.sharesetups a share storage.pathdefines storage location for a disk share storage.gallerydefines necessary paths for the gallery module.pathis a gallery source folder andcacheis a thumbnail cache folder.filesdefines necessary paths for the files module.pathis a source folder for this module.
Additionally following command line arguments are supported:
-config cloud.json- path to a config file.-addr :8080- address to listen on.-devURL- enables proxy mode for a local react development server.
Gallery provides common image gallery features: image grid, thumbnails
and full screen previews. Gallery traverses provided path on a disk
and exposes folders with images as shareable galleries. Thumbnails are
generated on the fly and cached for subsequent use.
Files provides file viewer interface with a basic management
features. Files module traverses provided path on a disk and
construct a tree, parts of the tree can be individually shared.