Future-proof content collaboration platform

Overview

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

License Badge GoDoc Build Status 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.

Prerequisites

The following elements are required to compile and run pydio on your machine

  • Go language v1.13 or higher (tested with latest 1.13, 1.14 & 1.15), with a correctly configured Go toolchain,
  • MySQL database 5.6 or higher (or MariaDB equivalent). The new mysql 8 authentication method is supported starting at Cells 1.4.1.

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

Installing

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

# Retrieve the code
go get -u github.com/pydio/cells
# From this line on, we assume you are in Pydio Cells' code roots directory
cd $GOPATH/src/github.com/pydio/cells
# Build your binary
make dev

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

Note on the third party libraries

We still currently manage third party dependencies via the vendor mechanism: shortly said, we pick up and maintain specific versions of the sources for each dependency we use by copying them in the vendor/ subfolder. The binary is built using these codes.

When you clone the github.com/pydio/cells repository, you then also have an embedded local copy of all the sources for you to investigate. Yet, you should not try to directly modify code that have been vendored.

Please also note that we had to fork a few libraries before integrating them as dependencies, most important being minio. If you need to modify this part of the code, please get in touch with us.

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.

Deployment

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

Built With

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

  • Micro - Micro-service framework
  • Minio - Objects server implementing s3 protocol

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.

Versioning

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.

Comments
  • Switching Pydio Cells v3 branch to v2 branch, files do not appear anymore

    Switching Pydio Cells v3 branch to v2 branch, files do not appear anymore

    I've just updated my Pydio Cells to the latest version and now all my files are gone. All the files are still located on the drive however i'm unable to identify what is what since they are all encrypted into random strings

    Please help i dont have a backup D: pydio1 pydio2

    opened by BamBoozledMC 26
  • cells-cal data sync fails

    cells-cal data sync fails

    When I try to run: "./cells-ctl data sync" I get the following error:

    Resync Failed: {"id":"go.micro.client","code":500,"detail":"none available","status":"Internal Server Error"} [Time taken : 102.336273ms]

    I get the error with or without specifying a source. Would you have an idea?

    Versions:

    Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic

    Cells: 1.2.3

    opened by YannickGagnon 19
  • Request - ARM Build

    Request - ARM Build

    Hi all, can we please get an ARM based build for v3.0 please? It was told a few months ago we would get one when the next major version was released but I don't see one anywhere.

    Thanks!

    opened by RaspberryTech01 14
  • Warning, could not find static directory for web resoures idm/auth/web - Only API and GRPC accesses will be available

    Warning, could not find static directory for web resoures idm/auth/web - Only API and GRPC accesses will be available

    Hi,

    Latest Cells Home edition. Ubuntu Bionic up-to-date, MariaDB etc.

    Have had little luck getting cells to run under the "pydio" user - I followed your guide to the letter, and I am a longtime web developer (superuser) so I know what I am doing... Have you tested your guide on Ubuntu Bionic? Or at all?

    I encountered a whole host of problems. Tried starting over just running it as root and not bothering with SSL. I finally get cells to bind to port 80 - but when visiting the frontend I just get a "File not found" message, from Caddy I presume.

    The cells startup log reveals:

    2018-08-16T20:07:09.341Z INFO Warning, could not find static directory for web resoures idm/auth/web - Only API and GRPC accesses will be available

    Is this beta software?

    opened by Kramerican 13
  • Unable to build with go 1.11

    Unable to build with go 1.11

    Here is the output of make dev using go 1.11.1:

    go build\
     -ldflags "-X github.com/pydio/cells/common.version=0.2.0\
     -X github.com/pydio/cells/common.BuildStamp=2018-01-01T00:00:00\
     -X github.com/pydio/cells/common.BuildRevision=dev"\
     -o cells\
     main.go
    # command-line-arguments
    github.com/pydio/cells/vendor/golang.org/x/crypto/blake2b.supportsAVX2: relocation target runtime.support_avx2 not defined
    github.com/pydio/cells/vendor/golang.org/x/crypto/blake2b.supportsAVX: relocation target runtime.support_avx not defined
    make: *** [Makefile:49: dev] Error 2
    

    It works perfectly with go 1.10.3.

    Maybe this issue could help: https://github.com/golang/go/issues/25098.

    opened by max-k 11
  • IE Compatibility Mode Windows Binary

    IE Compatibility Mode Windows Binary

    Hello, I have downloaded and installed the latest Windows Binary for the Pydio Cells. It works perfectly fine in Google Chrome. The company I am installing it in has IE defaulted to IE 7 for legacy pages. I know I need to add <meta http-equiv="X-UA-Compatible" content="IE=edge"> to the web files … but for the life of me I can’t find them the location on the computer. it is not in the appdata folder unless I am overlooking it. Can someone please help me out? The company wants to see it running in IE before they look into getting enterprise.

    opened by eccentricly 10
  • Mailer: Sender control feature, Default sender display name, fix

    Mailer: Sender control feature, Default sender display name, fix

    This PR will:

    • add a sender control feature to mailer to allow the admin to control how the from/envelope sender is used
    • add default sender display name
    • fix sender display name over written by login name

    The two additional features add configuration options on the mailer configuration page.

    The sender control feature adds 3 options:

    • User address (default and current behaviour)
    • User address with sender header (add Sender header using the default FROM address/name, use the default FROM address for envelope MAIL [automatically done by gomail])
    • Default address (use the default FROM address/name for From and MAIL)

    This changes have been manually tested using the SMTP engine.

    enhancement 
    opened by fajo-de 10
  • [BUG] Add LocalName parameter on SMTP mailer

    [BUG] Add LocalName parameter on SMTP mailer

    When selecting SMTP server, Cells can't send a mail, because Cells send localhost in EHLO command, some mail servers reject non-FQDN helo server name. Please add Dialer.LocalName in pydio.json and use it.

    opened by mzch 9
  • Time-consuming uploads break

    Time-consuming uploads break

    Hello, Pydio-Team I've been uploading a very large file - about 30 GBs. Pydio automatically splits them into smaller chunks and uploads them one by one.

    First I found myself unable to upload the file because the session kept closing while idling on my pydio-website.

    For that reason I tried to keep browsing through folders in order to keep the session alive. When doing so the upload keeps starting fron scratch again after some time.

    opened by manuth 9
  • Pydio Cells is not compatible with modern Reverse Proxys

    Pydio Cells is not compatible with modern Reverse Proxys

    I've played around a while, but it seems like pydio is not able to be accessible behind traefik reverse proxy and ssl offloading.

    Opening URL http://cloud.berndklaus.at:8080 in your browser. Please copy/paste it if the browser is not on the same machine.
    2018-09-11T22:02:11.204Z        INFO    [INFO] cloud.berndklaus.at - No such site at :8080 (Remote: 10.0.0.115, Referer: )
    

    I've used all possible combinations of the CELLS_BIND and CELLS_EXTERNAL Env Vars. Nothing did work. Traefik is basicly offloading ssl, it also redirects http to https. All other services work pretty well.

    Finally this solution worked so that i can connect through the proxy

          image: pydio/cells:latest
          restart: always
          volumes: ["static:/root/.config/pydio/cells/static/pydio", "data:/root/.config/pydio/cells/data"]
          environment:
            - CELLS_BIND=cloud.berndklaus.at:8080
            #- CELLS_EXTERNAL=cloud.berndklaus.at:8080
            - CELLS_NO_SSL=1
          networks:
            proxy:
              aliases:
                - cells
            default:
          deploy:
            replicas: 1
            labels:
              - "traefik.port=8080"
              - "traefik.docker.network=proxy"
              - "traefik.frontend.rule=Host:cloud.berndklaus.at"
              - "traefik.backend=cells"
              - "traefik.frontend.entryPoints=http,https"
    

    But then the install failes:

    2018-09-11T21:54:55.354Z ERROR pydio.grpc.gateway.proxy Could not run {"error": "cannot create storage without CA URL"}

    Setup is contiuing but i just receive "Bad Gateway" after.. The Documentation is not really saying alot about this...

    opened by Berndinox 9
  • On macOS 11.1 (Big Sur), Pydio Cells fails to start

    On macOS 11.1 (Big Sur), Pydio Cells fails to start

    On macOS 11.1 (Big Sur), Pydio Cells fails to start. Not tested on macOS 11.0.1 (Big Sur). Not tested on macOS 10.15.x (Catalina). It is OK on macOS 10.14.x (Mojave).

    CLI to start Pydio Cells:

    sudo --login -u cells -- sh -c 'export PATH=\"/usr/local/bin:$PATH\"; cd /Users/cells/Library/Application\ Support/Pydio/cells-bin/; ulimit -n 8192; ./cells start --log=debug'
    

    (Same result without my specific path export)

    Output (result of the CLI):

    2020-12-20T16:05:30.051+0100	DEBUG	nats	Starting nats-server version 1.3.0
    2020-12-20T16:05:30.052+0100	DEBUG	nats	Go build version go1.13.15
    2020-12-20T16:05:30.052+0100	DEBUG	nats	Git commit [not set]
    2020-12-20T16:05:30.052+0100	DEBUG	nats	Listening for client connections on 0.0.0.0:4222
    2020-12-20T16:05:30.052+0100	DEBUG	nats	Server id is q81LHaoh2gl3X8jgkAOz25
    2020-12-20T16:05:30.052+0100	DEBUG	nats	Server is ready
    2020-12-20T16:05:31.053+0100	DEBUG	nats	127.0.0.1:52166 - cid:1 - Client connection created
    2020-12-20T16:05:32.902+0100	DEBUG	nats	127.0.0.1:52166 - cid:1 - Client connection closed
    2020-12-20T16:05:34.258+0100	DEBUG	nats	127.0.0.1:52200 - cid:2 - Client connection created
    2020-12-20T16:05:34.259+0100	FATAL	Could not retrieve initial services list
    github.com/pydio/cells/common/log.Fatal
    	/ext-go/1/src/github.com/pydio/cells/common/log/log.go:277
    github.com/pydio/cells/common/registry.(*pydioregistry).maintainRunningServicesList
    	/ext-go/1/src/github.com/pydio/cells/common/registry/running.go:93
    github.com/pydio/cells/common/registry.(*pydioregistry).Init
    	/ext-go/1/src/github.com/pydio/cells/common/registry/registry.go:135
    github.com/pydio/cells/common/registry.Init
    	/ext-go/1/src/github.com/pydio/cells/common/registry/registry.go:88
    github.com/pydio/cells/cmd.initServices
    	/ext-go/1/src/github.com/pydio/cells/cmd/root.go:235
    github.com/pydio/cells/cmd.glob..func44
    	/ext-go/1/src/github.com/pydio/cells/cmd/start.go:164
    github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).execute
    	/ext-go/1/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:745
    github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).ExecuteC
    	/ext-go/1/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:846
    github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).Execute
    	/ext-go/1/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:794
    github.com/pydio/cells/cmd.Execute
    	/ext-go/1/src/github.com/pydio/cells/cmd/root.go:201
    main.main
    	/ext-go/1/src/github.com/pydio/cells/main.go:119
    runtime.main
    	/usr/local/go/src/runtime/proc.go:203
    2020-12-20T16:05:34.259+0100	DEBUG	nats	127.0.0.1:52200 - cid:2 - Client connection closed
    
    opened by malik-djelil 8
  • symlink doesn't work

    symlink doesn't work

    I upgraded from version 3.0.9 to version 4.0.4 (docker) Datasource pointing to a folder where there was a symlink to another folder stopped seeing files in this symlink, in the console writes pydio.grpc.data.sync.motto Empty Patch : nothing to do

    Docker mount read-only /archive/ext/moto <-> /mnt/user/bzteam/archive/

    /archive/ext # ls -la
    total 0
    drwxr-xr-x    1 1000     users            8 Nov 26 22:27 .
    drwxr-xr-x    1 root     root             6 Nov 26 22:28 ..
    drwxrwxrwx    1 1000     users           42 Jun 21 17:39 moto
    
    /data/common # ls -la
    total 0
    drwxrwxrwx    1 1000     users           66 Nov 26 22:36 .
    drwxr-xr-x    1 root     root            12 Nov 26 22:27 ..
    drwxr-xr-x    1 root     root           135 Nov 26 15:23 .minio.sys
    drwxrwxrwx    1 1000     users           62 Nov 24 16:34 files
    drwxr-xr-x    1 1000     users           45 Nov 26 22:49 motoa
    
    /data/common/motoa # ls -la
    total 4
    drwxr-xr-x    1 1000     users           45 Nov 26 22:49 .
    drwxrwxrwx    1 1000     users           66 Nov 26 22:36 ..
    -rw-r--r--    1 root     root            36 Nov 26 22:37 .pydio
    lrwxrwxrwx    1 1000     users           17 Nov 26 22:49 motol -> /archive/ext/moto
    
       "pydio.grpc.data.sync.motto": {
          "Name": "motto",
          "StorageConfiguration": {
            "folder": "/data/common/motoa",
            "nativeEtags": "true",
            "normalize": "false"
          },
          "ObjectsServiceName": "local3",
          "ObjectsBucket": "motoa",
          "ApiKey": "*****",
          "ApiSecret": "******"
        },
    
        "pydio.grpc.data.index.motto": {
          "dsn": "default",
          "tables": {
            "commits": "data_motto_commits",
            "nodes": "data_motto_nodes",
            "tree": "data_motto_tree"
          }
        },
    
    opened by leporel 0
  • Collabora Online (libre office) plugin wrong works with different domain

    Collabora Online (libre office) plugin wrong works with different domain

    In Collabora Online Plugin settings we can add different domain for document server, but front end component https://github.com/pydio/cells/blob/main/frontend/front-srv/assets/editor.libreoffice/res/js/editor.js do not use this params for url generation, instead it use https://github.com/pydio/cells/blob/5fba29c51e4e8f562e39e0ac765431f83a5aae9e/frontend/front-srv/assets/editor.libreoffice/res/js/editor.js#L53

    that's mean in result we get url without domain, which (by default) linked with current domain:

    <iframe style="..." src="/browser/dist/cool.html?host=wss://cloud.examle.com&amp;WOPISrc=https%3A%2F%2Fcloud.examle.com%2Fwopi%2Ffiles%2F2c...88b&amp;access_token=WOB...usteL8&amp;permission=edit"></iframe> 
    

    This is wrong if we use document server on different domain. I think it should something like this:

    const iframeUrl = `${configs.get("LIBREOFFICE_SSL") ? "https" : "http"}://${configs.get("LIBREOFFICE_HOST")}:${configs.get("LIBREOFFICE_PORT")}${configs.get("LIBREOFFICE_CODE_VERSION") === "v21" ? "/browser/dist/cool.html" : "/loleaflet/dist/loleaflet.html"}`;
    

    For fast fixing this problem, if you use Nginx, add redirection to right domain, while bug not fixed:

        location /browser/dist/cool.html {
            return 301 $scheme://document.server.domain.here.com$request_uri;
        }
    

    I think #379 the same.

    Actual for Pydio Cells version 3 and 4.

    opened by archekb 4
  • Cells-sync 0.9.2 doesn't trigger multipart uploads proprerly with a Cells v4 server and fails at 5GB using an S3 backend

    Cells-sync 0.9.2 doesn't trigger multipart uploads proprerly with a Cells v4 server and fails at 5GB using an S3 backend

    I'm running into troubles using big files with an S3-compatible storage backend, namely Wasabi. My uploads get discarded with the following error message if they weight more than 5GB:

    [ERROR] Cannot PutObject Your proposed upload size ‘11180389380’ exceeds the maximum allowed object size ‘5368709120’ for single PUT operation.
    

    Reading the Wasabi doc, 5GB seems to be the threshold where their S3 API is expecting multipart uploads rather than single PUT operations: https://wasabi-support.zendesk.com/hc/en-us/articles/115001684511-What-are-the-minimum-and-maximum-object-sizes-that-can-be-stored-in-Wasabi- (they actually recommend multipart starting at 100MB file sizes).

    I'm currently using Pydio Cells 4.0.0-rc5, in a Kubernetes setup described more in-depth here: https://forum.pydio.com/t/broken-setup-in-kubernetes-500-502-ws-xhr-errors/4691

    opened by jqueuniet 15
  • "Overwrite existing files" UI is unclear and breaks if modal is closed.

    image

    What would happen when we rename folders THEN conflicting files? I assume renaming the folder would mean there are no conflicts. So if there was a folder name conflict and we change it are we going to go from Folder/Text.txt to Folder(1)/Text(1).txt ?

    Options 2 and 3 make sense.

    I think there is an opportunity here for another option: Ignore/Skip existing files.

    Also currently there is no way to know what file/folder you are answering for in your upload queue.

    Lastly if you click outside of the dialog/modal, the upload is left in a pending state with no way to bring back the dialog. Clicking start on the queue will overwrite the files.

    opened by 1337cookie 0
  • Rewrite Host header for proxied connections to Collabora

    Rewrite Host header for proxied connections to Collabora

    My understanding of how Pydio works with Collabora is that the user browser will make a request to pydio.mydomain.com/loleaflet/dist/loleaflet.html which will be proxied by Pydio to the actual Collabora service collabora.mydomain.com. However my load balancer / reverse proxy shows that proxied request still uses pydio.mydomain.com in Host header, which is problematic for virtual host based proxies.

    Please rewrite the Host header to the actual Collabora host name configured.

    opened by ryansun96 1
