1
1
# NanaFS
2
2
3
+ ![ unittest workflow] ( https://github.com/basenana/nanafs/actions/workflows/unittest.yml/badge.svg )
4
+ ![ pages-build-deployment] ( https://github.com/basenana/nanafs/actions/workflows/pages/pages-build-deployment/badge.svg )
5
+
6
+ <p align =" right " >[ English | <a href =" https://github.com/basenana/nanafs/blob/main/README_zh.md " >简体中文</a > ]</p >
7
+
3
8
NanaFS is a workflow engine that simplifies data management
4
9
by allowing users to manage structured and unstructured data in one place,
5
10
rather than across multiple sources. It's like a filing cabinet
@@ -10,104 +15,67 @@ NanaFS is also customizable through plugin support,
10
15
meaning users can tailor the workflow engine to their specific needs.
11
16
This makes NanaFS a versatile and valuable tool for personal, academic, and professional use.
12
17
18
+ ## Key Features
19
+
20
+ ### Cloud-Based Storage
21
+
22
+ NanaFS utilizes cloud-based storage as main backend storage,
23
+ supporting not only object storage but also file-hosting service.
24
+ With the cloud-based storage feature, NanaFS can have unlimited storage capacity at an affordable price,
25
+ and users can access their data saved in the cloud anywhere and anytime.
26
+
27
+ The following storage options are already supported or planned to be supported:
28
+
29
+ - ** Object Storage** : AWS S3, AlibabaCloud OSS, Cloudflare R2
30
+ - ** Cloud Drive** : Google Drive, OneDrive, AliyunDrive, BaiduWangpan
31
+ - ** Other Storage Protocols** : WebDAV
32
+
33
+ ### POSIX Compatibility
34
+
35
+ NanaFS offers a file system interface that complies with the POSIX standard through FUSE.
36
+ This makes it easy to mount NanaFS onto the directory tree and manage NanaFS data using tools such as Finder on Linux
37
+ and MacOS operating systems.
38
+
39
+ Additionally, NanaFS has passed the majority of pjdfstest's compatibility tests, ensuring compatibility with Linux/Unix
40
+ systems.
41
+ This means that existing commands and tools can be used to efficiently process data in NanaFS. For specific needs,
42
+ custom scripts or programs can also be written to process files in NanaFS.
43
+
44
+ ### File-Centric Workflow
45
+
46
+ The actual value of data storage lies in its use. To facilitate this,
47
+ NanaFS provides a file-centric workflow engine equipped with rule-based automatic file processing capabilities.
48
+
49
+ With the workflow engine, tasks such as batch file renaming and creating semantic indexing based on file content become
50
+ very simple.
51
+ This eases data manipulation, makes data no longer "cold," and helps uncover more inherent value in the data.
52
+
53
+ ### Plugin Support
54
+
55
+ NanaFS supports multiple types of plugins to extend its capabilities. Currently, NanaFS primarily supports three types
56
+ of plugins:
57
+
58
+ - ** Source Plugin** : synchronizes data periodically from a source address and integrates it into NanaFS. This includes
59
+ aggregating RSS information and filing emails according to the SMTP protocol.
60
+ - ** Mirror Plugin** : maps external storage systems into NanaFS, allowing NanaFS to manage data from multiple storage
61
+ systems through a unified interface.
62
+ - ** Process Plugin** : provides file processing capabilities and enhances the functionality of workflows by extending
63
+ Process Plugins.
64
+
65
+ ### Data Security
66
+
67
+ Data security is a prerequisite for data storage and usage.
68
+ NanaFS provides end-to-end encryption from storage to transmission, ensuring that your cloud data cannot be accessed
69
+ even if it is stolen by hackers.
70
+ Similarly, cloud service providers cannot access or modify your data, ensuring that your data is not leaked or misused.
71
+
13
72
## Usage
14
73
15
- ### Requirements
16
-
17
- 1 . NanaFS requires the FUSE library for POSIX-FS use cases, but it is optional if you are using the API or WebDAV
18
- exclusively.
19
- 2 . In order to build the NanaFS binary, Docker is needed. So if you plan to build it yourself, you will need to have
20
- Docker installed first.
21
-
22
- Fortunately, installing FUSE or Docker is a straightforward process.
23
-
24
- For Ubuntu, FUSE can be installed using ` apt ` :
25
-
26
- ``` bash
27
- sudo apt-get install -y libfuse3-dev fuse3 libssl-dev
28
- ```
29
-
30
- For macOS, same operation like linux, ` brew ` will make things done:
31
-
32
- ``` bash
33
- brew install --cask osxfuse
34
- ```
35
-
36
- ### Deploy using the binary file
37
-
38
- The current and historical versions of the binary files can be downloaded on
39
- the [ release page] ( https://github.com/basenana/nanafs/releases ) .
40
-
41
- ### Build your own version
42
-
43
- If your own version needs to be built, just ` make ` it:
44
-
45
- ``` bash
46
- make build
47
- ```
48
-
49
- ### Run
50
-
51
- Before running a trigger in NanaFS, ensure the configuration is correct.
52
-
53
- We provide a tool to quickly edit and generate configuration files.
54
- Generate a default local configuration file using the provided tool,
55
- but keep in mind that the generated configuration may not be optimal.
56
-
57
- ``` bash
58
- nanafs config init
59
- ```
60
-
61
- The generated configuration file can be found in the ` ~/.nana ` directory:
62
-
63
- ``` json
64
- {
65
- "api" : {
66
- "enable" : true ,
67
- "host" : " 127.0.0.1" ,
68
- "port" : 7081 ,
69
- "pprof" : false
70
- },
71
- "fuse" : {
72
- "enable" : false ,
73
- "root_path" : " /your/path/to/mount" ,
74
- "display_name" : " nanafs"
75
- },
76
- "webdav" : {
77
- "enable" : false ,
78
- "host" : " 127.0.0.1" ,
79
- "port" : 7082 ,
80
- "overwrite_users" : [
81
- {
82
- "uid" : 0 ,
83
- "gid" : 0 ,
84
- "username" : " admin" ,
85
- "password" : " changeme"
86
- }
87
- ]
88
- },
89
- "meta" : {
90
- "type" : " sqlite" ,
91
- "path" : " /your/data/path/sqlite.db"
92
- },
93
- "storages" : [
94
- {
95
- "id" : " local-0" ,
96
- "type" : " local" ,
97
- "local_dir" : " /your/data/path/local"
98
- }
99
- ],
100
- "cache_dir" : " /your/data/path/cache" ,
101
- "cache_size" : 10
102
- }
103
- ```
104
-
105
- Run nanafs:
106
-
107
- ``` bash
108
- nanafs serve
109
- ```
110
-
111
- ## Architecture
112
-
113
- TODO
74
+ NanaFS's usage guidelines, including its parameters and examples of tools and commands, are documented
75
+ in [ Instructions For Usage] ( https://github.com/basenana/nanafs/blob/main/docs/usage.md ) .
76
+
77
+ ## Feedback
78
+
79
+ If you encounter any problems while using NanaFS, whether it's related to usage, bugs, or you have suggestions for new
80
+ features,
81
+ please feel free to create an issue.
0 commit comments