cells

command module
v4.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2024 License: AGPL-3.0 Imports: 96 Imported by: 0

README

Homepage | Dev Guide | GitHub-Repository | Issue-Tracker

License Badge GoDoc Go Report Card

Pydio Cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See the Deployment section below for notes on how to deploy the project on a live system.

A - Prerequisites

The following elements are required to compile and run Pydio Cells on your machine:

  • Go language v1.21 or higher and a correctly configured Go toolchain,
  • MySQL database 5.6 or higher (or MariaDB equivalent).

Note: We have developed and tested Pydio Cells on macOS, Ubuntu, Debian and CentOS. Windows version might still have unknown glitches and is not yet supported.

B - Build From Sources

Assuming that your system meets the above prerequisites, building the Pydio Cells backend from the source code is quite straightforward:

# Retrieve the code
git clone https://github.com/pydio/cells
# Enter cells directory
cd cells
# Build your binary
make dev

C - Configure Environment

To have the environment running, you must also:

  • Create a database in your chosen DB server,
  • Run the Pydio Cells installer that will guide you through the necessary steps: you might refer to the official documentation for additional information.
./cells configure

D - Start Server

./cells start

Access the default site https://localhost:8080/ and you are good to go. Learn more about Cells features and advanced configuration in the Documentation.

Running the tests

To run the tests, simply do

go test -v ./...

Please read the CONTRIBUTING.md document if you wish to add more tests or contribute to the code.

Pre-built Binaries

Binaries are currently provided for Linux, macOS and Windows distributions. To deploy them on a live system, please see the Installation Guide instructions.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us. You can find a comprehensive Developer Guide on our website. Our online docs are open-source as well, feel free to improve them by contributing!

We are also looking for help to translate the Cells interface in various languages. It is really easy to participate: just navigate to our page in the Crowdin translation tool, create an account and get started.

Pydio Cells uses many open-source libraries. The most important ones are listed below, please see DEPENDENCIES for an exhaustive list of other libs and their licenses.

Versioning & Branches

Please note that git main branch moved from master for Cells v1 to v3 (vendoring, no modules) to main for Cells v4 (go modules).

We use Semantic Versioning. For all available versions, see the release list.

Authors

See the list of contributors who participated in this project. Pydio Cells is also a continuation of the Pydio project and many contributions were ported from pydio-core to the code that can be found under frontend/front-srv/assets.

License

