nico

所属分类:Node.js
开发工具:C
文件大小:0KB
下载次数:0
上传日期:2023-12-01 12:38:31
上 传 者sh-1993
说明:  用NodeJS编写的WebDAV服务器,具有其他REST API功能,如缩略图生成API。
(WebDAV server written in NodeJS with additional REST API features such as thumbnail generation API.)

文件列表:
.eslintrc.json (370, 2023-12-16)
.npmignore (35, 2023-12-16)
.vscode/ (0, 2023-12-16)
.vscode/launch.json (625, 2023-12-16)
LICENSE (1078, 2023-12-16)
azure-pipelines.yml (673, 2023-12-16)
client/ (0, 2023-12-16)
client/asset-manifest.json (881, 2023-12-16)
client/favicon.ico (3870, 2023-12-16)
client/images/ (0, 2023-12-16)
client/images/old_screen.jpg (6764, 2023-12-16)
client/images/screen.jpg (27830, 2023-12-16)
client/index.html (835, 2023-12-16)
client/manifest.json (362, 2023-12-16)
client/robots.txt (67, 2023-12-16)
client/static/ (0, 2023-12-16)
client/static/css/ (0, 2023-12-16)
client/static/css/main.ea6711f9.css (48440, 2023-12-16)
client/static/css/main.ea6711f9.css.map (112977, 2023-12-16)
client/static/js/ (0, 2023-12-16)
client/static/js/496.981ea905.chunk.js (7169, 2023-12-16)
client/static/js/496.981ea905.chunk.js.map (16738, 2023-12-16)
client/static/js/main.c0ca7808.js (1623664, 2023-12-16)
client/static/js/main.c0ca7808.js.LICENSE.txt (3062, 2023-12-16)
client/static/js/main.c0ca7808.js.map (5639778, 2023-12-16)
client/static/media/ (0, 2023-12-16)
client/static/media/overlay.8e7b82386ecd3c2d6d6f.png (14920, 2023-12-16)
client/static/media/pattern-size1.60f7bac819aa04c31750.svg (597, 2023-12-16)
client/static/media/pattern-size2.2c1fd5afede323c47e5f.svg (594, 2023-12-16)
client/static/media/pattern-size3.aedec7ce69ff5c9b21e3.svg (597, 2023-12-16)
dotenv-sample (2975, 2023-12-16)
package-lock.json (231392, 2023-12-16)
package.json (1464, 2023-12-16)
src/ (0, 2023-12-16)
src/index.ts (7314, 2023-12-16)
src/lib/ (0, 2023-12-16)
src/lib/auth.ts (2086, 2023-12-16)
src/lib/fileutils.ts (3083, 2023-12-16)
... ...

# nico.drive Hironico's nico.drive is a webdav server running on nodejs. It features full support of WebDAV protocol plus additional exclusive features to ease display and search of hosted files. To take full advantage of the additional APIs, the server comes with its own web application embbedded (aka the nico.drive.client project). It's an all-in-one solution to backup important files and memories yet very simple to install and use. ## Features * WebDAV compliant server compatible with all WebDav enabled devices such as NAS (Synology, QNap etc...) * Out of the box ready to run but also highly configurable (see dotenv-sample file) * Additional features as additional REST api : - image thumbnail generator - image metadata API support for EXIF and XMP - digital camera raw file formats support for thumbs * Embedded WebDAV explorer web application ## Getting started In order to get it up and running in your environment, you need : - A server box : private cloud or dedicated machine, the choice is yours. For instance, we use a Linux dedicated box. - An SSL certificate (with its key). Self signed for development/testing or use [Let's Encrypt](https://letsencrypt.org/) for production. Assuming you have configured your box with a dedicated user ; to run your server, then you need to: - Git clone the repository - COPY the "dotenv-sample" file into a file named ".env", then adapt to reflect your current setup. - npm install - npm run build - npm run start - Connect WebDav client to your new server (follow vendor instructions) or Point you browser at the root url of your server (see .env file for setup) ## Configuration options The configuration is splitted into two parts: - server config : network ports, certificates ... - user config : user access and root directories for each user Each configuration has examples in a dedicated sample file that can be customized. See below. ### Server config COPY the dotenv.sample file to create a file named '.env' (dot env litterally). IMPORTANT: Never expose the .env in your webserver in any way. Then you can customize the .env file to suit your needs. ### Users and directories config COPY the user_config.json.default into a file named users_config.json Assign each user one or more root directories for storing/sharing files from/to your server. Users can have the following roles: - all : user is admin user for this root directory. Not only it has write access but also can create shares to existing other users. - canRead : readonly access - CanWrite: read and write access but not possible to create shares. ## Developper information The following is developper instructions about the way Nico's Drive has been built. Is contains various links where the author found instructions on how to setup teh development environment, code, libraries used etc... ### Build issues (and their solutions) * Namespace 'serveStatic' has no exported member 'RequestHandlerConstructor See : https://github.com/DefinitelyTyped/DefinitelyTyped/issues/49595 Run th efollowing commands to solve: - npm update @types/express-serve-static-core --depth 2 - npm update @types/serve-static --depth 2 ### Full documentation reference (educational) * In order to setup the project we used a slightly updated version of the tutorial available here at [okta](https://developer.okta.com/blog/2018/11/15/node-express-typescript) * tslint being outdated, we used eslint instead with instructions here [Getting started with eslint](https://eslint.org/docs/user-guide/getting-started) * In order to get HTTPS working we followed the following tutorial: [Running ExpressJS server over HTTPS](https://timonweb.com/javascript/running-expressjs-server-over-https/) * After that we needed configuration options: [so we use the dotEnv project](https://developer.okta.com/blog/2018/11/15/node-express-typescript#a-better-way-to-manage-configuration-settings-in-nodejs) * Created the azure-pipelines.yml to get continuous integration from Azure DevOps * Thumbnail library is [SHARP](https://www.npmjs.com/package/sharp) * Original Digital Camera RAW file support from dcraw : https://www.dechifro.org/dcraw/ * Advanced Digital Camera RAW file support provided via [LibRaw](https://github.com/LibRaw/LibRaw/)

近期下载者

相关文件


收藏者