Releases(v4.0.4)
  • v4.0.4(Nov 11, 2022)

    As a result of active testing and community reports, we continue to correct issues and improve v4.

    Important Bugfixes

    • New files detection on structured datasource (local FS) was partially broken
    • Fixed a possible concurrent map access during massive uploads
    • Refix sync task cancellation for long datasource resync
    • Appending query params to URL breaks public links

    Minor improvements

    • Exif rotation correct support for avatar pictures
    • Make sure binaries are not indexed by search engine
    • Improve share screen tabs display
    • Scheduler: much better log display and debugging level
    • Fixed Scp Put action (support for templates)

    Feature

    • Integrate Uppy.io to directly capture webcam/mic/screencast

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.3(Nov 3, 2022)

    This weekly release fixes glitches on v4 branch and introduces a couple of new features.

    Bugfixes

    • Important issue with non-ascii characters breaking headers
    • Issues with structured datasources and events
    • Various ETCD glitches when services are stopped or leases are lost (cluster mode)

    New

    • Interface libraries updates: pdfjs (better support of signed pdf), soundmanager (add flac support)
    • New parameter on flat datasources to automatically distribute files inside subfolder(s)
    • New filter types for log levels.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.2(Oct 27, 2022)

  • v4.0.1(Oct 18, 2022)

    Cells v4 is a major leap forward for clustered deployments. It features a brand-new microservices engine for unparalleled performance, and a new dependency management making it much easier to delegate core services to cloud standards.

    Pydio Cells 4.0 is fully cloud-ready

    To get cloud- and multi-node ready, we’ve retired our original microservices framework, which was complex and limiting, to use our own. Working from a clean slate, we developed a brand new, truly stateless instance of Cells 4.0 that decouples and externalizes storage and service layers to create an image that can easily be distributed and replicated.

    Cells 4.0’s new simplified core works in single-node as well as complex multi-node configurations – all the way from Raspberry Pi to Kubernetes clusters.

    Codebase Major Changes

    The V4 branch was a long-term development project that started with our desire to adopt Go Modules. This redesign led to a big reduction in our dependencies, a huge simplification of the architecture and, as a result, a lot of interesting features!

    The code now relies on Go 1.18+ and Go Modules, and the master branch is now main. The main dependencies are updated to more recent versions, including Caddy, Hydra and Minio, etc. We now make a better use of resources within a process by sharing servers (http|gRPC) between services. This greatly reduces the number of network ports used by Cells and it has a huge impact on performances.

    Resources

    Contributions

    This release comes with fully translated Brazilian version thanks to Claudio Ferreira and Japanese version thanks to Satoshi Yuza.

    If you want to help us and participate by adding translation to your language, it is really easy: just navigate to Pydio Cells project in Crowdin, create an account and get started!

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc7(Oct 12, 2022)

    New relase candidate for v4. Genaral Availability is really getting closer 🤞!

    • Fixing fork deregister
    • Scheduler: RPC error handling
    • Fix a few forgotten messages + almost 100% Brazilian thanks to @filhocf
    • Build ARM binaries from AMD build agent
    • Fix keystore permissions on Windows (upgrade v3 => v4)
    • Recover websocket handler errors (closed chan)
    • Fix missing uuid for hash copy
    • Scheduler: clean tasks/subscriber code, simplify ListJobs dao signature
    • Capture context cancelled while listing endpoints in sync, allowing to stop long indexation processes
    • Add mutexes on ACL internals
    • Monitor zaps slices / remove hard limit on roles listing (cherry pick from v3)
    • Avoid any login issue after upgrade by using a new local token name.
    • Improve README for docker/compose/ha

    Learn more about v4 here

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc6(Oct 6, 2022)

    New Release Candidate for v4.

    See previous release candidate RC5 for information about v4 major changes.

    Learn more about the new clustering approach in the updated Administration Guide. Currently a work-in-progress.

    This sprint was focused on cleaning the new APIs, cluster deployment glitches and fixing various bugs.

    • API: handle new path parameters vs. body parameters constraints implied by OpenAPI updates
    • Checks and warning on "public" address usage : finally use loopback as default for binding grpc and other internal services
    • Fix various users creations glitches (CLI)
    • Refactoring: clean use of deprecated ioutil package, refactor sync lib for better context/error handling
    • [Cluster] Recheck or implement TLS support on all external dependencies (mysql, etcd, nats, redis, mongo)
    • [Cluster] Fix Queue mechanism in Nats broker
    • [Cluster] Update docker-compose to use a dedicated minio node for storage

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc5(Sep 27, 2022)

    Release Candidate 5 for Cells v4

    Cells v4 is a major leap forward for clustered deployments. It features a brand-new microservices engine for unparalleled performance, and a new dependency management making it much easier to delegate core services (such as configs, registry, caches, etc.) to cloud standards.

    RC3, RC4, RC5

    We have released many packages since RC2 to validate and fix many glitches. This is really getting closer to stability !

    For developers, one important change occurred during the last weeks: we now rely on Go18 (tested on Go19) to build the code. All dependencies versions were bumped for security. This should not impact users or API consumers though.

    We also re-organized some CLI commands to make the hierarchy more consistent.

    Moving to Go modules at last

    The V4 branch was a long-term development project that started with our desire to adopt Go modules. Cells was written at a time when modules were not yet part of the language (we used the vendor folder...). This made the migration to modules complex: Go's auto-migration tool was not usable for us (it simply crashed), and we ended up recreating the code base from scratch using modules, re-adding our libraries and dependencies one by one.

    As expected, this redesign led to a big reduction in our dependencies, a huge simplification of the architecture and, as a result, a lot of interesting features!

    To make a long story short:

    • We got rid of the microservices framework we were using (Micro), regaining control of the gRPC layer.
    • We updated the main dependencies to their latest versions, including Caddy, Hydra and Minio.
    • We make a better use of resources within a process by sharing "servers" (http|gRPC) between "services". This greatly reduces the number of network ports used by Cells. This has a huge impact on performance, typically for single-node deployments.
    • These "servers" and "services" are much better managed and can be more easily started/stopped on different nodes, making cluster deployments easier than ever (see below).

    MongoDB as a drop-in replacement for all services based on on-file storages

    Historically we've been using BoltDB and BleveSearch and we like it. They are pure GO key/value stores and indexers and it allows Cells to provide full indexing functionality without external dependencies. By default, the search engine, activity stream or logs use these JSON document shops to provide rich, out-of-the-box functionality. But these stores are disk and memory intensive, and while they are suitable for small and medium-sized deployments, they create bottlenecks for large deployments.

    We therefore looked at alternatives for implementing new 'drivers' for the data abstraction layer of each of these services, and chose MongoDB as a feature-rich, scalable and indexed JSON document store. All services using BoltDB/Bleve as storage now offer an alternative MongoDB implementation, a migration path from one another, and the ability to scale horizontally drastically.

    File-based storage is still a very good option for small/medium instances, avoiding the need to manage another dependency, but the Cells installation steps will now offer to configure a MongoDB connection to avoid the need to migrate data in the long term. Note that Mongo does not replace MySQL storages, that DB is still required for Cells.

    Cluster Me Please!

    Cells was developed from day one as a set of microservices, but we had to face the fact that deploying Cells in a multi-node, highly available environment was extremely complex and almost nobody could really make it work... The v4 was the perfect time to tackle this problem!

    We took a step back, learned our lesson from v1 to v3, and looked closely at cloud-native DevOps best practices (yes K8s, we're looking at you). The main objective was: how to create a fully stateless instance of Cells (image, container, you name it...) that can be easily distributed and replicated.

    Similar to the move from BoltDB to Mongo, we implemented DAOs to decouple and externalize many layers, making Cells V4 finally cloud-ready. To achieve that without re-inventing the wheel, Cells V4 stands on the shoulders of giants :

    • ETCD for configs and services registry
    • NATS for message broadcasting (pub/sub)
    • REDIS for shared cache
    • MONGO for JSON documents
    • HASHICORP VAULT for secrets and certificates management

    Again, all these are optional and Cells can still be deployed as a standalone, dependency-free binary on a Rasperry Pi (even the older 32bits versions) !

    Migration and testing

    Single-node deployments

    Upgrade process is standard and should be straight-forward (and we would really love to hear from you on that). There are a couple of important notes during this upgrade :

    • Hydra JWKs will be regenerated in the DB, with effect of invalidating all existing authentication token. You will be logged out after upgrade, and if you are using Personal Access Tokens, you will have to regenerate new ones.
    • Cells Sites Bind URL should not use a domain name but should declare a binding PORT, eventually including the Network Interface IP. If you have connection issue after upgrade, make sure to edit sites (cells configure sites) to bind to e.g. 0.0.0.0:8080 instead of domain.name:8080

    Migrating Bolt/Bleve storages to Mongo

    Migrate from existing on-file storage to MongoDB using the following steps:

    • Install MongoDB, currently tested against version 5.0.X, prepare a Mongo database for cells data
    • Stop cells, as Bolt/Bleve files must not be opened by the application during the migration process
    • Use cells admin config db add command to configure a connection:
      • Setup connection using mongo connection string like mongodb://user:[email protected]:port/dbname
      • Accept prompt for using this connection as default document DSN
      • Accept prompt to perform data migration from existing bolt/bleve files to mongo. This can take some time.
    • Now restart Cells. You should see "Successfully pinged and connected to MongoDB" in the logs.
    • As search engine data are not migrated, you have to relaunch indexation on the pydio.grpc.search service using cells admin resync --service=pydio.grpc.search --path=/

    Now you should be good to go. Try searching for * in Cells search engine, you should have blazing fast results.

    Cluster deployments

    We will provide dedicated blog posts on this topic very soon. You can already have a look at this sample Docker Compose file that shows the required dependencies and how to specify their endpoints to Cells using environment variables.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc2(Jul 19, 2022)

    Release Candidate for Cells v4

    Cells v4 is a major leap forward for clustered deployments. It features a brand new microservices engine for unparalleled performance, and a new dependency management making it much easier to delegate core services (such as configs, registry, caches, etc.) to cloud standards.

    Moving to Go modules at last

    The V4 branch was a long-term development project that started with our desire to adopt Go modules. Cells was written at a time when modules were not yet part of the language (we used the vendor folder...). This made the migration to modules complex: Go's auto-migration tool was not usable for us (it simply crashed), and we ended up recreating the code base from scratch using modules, re-adding our libraries and dependencies one by one.

    As expected, this redesign led to a big reduction in our dependencies, a huge simplification of the architecture and, as a result, a lot of interesting features!

    To make a long story short:

    • We got rid of the microservices framework we were using (Micro), regaining control of the gRPC layer.
    • We updated the main dependencies to their latest versions, including Caddy, Hydra and Minio.
    • We make a better use of resources within a process by sharing "servers" (http|gRPC) between "services". This greatly reduces the number of network ports used by Cells. This has a huge impact on performance, typically for single-node deployments.
    • These "servers" and "services" are much better managed and can be more easily started/stopped on different nodes, making cluster deployments easier than ever (see below).

    MongoDB as a drop-in replacement for all services based on on-file storages

    Historically we've been using BoltDB and BleveSearch and we like it. They are pure GO key/value stores and indexers and it allows Cells to provide full indexing functionality without external dependencies. By default, the search engine, activity stream or logs use these JSON document shops to provide rich, out-of-the-box functionality. But these stores are disk and memory intensive, and while they are suitable for small and medium-sized deployments, they create bottlenecks for large deployments.

    We therefore looked at alternatives for implementing new 'drivers' for the data abstraction layer of each of these services, and chose MongoDB as a feature-rich, scalable and indexed JSON document store. All services using BoltDB/Bleve as storage now offer an alternative MongoDB implementation, a migration path from one another, and the ability to scale horizontally drastically.

    File-based storage is still a very good option for small/medium instances, avoiding the need to manage another dependency, but the Cells installation steps will now offer to configure a MongoDB connection to avoid the need to migrate data in the long term. Note that Mongo does not replace MySQL storages, that DB is still required for Cells.

    Cluster Me Please!

    Cells was developed from day one as a set of microservices, but we had to face the fact that deploying Cells in a multi-node, highly available environment was extremely complex and almost nobody could really make it work... The v4 was the perfect time to tackle this problem!

    We took a step back, learned our lesson from v1 to v3, and looked closely at cloud-native DevOps best practices (yes K8s, we're looking at you). The main objective was: how to create a fully stateless instance of Cells (image, container, you name it...) that can be easily distributed and replicated.

    Similar to the move from BoltDB to Mongo, we implemented DAOs to decouple and externalize many layers, making Cells V4 finally cloud-ready. To achieve that without re-inventing the wheel, Cells V4 stands on the shoulders of giants :

    • ETCD for configs and services registry
    • NATS for message broadcasting (pub/sub)
    • REDIS for shared cache
    • MONGO for JSON documents
    • HASHICORP VAULT for secrets and certificates management

    Again, all these are optional and Cells can still be deployed as a standalone, dependency-free binary on a Rasperry Pi (even the older 32bits versions) !

    Migration and testing

    Single-node deployments

    Upgrade process is standard and should be straight-forward (and we would really love to hear from you on that). There are a couple of important notes during this upgrade :

    • Hydra JWKs will be regenerated in the DB, with effect of invalidating all existing authentication token. You will be logged out after upgrade, and if you are using Personal Access Tokens, you will have to regenerate new ones.
    • Cells Sites Bind URL should not use a domain name but should declare a binding PORT, eventually including the Network Interface IP. If you have connection issue after upgrade, make sure to edit sites (cells configure sites) to bind to e.g. 0.0.0.0:8080 instead of domain.name:8080

    Migrating Bolt/Bleve storages to Mongo

    Migrate from existing on-file storage to MongoDB using the following steps:

    • Install MongoDB, currently tested against version 5.0.X, prepare a Mongo database for cells data
    • Stop cells, as Bolt/Bleve files must not be opened by the application during the migration process
    • Use cells admin config db add command to configure a connection:
      • Setup connection using mongo connection string like mongodb://user:[email protected]:port/dbname
      • Accept prompt for using this connection as default document DSN
      • Accept prompt to perform data migration from existing bolt/bleve files to mongo. This can take some time.
    • Now restart Cells. You should see "Successfully pinged and connected to MongoDB" in the logs.
    • As search engine data are not migrated, you have to relaunch indexation on the pydio.grpc.search service using cells admin resync --service=pydio.grpc.search --path=/

    Now you should be good to go. Try searching for * in Cells search engine, you should have blazing fast results.

    Cluster deployments

    We will provide dedicated blog posts on this topic very soon. You can already have a look at this sample Docker Compose file that shows the required dependencies and how to specify their endpoints to Cells using environment variables.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.9(Jul 11, 2022)

    This is a bugfix release for v3 branch.

    • Fix possible UX error when sharing a folder with users
    • Fix edge-cases on move from flat to structured datasource
    • Fix incorrect root node handling in specific cases (deny on personal files)
    • Fix regression to users with too many roles attached
    • Add CELLS_BROKER_TRYPUB environment variable for high-load systems
    • Backport SQL Meta Filtering from v4 branch for better performances

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.7(May 4, 2022)

    This release fixes small issues for the v3 branch.

    Bug fixed

    • CLI full-S3 configuration panic
    • Goroutine leak in GRPC gateway (sync)
    • Config wrongly saved when updating smtp password
    • Typo in environment variable (tls_key_file)
    • Versions files not properly removed from storage

    Cells Enterprise

    • 2FA plugin new configurations to force users to setup 2FA unless they cannot access the platform.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.6(Mar 22, 2022)

  • v3.0.5(Feb 28, 2022)

    Cells 3.0.5 fixes an issue with loginCI parameter for pydio.grpc.user micro-service (allowing case-insensitive login).

    Cells Enterprise Distribution 3.0.5 provides experimental support for SPNEGO/Kerberos authentication, new security policy condition types and Cells Flows anko script tools.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.4(Jan 31, 2022)

    This is release ships minor fixes for the following issues:

    • Wrong check when setting user metadata on readonly files
    • Adapt CollaboraOnline editor to support CODE new endpoints (version 21)
    • Datasource format migration for huge datasources: raise timeout limit, add a resume flag if copy is interrupted.
    • [ED] Fix roles creation for users dynamically created via External connectors (OAuth, OIDC, ect.).

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(Dec 7, 2021)

  • v3.0.2(Nov 29, 2021)

  • v3.0.1(Nov 9, 2021)

    First bugfix release for V3 branch.

    • Issue with CopyObject on Encrypted + Flat Datasource (data is ok but key has a wrong ref)
    • Fix auto SSL redirect for 0.0.0.0 binding case, support this for web installer
    • Fix admin-assigned roles manual ordering
    • 100% Italian Support (thanks to Italo Vignoli)
    • [Ent] LDAP/AD new configs (sync users only, anonymous bind)
    • [Ent] Fix status code for multipart PutObjectPart when quota reached (422)

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Oct 26, 2021)

    Cells V3 provides a new data source format that dramatically improves access speed. We’ve rethought our microservices deep in the core of the code to help streamline security implementation, supercharge searchability via new metadata, and make compliance monitoring and reporting easier.

    New Datasource Format

    An often-asked Pydio users requirement was to "keep the tree structure" of files visible on the storage (and modify these directly without going through Pydio). To achieve this, Cells datasource relies on a unidirectional synchronization between the storage and the internal index. It brings its share of issues and performance limitations when the number of files is getting high, and sometimes a "resync" of the datasource is required to fix index issues.

    Introducing a new datasource format, that keeps the tree structure only in Cells internal indexes, and stores files as a flat structure on the storage. This is more inline with the "object storage" design, and brings huge performance gains as no more "sync" is required to maintain the indexes. This is now the preferred format, unless a direct access to the files on the storage is necessary. The ability to recover the tree structure is guaranteed by tools providing import/export of the structure on-file.

    This new format is now applied to "internal" buckets previously used for storing thumbnails and versions, thus providing more flexibility, as they now appear as standard datasources (see Versioning below). Finally, S3 (and compatible) support is improved and Cells S3 gateway (exposing Cells files as an S3-compatible storage) was made more vanilla with the support of listBuckets request and better Content-Type extraction.

    UX

    Tons of bugfixes and small improvements were done in all areas of the GUI (JavaScript is now built on top of React 17). Files presentation now offer a new "Gallery" view perfect for displaying folders of photos ("masonry layout").

    Many new metadata types are available, with more meaningful fields for boolean, dates, integers, progress bars, etc... They are indexed and searchable and can be used in Cells Flows as well. The search interface has been fully redesigned for improved searchability, filling the whole screen and giving the ability to preview files from any workspace without leaving the search results view.

    Cells Flows new features

    Cells Flows jobs can now listen to many events, have dedicated conditional branches to handle them, and group similar jobs into one. For example, previous "thumbnails creation" and "thumbnails deletion" are now grouped into one job. In conjunction with the new metadata types, Cells Flows now allows the creation of advanced jobs such as Validation/Approval scenarios, including reminder, alerts and files tagging.

    Cells Convert Tools is a brand new Docker image that can be spawned on a dedicated server and used in conjunction with Cells Flows to generate thumbnails and PDF previews of most file formats. Check it out!

    Security & ACLs

    [ED] Authentication can now be hardened with DUO Security multi-factor service.
    [ED] New security policies permissions can be applied to disable specific actions (DELETE, DOWNLOAD, UPLOAD) and fine-tune permissions.
    Security fixes from the 2.2.X branch are reported.

    Redesigned versioning

    Now that the "versions" datasource uses the new flat storage standard, it is easier to shard versions on multiple locations, enable encryption, and many more. Versioning policies now provide a specific behaviour for handling revisions after the original file is definitely deleted. By default, they are moved inside a dedicated folder in the versions datasources, allowing administrators to easily find the last revision and restore it on behalf of a user.

    Scalability / Provisioning

    Performances are improved on many aspects, from the new datasource format to a redesign of the message bus that now does not require NATS anymore on a single-node deployment. Focus has been put on in-life maintenance of the system : housekeeping logs and activities, better log formats, caching, CPU and RAM consumption lowered.

    Installation can be more easily automatized with support of new fields in YAML/JSON configs to set multiple sites and custom configuration keys at startup.

    Contributions

    This release comes with a fully translated Português do Brasil version thanks to Claudio Ferreira (@filhocf).

    If you want to help us and participate by adding translation to your language, it is really easy: just navigate to Pydio Cells project in Crowdin, create an account and get started!

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-rc4(Oct 20, 2021)

  • v3.0.0-rc2(Oct 1, 2021)

  • v2.2.12(Sep 29, 2021)

  • v3.0.0-rc1(Sep 20, 2021)

    This is the first Release Candidate for Cells V3. As it names implies, this is not ready for production yet!

    It brings many new features, but intensive testing should focus on the new datasource format, as well as performing upgrades from previous versions.

    New Datasource Format

    A new datasource format is introduced, that keeps the tree structure only in Cells internal indexes, and stores files as a flat structure inside the storage. This is more inline with "object storage" design, and brings huge performance gains as no more synchronization is required to maintain these indexes. This is now the preferred format, unless a direct access to the files inside the storage is necessary.

    Notes

    • Existing datasources (where data is stored as structured files and folders) are not modified. Tooling is provided for migrating format between structured and flat, as well as for dumping a snapshot of the index directly inside the storage, enabling easy restoration of a flat datasource.
    • Internal buckets (used for storing thumbnails and versions) are now using this new format : this provides much more flexibility to the versioning feature, as these locations now appear as standard datasources.

    👉 Read more about "Flat" datasources in the up-coming documentation page (WIP).

    Other features (more info to come)

    UX, Metadata, Search

    • Tons of bugfixes and small improvements in all parts of the GUI. JavaScript is now built on top of React 17!
    • Files presentation now offer a new "Gallery" view that is perfect for displaying folders of photos ("masonry layout"). The search results interface has been fully redesigned, the chat view was improved, including an experimental support for video calls.
    • Many new metadata types are added, providing nice fields for boolean, dates, integers, progress bars, etc... They are indexed and searchable and can be used in Cells Flows as well.

    Perfs & provisioning

    • Single-node deployments do not start a NATS server anymore, all communications being transferred directly in-memory for the main process, and via gRPC for fork processes.
    • Focus has been put on providing housekeeping commands for logs and activities and overall CPU and RAM consumption are lower.
    • Installation can be more easily automatized with support of new fields in YAML/JSON configs.
    • S3 (and compatible) support is improved and Cells S3 gateway (exposing Cells files as an S3-compatible storage) was made more vanila with the support of listBuckets and better Content-Type extraction.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.9(Jul 2, 2021)

  • v2.2.8(Jun 2, 2021)

  • v2.2.7(May 19, 2021)

    This is a bugfix and security release for v2.2.

    • Security hardening for a specific user endpoint (could be brute-forced)
    • Fix some regression in personal data import from Pydio 8
    • Fix UX not showing "save" button on editable shared links (text files)
    • Improve emails layout, better mailer behaviour at restart, better i18n strings

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.6(Apr 20, 2021)

    Bugfixes and improvements on address book (pagination), sendmail (see below) and sharding.

    Sendmail translates a single line with a dot as an interruption command. If you are using this mailer, make sure to either configure it to ignore this configuration (see IgnoreDots). It is better to pass this as a static configuration, but it can also be done using runtime parameters. You can set them directly in Cells configuration file under the "defaults/sendmailParams" key (must be an array of strings).

    For example, binary path and custom parameters can be set as follow :

    {
      "defaults":{
        "sendmail":"/usr/sbin/sendmail",
        "sendmailParams":["-i"],
      "..."
      },
      "..."
    }
    

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.5(Apr 6, 2021)

  • v2.2.4(Apr 1, 2021)

    This release hardens indexes auto-healing and fixes various bugs and regressions.

    • Fixed performance issue when migrating huge setup
    • Fixed regression when binding registry to public IP
    • Fixed some notifications issues
    • Improve datasource indexes with conflicts detection and auto-fix when possible, new schema constraints and remove unused tables
    • Fix various jobs in scheduler : tasks purge, versions purge (lower frequency)
    • Prevent concurrency issue when saving roles with tons of ACLs in Console
    • [ED] Improve activities purge and DB size compaction
    • [ED] Visual indication of quota usage for end-users
    • [ED] Fix images annotations not randomly showing
    • [ED] Data sharding : improve template paths and users data deletion policies

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.3(Mar 10, 2021)

    This release fixes a couple of glitches in 2.2. On popular demand, it also comes with a new option for showing/hiding files extensions in the main list.

    Bugfixes:

    • Sendmail binary path not properly read from config (always using default).
    • Copy/Paste authentication (Out-Of-Band) for Cells Client could fail for some sites configuration
    • Mailer "From" configuration was broken when choosing "Always use default From/Name adress"
    • [ED] Branding tool settings could not save properly
    • [ED] CLI "tools" sub-commands were broken (unable to read local configurations)

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.2(Feb 18, 2021)

  • v2.2.1(Feb 17, 2021)

    A bugfix and security release for Cells 2.2 branch.

    Security

    • Hash the new "Personal Access Tokens" inside database
    • Fix content locking : possible manipulations could lead to file locked forever, readonly users could lock files via API
    • Fix public links custom hash

    Bugfixes / Improvements

    • Fix services start glitches
    • Fix vault issue when editing mailer configuration without changing the password
    • Fix Personal Access Token command parameters
    • Better move performance when target is a huge folder
    • [UX] Make "My Shares" dialog more user-friendly (tabs, scroll, filtering)

    Cells Enterprise

    • New SFTP service was not shown as running (although it was)
    • Group Tenancy introduces a "group admin" role allowing to edit users permissions inside a group.

    Upgrade is recommended. See Cells 2.2 release note for details about major release features.

    Change log

    You can find a summary of the change log here.

    Source code(tar.gz)
    Source code(zip)
Owner
Pydio
Open source file sharing platform. Contributors welcome, pydio/cells is the main server project.
Pydio
📕 twtxt is a Self-Hosted, Twitter™-like Decentralised microBlogging platform. No ads, no tracking, your content, your data!

twtxt ?? twtxt is a Self-Hosted, Twitter™-like Decentralised micro-Blogging platform. No ads, no tracking, your content, your data! Technically twtxt

Twt 505 Jul 26, 2021
Proof-of-concept SLSA provenance generator for GitHub Actions

SLSA GitHub Actions Demo A proof-of-concept SLSA provenance generator for GitHub Actions. Background SLSA is a framework intended to codify and promot

SLSA Framework 96 Nov 4, 2022
CNCF Jaeger, a Distributed Tracing Platform

Jaeger - a Distributed Tracing System Jaeger, inspired by Dapper and OpenZipkin, is a distributed tracing platform created by Uber Technologies and do

Jaeger - Distributed Tracing Platform 16.8k Nov 28, 2022
Micro is a platform for cloud native development

Micro Overview Micro addresses the key requirements for building services in the cloud. It leverages the microservices architecture pattern and provid

Micro 11.5k Nov 26, 2022
Cloud-native and easy-to-use application management platform | 云原生且易用的应用管理平台

Website • Documentation What is NEW! August 24, 2020 ,Rainbond 5.2 Stable version is officially released View Release Rainbond Introduction Cloud nati

好雨科技 3.6k Nov 23, 2022
goTempM is a full stack Golang microservices sample application built on top of the Micro platform.

goTempM is a full stack Golang microservices sample application built on top of the Micro platform.

null 30 Sep 24, 2022
Erda is an open-source platform created by Terminus to ensure the development of microservice applications.

Erda is an open-source platform created by Terminus to ensure the development of microservice applications.

Erda 2.4k Nov 21, 2022
A Micro-UTP, plug-able sanity checker for any on-prem JFrog platform instance

hello-frog About this plugin This plugin is a template and a functioning example for a basic JFrog CLI plugin. This README shows the expected structur

rdar 0 Dec 7, 2021
Istio - An open platform to connect, manage, and secure microservices

Istio An open platform to connect, manage, and secure microservices. For in-dept

null 0 Jan 5, 2022
An open platform to connect, manage, and secure microservices.

Istio An open platform to connect, manage, and secure microservices. For in-depth information about how to use Istio, visit istio.io To ask questions

Baalaji 0 Feb 6, 2022
A simple video hosting platform that enables people to share and view clips.

Project Clips Project Clips is a simple video hosting platform that enables people to share and view clips. Getting Started Using Docker Note: Make su

Joshua Benfield 13 Sep 26, 2022
Placeholder for the future project (lets-go-chat)Placeholder for the future project (lets-go-chat)

Placeholder for the future project (lets-go-chat)Placeholder for the future project (lets-go-chat)

null 0 Jan 10, 2022
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is the primary source for c

Mattermost 24.4k Nov 27, 2022
A GitHub CLI extension that displays collaboration-related information about a GitHub repository.

collab-scanner GitHub CLI extension A GitHub CLI extension that displays collaboration-related information on a repository. Install gh extension insta

Nicolas Kosinski 5 Nov 2, 2022
Svenska-yle-rss-content-fixer - Attach content to Svenska Yle RSS feeds

svenska-yle-rss-content-fixer This little tool attaches article content to the S

Mathias Fredriksson 2 Oct 4, 2022
Aboriginal Generics: the future is here!

Aboriginal Generics: the future is here! Inspired by this gem of an idea (click the image to go to the original comment): Installation go get github.c

Pavel Vasilev 151 Oct 3, 2022
🌳 📂 The utility displays a tree of directories and files(symlinks in future).

dirTree The utility displays a tree of directories and files. usage: dirTree [-f] How it works with directory, where I wrote this project for example

Hutiev Alexander 2 Aug 12, 2021
Hashing algorithms simplified (supports Argon2, Bcrypt, Scrypt, PBKDF2, Chacha20poly1305 and more in the future)

PHC Crypto Inspired by Upash, also implementing PHC string format Usage Currently there are two options of using this package: Import all Import speci

Reinaldy Rafli 23 Nov 27, 2022
Create production ready microservices mono repo pattern wired with Neo4j. Microservices for other languages and front end repos to be added as well in future.

Create Microservices MonoRepo in GO/Python Create a new production-ready project with backend (Golang), (Python) by running one CLI command. Focus on

GoChronicles 14 Oct 26, 2022
Welcome to the future of programming languages: OK?

OK? Try it out on the playground OK?'s mascot: Quentyn Questionmark. Programming Is Simple Again OK? is a modern, dynamically typed programming langua

Jesse Duffield 415 Nov 18, 2022