This project is licensed under the AGPLv3 License - see the LICENSE file for more details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package broker provides events-related services.
Package broker provides events-related services.
activity
Package activity stores and distributes events to users in a social-feed manner.
Package activity stores and distributes events to users in a social-feed manner.
activity/actions
Package actions provides a scheduler action for generating mail digests
Package actions provides a scheduler action for generating mail digests
activity/grpc
Package grpc is the persistence service for all activities.
Package grpc is the persistence service for all activities.
activity/lang
Package lang provides i18n strings related to activities
Package lang provides i18n strings related to activities
activity/render
Package render provides helper for rendering activies into various formats (currently markdown).
Package render provides helper for rendering activies into various formats (currently markdown).
activity/rest
Package rest exposes a Rest service for querying activities feed
Package rest exposes a Rest service for querying activities feed
chat
Package chat provides real-time chats linked to any topics for end users.
Package chat provides real-time chats linked to any topics for end users.
chat/grpc
Package grpc provides a Pydio GRPC service for managing chat rooms.
Package grpc provides a Pydio GRPC service for managing chat rooms.
log
Package log provides a persistence layer for json-formatted logs generated by the application.
Package log provides a persistence layer for json-formatted logs generated by the application.
log/grpc
Package grpc provides a Pydio GRPC service for querying the logs
Package grpc provides a Pydio GRPC service for querying the logs
log/rest
Package rest exposes a simple REST API for communicating with the GRPC package.
Package rest exposes a simple REST API for communicating with the GRPC package.
mailer
Package mailer acts a central mail server for the application.
Package mailer acts a central mail server for the application.
mailer/grpc
Package grpc provides the actual logic for posting emails to queue or to mail servers
Package grpc provides the actual logic for posting emails to queue or to mail servers
mailer/lang
Package lang provides i18n strings for mailer-related data.
Package lang provides i18n strings for mailer-related data.
mailer/rest
Package rest exposes a simple API for posting emails
Package rest exposes a simple API for posting emails
mailer/templates
Package templates defines ready-to-use templates to send email in a nice formatting.
Package templates defines ready-to-use templates to send email in a nice formatting.
cmd
auth
Package auth provides tools related to authentication of pydio services
Package auth provides tools related to authentication of pydio services
auth/claim
Package claim wraps the JWT claims with util functions
Package claim wraps the JWT claims with util functions
config
Package config provides tools for managing configurations
Package config provides tools for managing configurations
crypto
Package crypto provides tools for data encryption and certificates management
Package crypto provides tools for data encryption and certificates management
crypto/storage
Package storage provide an URLOpener for certmagic.Storage interfaces
Package storage provide an URLOpener for certmagic.Storage interfaces
dao
Package dao provides abstraction of persistence layer used by pydio services.
Package dao provides abstraction of persistence layer used by pydio services.
dao/bleve
Package bleve provides tools for using Bolt as a standard persistence layer for services.
Package bleve provides tools for using Bolt as a standard persistence layer for services.
dao/boltdb
Package boltdb provides tools for using Bolt as a standard persistence layer for services
Package boltdb provides tools for using Bolt as a standard persistence layer for services
etl
forms
Package forms provides utility methods to generate XML that is interpreted by the Front End to build forms.
Package forms provides utility methods to generate XML that is interpreted by the Front End to build forms.
log
Package log define and configure the Pydio loggers based on zap.
Package log define and configure the Pydio loggers based on zap.
nodes
Package nodes provides high-level clients for talking to the main data tree in certain context.
Package nodes provides high-level clients for talking to the main data tree in certain context.
nodes/meta
Package meta provides tool for reading metadata from services declaring "MetaProvider" support
Package meta provides tool for reading metadata from services declaring "MetaProvider" support
nodes/mocks
Package mocks should provide utils used by tests to mock various layers.
Package mocks should provide utils used by tests to mock various layers.
proto/rest/cmd
Package cmd provides a specific tool for transforming json swagger file into a go file
Package cmd provides a specific tool for transforming json swagger file into a go file
proto/service
Package service provides protobuf "any" types used by other proto's
Package service provides protobuf "any" types used by other proto's
server/context
Package servercontext performs context values read/write, generally through server or client wrappers
Package servercontext performs context values read/write, generally through server or client wrappers
service/context
Package servicecontext performs context values read/write, generally through server or client wrappers
Package servicecontext performs context values read/write, generally through server or client wrappers
service/frontend
Package frontend provides tools to publish static data from within any micro service
Package frontend provides tools to publish static data from within any micro service
service/frontend/sessions/securecookie
Package securecookie provides tools for using Bolt as a standard persistence layer for services
Package securecookie provides tools for using Bolt as a standard persistence layer for services
service/resources
Package resources provides extendable service Handler for managing resource-policy based data.
Package resources provides extendable service Handler for managing resource-policy based data.
sql
Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations
Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations
sql/index
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern
sql/resources
Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data
Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data
sync/endpoints/cells
Package cells provides endpoints for speaking either with a local server using a views.Router (and connecting to the local NATS registry), or a remote Cells server using a GRPC gateway client.
Package cells provides endpoints for speaking either with a local server using a views.Router (and connecting to the local NATS registry), or a remote Cells server using a GRPC gateway client.
sync/endpoints/cells/transport
Package transport provides a ready to use SDK to use the Cells REST API in Go language.
Package transport provides a ready to use SDK to use the Cells REST API in Go language.
sync/endpoints/filesystem
Package file system provides endpoints for reading/writing from/to a local folder
Package file system provides endpoints for reading/writing from/to a local folder
sync/endpoints/index
Package index provides a GRPC client for storing information into any tree.NodeProviderClient/tree.NodeReceiverClient service.
Package index provides a GRPC client for storing information into any tree.NodeProviderClient/tree.NodeReceiverClient service.
sync/endpoints/memory
Package memory provides an in-memory basic implementation of an Endpoint, with nodes stored in a map.
Package memory provides an in-memory basic implementation of an Endpoint, with nodes stored in a map.
sync/endpoints/s3
Package s3 provides an endpoint for connecting to Amazon S3 or an S3-compatible storage
Package s3 provides an endpoint for connecting to Amazon S3 or an S3-compatible storage
sync/endpoints/snapshot
Package snapshot provides fast in-memory or on-file implementations of endpoint for storing snapshots
Package snapshot provides fast in-memory or on-file implementations of endpoint for storing snapshots
sync/filters
Package filters provides batchers and filters to analyze and simplify sync events
Package filters provides batchers and filters to analyze and simplify sync events
sync/merger
Package merger implements all logic to compare trees and create set of operations to be applied
Package merger implements all logic to compare trees and create set of operations to be applied
sync/model
Package model gathers the main structs and interfaces used in sync library.
Package model gathers the main structs and interfaces used in sync library.
sync/proc
Package proc provides actual actions to be performed once the sync has filtered all events
Package proc provides actual actions to be performed once the sync has filtered all events
sync/task
Package task defines a synchronization task
Package task defines a synchronization task
utils
Package utils provides swiss-knife tools for all services
Package utils provides swiss-knife tools for all services
utils/error
Package error creates and parses common errors
Package error creates and parses common errors
utils/i18n
Package i18n wraps go-i18n lib for manipulating bundles
Package i18n wraps go-i18n lib for manipulating bundles
utils/mtree
Package mtree provides advanced tools for encoding tree paths in a material format
Package mtree provides advanced tools for encoding tree paths in a material format
utils/net
Package net provides tools for reading IPs, available Ports, extending HTTP requests, etc.
Package net provides tools for reading IPs, available Ports, extending HTTP requests, etc.
utils/openurl
Package openurl provides helpers for URLMux and URLOpeners in portable APIs.
Package openurl provides helpers for URLMux and URLOpeners in portable APIs.
utils/permissions
Package permissions provides high-level tools for computing permissions from ACLs
Package permissions provides high-level tools for computing permissions from ACLs
utils/schedule
Package schedule provides a fixed ticker based on a start time iso8601 interval periods are supported
Package schedule provides a fixed ticker based on a start time iso8601 interval periods are supported
utils/std
Package std provides tools for standard types (strings, int, floats, etc).
Package std provides tools for standard types (strings, int, floats, etc).
Package data provides Data Management services.
Package data provides Data Management services.
docstore
Package docstore provides an indexed JSON document store.
Package docstore provides an indexed JSON document store.
docstore/grpc
Package grpc exposes the document store api in GRPC
Package grpc exposes the document store api in GRPC
key
Package key implements a keystore for managing encryption keys attached to files.
Package key implements a keystore for managing encryption keys attached to files.
key/grpc
Package grpc provides a pydio GRPC service for managing files encryption keys
Package grpc provides a pydio GRPC service for managing files encryption keys
meta
Package meta provides storage for files and folders metadata.
Package meta provides storage for files and folders metadata.
meta/grpc
Package grpc provides a GRPC access to the underlying persistence layer for files metadata
Package grpc provides a GRPC access to the underlying persistence layer for files metadata
meta/rest
Package rest provides a REST API for querying the tree metadata.
Package rest provides a REST API for querying the tree metadata.
search
Package search implements a search engine for indexing nodes
Package search implements a search engine for indexing nodes
search/dao
Package dao abstract the indexation engine and provides a bleve-based implementation.
Package dao abstract the indexation engine and provides a bleve-based implementation.
search/dao/stub
Package stub is a helper for testing indexation
Package stub is a helper for testing indexation
search/grpc
Package grpc provides the Pydio grpc service for querying indexer.
Package grpc provides the Pydio grpc service for querying indexer.
search/lang
Package lang provides i18n strings for mailer-related data.
Package lang provides i18n strings for mailer-related data.
search/rest
Package rest provides a REST service for querying the search engine
Package rest provides a REST service for querying the search engine
source/index
Package index provides indexation for datasources
Package index provides indexation for datasources
source/index/grpc
Package grpc provides a pydio GRPC service for CRUD-ing the datasource index.
Package grpc provides a pydio GRPC service for CRUD-ing the datasource index.
source/index/sessions
Package sessions is used during indexation to start/stop a session an speed-up the process
Package sessions is used during indexation to start/stop a session an speed-up the process
source/objects
Package objects is in charge of exposing the content of the datasource with the S3 protocol.
Package objects is in charge of exposing the content of the datasource with the S3 protocol.
source/objects/grpc
Package grpc wraps a Minio server for exposing the content of the datasource with the S3 protocol.
Package grpc wraps a Minio server for exposing the content of the datasource with the S3 protocol.
source/sync
Package sync provides service for synchronizing objects to indexes
Package sync provides service for synchronizing objects to indexes
source/sync/grpc
Package grpc is a pydio service running synchronization between objects and index.
Package grpc is a pydio service running synchronization between objects and index.
templates/rest
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
tree
Package tree dynamically aggregates the datasources nodes streams
Package tree dynamically aggregates the datasources nodes streams
tree/grpc
Package grpc provides a GRPC service for aggregating all indexes from all datasources
Package grpc provides a GRPC service for aggregating all indexes from all datasources
tree/rest
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
versions
Package versions provides a versioning mechanism for files modifications
Package versions provides a versioning mechanism for files modifications
versions/grpc
Package grpc is in charge of storing versions metadata
Package grpc is in charge of storing versions metadata
versions/lang
Package lang provides i18n strings for versions service
Package lang provides i18n strings for versions service
discovery
config/lang
Package lang provides config-related i18n strings
Package lang provides config-related i18n strings
install/assets
Package assets is based on Packr to embed static data inside the binary.
Package assets is based on Packr to embed static data inside the binary.
install/lib
Package lib is in charge of installing cells.
Package lib is in charge of installing cells.
install/rest
Package rest is used once at install-time when running install via browser
Package rest is used once at install-time when running install via browser
install/web
Package rest is used once at install-time when running install via browser
Package rest is used once at install-time when running install via browser
update
Package update provides connection to a remote update server for upgrading cells binary
Package update provides connection to a remote update server for upgrading cells binary
update/grpc
Package grpc is in charge of detecting updates and applying them
Package grpc is in charge of detecting updates and applying them
update/lang
Package lang provides update-related i18n strings
Package lang provides update-related i18n strings
update/rest
Package rest provides a REST gateway to the update service
Package rest provides a REST gateway to the update service
## Frontend-related services.
## Frontend-related services.
front-srv/rest
Package rest is a service for serving specific requests directly to frontend
Package rest is a service for serving specific requests directly to frontend
front-srv/web
Package web is serving the main entry points for the JS frontend
Package web is serving the main entry points for the JS frontend
gateway
data
Package gateway spins an S3 gateway for serving files using the Amazon S3 protocol.
Package gateway spins an S3 gateway for serving files using the Amazon S3 protocol.
dav
Package dav provides a REST gateway to communicate with pydio backend via the webdav protocol.
Package dav provides a REST gateway to communicate with pydio backend via the webdav protocol.
websocket
Package websocket starts a WebSocket service forwarding internal events to http clients
Package websocket starts a WebSocket service forwarding internal events to http clients
websocket/api
Package api starts the actual WebSocket service
Package api starts the actual WebSocket service
wopi
Package wopi implements communication with the backend via the WOPI API.
Package wopi implements communication with the backend via the WOPI API.
idm
acl
Package acl provides persistence and access to Access Control List
Package acl provides persistence and access to Access Control List
acl/grpc
Package grpc provides a service for storing and CRUD-ing ACLs
Package grpc provides a service for storing and CRUD-ing ACLs
acl/rest
Package rest is a REST gateway to the grpc ACL service
Package rest is a REST gateway to the grpc ACL service
graph/rest
Package rest exposes a REST API to aggregate data from various services.
Package rest exposes a REST API to aggregate data from various services.
key
Package key provides a persistence layer for user key.
Package key provides a persistence layer for user key.
key/grpc
Package grpc is a simple encryption key persistence layer
Package grpc is a simple encryption key persistence layer
meta
Package meta add persistence layer for meta data defined by the end users to enrich the nodes.
Package meta add persistence layer for meta data defined by the end users to enrich the nodes.
meta/grpc
Package grpc provides persistence layer for user-defined metadata
Package grpc provides persistence layer for user-defined metadata
meta/namespace
Package namespace provides operations for managing user-metadata namespaces
Package namespace provides operations for managing user-metadata namespaces
meta/rest
Package provides a gateway to the underlying grpc service
Package provides a gateway to the underlying grpc service
oauth
Package oauth provides OAuth service
Package oauth provides OAuth service
oauth/grpc
Package grpc spins an OpenID Connect Server using the coreos/dex implementation
Package grpc spins an OpenID Connect Server using the coreos/dex implementation
oauth/lang
Package lang provides auth-related i18n strings
Package lang provides auth-related i18n strings
oauth/rest
Package rest provides access to the TokenServiceApi
Package rest provides access to the TokenServiceApi
oauth/web
Package web spins an OpenID Connect Server using the coreos/dex implementation
Package web spins an OpenID Connect Server using the coreos/dex implementation
policy
Package policy provides advanced policy features to fine tune end-user permissions.
Package policy provides advanced policy features to fine tune end-user permissions.
policy/conditions
Package conditions provides implementation of basic condition rules to enable building elaborated policies.
Package conditions provides implementation of basic condition rules to enable building elaborated policies.
policy/grpc
Package grpc is the policy engine service
Package grpc is the policy engine service
policy/lang
Package lang provides policy-related i18n strings
Package lang provides policy-related i18n strings
policy/rest
Package rest is a gateway to the underlying grpc service
Package rest is a gateway to the underlying grpc service
role
Package role is in charge of managing user roles
Package role is in charge of managing user roles
role/grpc
Package grpc provides persistence layer for CRUD-ing roles
Package grpc provides persistence layer for CRUD-ing roles
role/rest
Package rest provides a gateway to the underlying grpc server
Package rest provides a gateway to the underlying grpc server
share/rest
Package rest exposes a REST API to manage shared rooms.
Package rest exposes a REST API to manage shared rooms.
user
Package user implements basic user and group persistence layer.
Package user implements basic user and group persistence layer.
user/grpc
Package grpc provides the gRPC service to communicate with the Pydio's user persistence layer.
Package grpc provides the gRPC service to communicate with the Pydio's user persistence layer.
user/rest
Package rest provides a gateway to the underlying grpc service
Package rest provides a gateway to the underlying grpc service
workspace
Package workspace implements workspace persistence layer.
Package workspace implements workspace persistence layer.
workspace/grpc
Package grpc provides the persistence for workspaces
Package grpc provides the persistence for workspaces
workspace/rest
Package rest provides a gateway to the underlying grpc service
Package rest provides a gateway to the underlying grpc service
Package scheduler implements a fully functional background-task manager for the application.
Package scheduler implements a fully functional background-task manager for the application.
actions
Package actions provides interfaces to manage tasks and provides default implementation for common actions.
Package actions provides interfaces to manage tasks and provides default implementation for common actions.
actions/archive
Package archive provides implementation of actions to work with archive files.
Package archive provides implementation of actions to work with archive files.
actions/cmd
Package cmd provides default implementation for command-line-like actions.
Package cmd provides default implementation for command-line-like actions.
actions/images
Package images provides default implementation of image related tasks.
Package images provides default implementation of image related tasks.
actions/scheduler
Package scheduler provides default implementation for basic scheduler tasks.
Package scheduler provides default implementation for basic scheduler tasks.
actions/tree
Package tree provides default implementation for tree related tasks.
Package tree provides default implementation for tree related tasks.
jobs
Package jobs implements persistence of the job definition.
Package jobs implements persistence of the job definition.
jobs/grpc
Package grpc provides a gRPC service to access the store for scheduler job definitions.
Package grpc provides a gRPC service to access the store for scheduler job definitions.
jobs/rest
Package rest provides a REST gateway to the job definition repository.
Package rest provides a REST gateway to the job definition repository.
lang
Package lang provide scheduler-related i18n strings
Package lang provide scheduler-related i18n strings
tasks
Package tasks provides workers that effectively run the instances of the scheduled jobs.
Package tasks provides workers that effectively run the instances of the scheduled jobs.
tasks/grpc
Package grpc provides a gRPC service to effectively run task instances on multiple workers.
Package grpc provides a gRPC service to effectively run task instances on multiple workers.
timer
Package timer produces events that start scheduler jobs on pre-defined dates and/or intervals.
Package timer produces events that start scheduler jobs on pre-defined dates and/or intervals.
timer/grpc
Package grpc provides a gRPC service that triggers scheduler events based on ISO 8601 patterns.
Package grpc provides a gRPC service that triggers scheduler events based on ISO 8601 patterns.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL