Backend is Sails v1 application on Node v8
Custom ORM adapter is created for file system access. Basically, I am using ORM models and queries to work with the shares and files.
The rest is simple REST server accessed via WebSockets.
Backend is under api/ directory.
Frontend is React/Redux on Bootstrap 4
Fully responsive application created using Reactstrap, which is Bootstrap 4 for React, using custom CSS when needed (mainly flexgrid).
Initial markup comes prepared on the server utilizing Server-Side Rendering.
Frontend is under assets/js/ directory.
Install Node v8 and Redis according to your OS way of doing so.
Get the sources:
# git clone https://github.com/basarevych/webfm # cd webfm # cp webfm.conf.example webfm.conf # yarn install --prod
NOTE: If you are going to use build commands then remove --prod from the yarn arguments above.
Edit the initial webfm.conf file, add your users and shares. User password is SHA256 hash of a password actually - don't put the real password there. Shares are defined as items in read or write array of the user section. You will find the example in the config file.
Do yarn start or npm start to start the thing. To make it permanent you can do pm2 start ./ecosystem.config.js --env production (this ecosystem.config.js file is in the repo).
In order to build production bundles use yarn run build (after that run yarn start to start the server).
Development version is built using yarn run build:dev - this command will not terminate but will watch the files for changes, recompiling the bundle when need. In another terminal run yarn run start:dev to start dev version of the server.
Development bundles are excluded from the repo, but production bundles should be committed into it so you will not have to run build task on hosting server.