Giter VIP home page Giter VIP logo

pydio / cells Goto Github PK

View Code? Open in Web Editor NEW
1.7K 34.0 168.0 1012.45 MB

Future-proof content collaboration platform

Home Page: https://pydio.com

License: GNU Affero General Public License v3.0

Makefile 0.04% Go 45.38% JavaScript 41.96% HTML 3.04% CSS 8.00% Shell 0.05% Dockerfile 0.01% Rich Text Format 0.03% PHP 0.08% Less 1.21% Python 0.04% Procfile 0.02% Smarty 0.07% Mustache 0.08%
filesharing golang-application microservices

cells's People

Contributors

bsinou avatar bsinou-agent avatar c12simple avatar cdujeu avatar fajo-de avatar ghecquet avatar gwynethllewelyn avatar jabarkarim avatar jthabet avatar juneezee avatar pydio-bot avatar pydio-i18n avatar pydio-trusted avatar rossbeazley avatar tinymins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cells's Issues

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?

[UI] Remember default display option for the workspaces

In pydio 8 you could set a default display for a workspace (list, thumbs, details, etc...)
You can set it on the workspace but it is forbidden when you switch repositories or menu or at logout.

--
[Do not edit below]
#73
{gid:cells:411070018}

[Do not edit below]
#74
{gid:cells:411070749}

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

SIGSEGV on start when no interface with private IP present

Cells segfaults on start on a shared hosting service.

As analyzed by "mzch" on the forums: "cells checks whether there is an interface with a private IP or not around 47-49 in extractor.go. As a result, if the machine doesn’t have any private IPs like my VPS, func extractAddress() returns error, and func genSrv() returns nil, but func Init() in service.go does not check a returned value, so it causes Segmentation Fault. This is an obvious bug."

See original post here: https://forum.pydio.com/t/pydio-cells-not-working/1182/39

panic: runtime error: invalid memory address or nil pointer dereference

Hi.

I try since days to install pydio cells on my server (debian 9 & also Arch tested) but I always faced to this issue :

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xfb2a0a]

goroutine 96 [running]:
github.com/pydio/cells/vendor/github.com/micro/go-web.(*service).Init(0xc4246b5cc0, 0xc4245ee980, 0x7, 0x7, 0x24, 0x1)
	/opt/JetBrains/TeamCity/buildAgent/work/73afa92fb1a910b1/src/github.com/pydio/cells/vendor/github.com/micro/go-web/service.go:298 +0x31a
github.com/pydio/cells/common/service.WithWeb.func1.2(0x5f954c0, 0xc4247c4600, 0x0, 0x0)
	/opt/JetBrains/TeamCity/buildAgent/work/73afa92fb1a910b1/src/github.com/pydio/cells/common/service/service-web.go:83 +0x4ba
github.com/pydio/cells/common/service.(*service).Start(0xc4247c4600)
	/opt/JetBrains/TeamCity/buildAgent/work/73afa92fb1a910b1/src/github.com/pydio/cells/common/service/service.go:320 +0x20a
created by github.com/pydio/cells/cmd.glob..func20
	/opt/JetBrains/TeamCity/buildAgent/work/73afa92fb1a910b1/src/github.com/pydio/cells/cmd/services-start.go:147 +0xa3

Here is my installation :


$ ./cells install

Welcome to Pydio Cells Home Edition installation
Pydio Cells Home Edition will be configured to run on this machine. Make sure to prepare the following data
 - IPs and ports for binding the webserver to outside world
 - MySQL 5.6+ (or MariaDB equivalent) server access
 - PHP-FPM 7+ for running frontend
Pick your installation mode when you are ready.

✔ Command line (performed in this terminal)
Use the arrow keys to navigate: ↓ ↑ → ←
✔ 0.0.0.0:8080
✔ External Host (used to access this machine from outside world if it differs from Bind Host): 0.0.0.0:8080
✔ Disable SSL (not recommended)

## Database Connection
✔ TCP
✔ Database Hostname: localhost
✔ Database Port: 3306
✔ Database Name: cells
✔ Database User: pydio
✔ Database Password (leave empty if not needed): ***********
✔ Successfully connected to the database

## Frontend Configuration
✔ Php version detected: 7.2.8
✗ PHP-FPM Listen Address was detected at /run/php/php7.2-fpm.sock. Is it correct:
✔ Please enter the address where Php-FPM is listening (use host:port or /path/to/socket): /run/php/php7.2-fpm.sock
✔ Php-Fpm successfully connected
✔ Admin Login (leave passwords empty if an admin is already created): Thiphariel
✔ Admin Password: ***********
✔ Confirm Password: ***********

## Advanced Settings
✗ There are some advanced settings for ports and initial data storage. Do you want to edit them:

## Performing Installation
2018-08-08T07:44:19.050Z	INFO	Starting installation now	{"bindUrl": "http://0.0.0.0:8080"}
✔ Created main database
✔ Created default datasources
✔ Configuration of gateway services
✔ Deploying interface assets: this may take some time...
✔ Deploying interface assets: 10% done...
✔ Deploying interface assets: 20% done...
✔ Deploying interface assets: 30% done...
✔ Deploying interface assets: 40% done...
✔ Deploying interface assets: 50% done...
✔ Deploying interface assets: 60% done...
✔ Deploying interface assets: 70% done...
✔ Deploying interface assets: 80% done...
✔ Deploying interface assets: 90% done...
2018-08-08T07:44:41.794Z	INFO	Extracted 8404 files for a total size of 98169104
✔ Deploying interface assets: 100% done...
✔ Interface assets: Copied 8404 files
Writing file /home/pydio/.config/pydio/cells/static/pydio/data/plugins/boot.conf/bootstrap.json
✔ Created interface config files

✔ Installation Finished: please restart with './cells start' command

My setup is :

php 7.2.8
mariadb 10.3.8
pydio cells 1.0.1

Any idea ?
Thanks !

Intentions with PHP plugins under cells-front

Please, what is the intended future of the PHP plugins under cells-front (in particular search and metadata)? It seems to me that the idea is that computation and storage is to be handled by Go microservices. The UI is to be handled by PHP.

Do I understand right in this context that for instance the index.pydio plugin has been rewritten to handle only formulation of search queries, which it send to Go microservice that internally utilizes Bleve?

I'm asking because I see some divergence between comments/manifests and the actual implementation. So I'm checking if my understanding is correct.

Thanks.

Can docker starts with custom ssl certificate?

I'v got a valid ssl certificate, in interactive mode install I can input my own certificate file path. But I cannot pass it to docker when create a new container. Seems in docker we can only use self signed certificate or no-ssl.

Maybe we should create a parameter to pass certificate path when start docker?

Docker : run as non-root

For security reasons, is it possible to let us choose UID & GID for running Pydio Cells IN DOCKER, instead of running it as root user please ?

Email setup

2018-05-17T13:55:17.854-0400 ERROR pydio.grpc.tasks {"id":"","code":0,"detail":"consuming queue had 5 errors (successfully sent 0), errors were error while trying to send email: NewGomailMessage: cannot find FROM address. Will retry next time,\nerror while trying to send email: NewGomailMessage: cannot find FROM address. Will retry next time,\nerror while trying to send email: NewGomailMessage: cannot find FROM address. Will retry next time,\nerror while trying to send email: NewGomailMessage: cannot find FROM address. Will retry next time,\nerror while trying to send email: dial tcp: lookup my.smtp.server on no such host. Will retry next time","status":""}

All of this info is set and displays in both the frontend and through the cli.

Thanks.

Server returns emtpy body to put request

I'm curious if this is intentional: uploading a file via the s3 putObject method returns an emtpy body even though the uuid shows up on the server logs. Why doesn't it return the uuid so the client can modify the file later? Otherwise I can't find a way to get a file's uuid.

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

--
[Do not edit below]
#57
{gid:cells:406106025}

[Do not edit below]
#67
{gid:cells:410854373}

Cannot upload files with 1.2.5

Cannot upload files from the web interface with 1.2.5 (installed via docker-compose)

  • This is on a clean installation
  • I installed, created the keys to encrypt the workspaces, set encryption for all 3 workspaces, created a new user, and tried to upload any file as that user
  • I get no error in the logs while uploading. The last error, much earlier, is this:

cells | 2019-01-11T09:44:10.192Z ERROR pydio.rest.config Ladon blocked GET request at /config/ctl. Ladon Response: DefaultDeny:true

this authentication plugin is not supported on MacOS Mojave

On MacOS Mojave using go version 1.11 following installation instructions except the ./deps.sh if I run ./cells install and use the browser installer I get
screen shot 2018-11-26 at 1 17 23 pm

and with the command line installer I get :
2018-11-26T13:16:19.614-0700 FATAL Cannot connect to this database, please double ckeck your connection parameters and try again.

I have mySQL version: Server version: 8.0.12 Homebrew and it is running on port 3306 using root user without a password. Any ideas what's going on?

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

--
[Do not edit below]
#57
{gid:cells:406106025}

[Do not edit below]
#67
{gid:cells:410854373}

Path of the web folder in CentOS 7

I want to customize by myself Pydio but I can't find where the web folder is installed.
Also I can't customize throught pydio interface as admin.

pic

[Docker] Avoid having to use network "host" mode?

Hi!

The provided Docker compose file is the following one:

version: '3'
services:

    # Cells image with two named volumes for the static and for the data
    cells:
        image: pydio/cells:latest
        restart: always
        volumes: ["static:/root/.config/pydio/cells/static/pydio", "data:/root/.config/pydio/cells/data"]
        ports: ["8080:8080"]
        environment:
            - CELLS_BIND=localhost:8080
            - CELLS_EXTERNAL=localhost:8080
            - CELLS_NO_SSL=1

    # MySQL image with a default database cells and a dedicated user pydio
    mysql:
         image: mysql:5.7
         restart: always
         environment:
             MYSQL_ROOT_PASSWORD: P@ssw0rd
             MYSQL_DATABASE: cells
             MYSQL_USER: pydio
             MYSQL_PASSWORD: P@ssw0rd
         command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
         ports: ["3306:3306"]

    # PHP FPM image with the static named volume from the cells container
    php:
        image: pydio/cells-php-fpm:latest
        restart: always
        volumes: ["static:/root/.config/pydio/cells/static/pydio"]

volumes:
    static: {}
    data: {}

With the following note:

We use network mode host to facilitate the setup.

At first I had not seen the note, and I was not understanding why I could not make it work, since I never use the host networking mode. Then I realized that the php container was trying to talk to localhost:8080 instead of cells:8080, and authentication was failing.

Since the Docker host networking mode is not the default one, and since a certain range of people would prefer to avoid this mode, would you consider in the future a way to configure the containers to avoid using such mode altogether? For instance, by making sure the php container is aware it should talk to cells instead of localhost (if I understood this right)?

Thanks for your work on Pydio!

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

--
[Do not edit below]
#57
{gid:cells:406106025}

[Do not edit below]
#67
{gid:cells:410854373}

[Do not edit below]
#69
{gid:cells:410856441}

Docker container does not include keyring

The docker container does not include a keyring. It is then impossible to create and store an encryption key. This in turn prevents the user from using encryption!

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

using cells docker image behind a reverse proxy

Hi,

i am trying to setup cells behind a reverse proxy (using nginx-proxy which controls https itself). I have already multiple apps running in this configuration but can't get cells to work. I guess the problem is that (at least from what I can see in the logs) ssl is enabled by default inside the cells docker container - and thus refusing standard connections on http 8080.

Is there a possibility (configuration option for the docker image) to turn it off? I would like to take care of https by myself (with the reverse proxy).

docker compose part:

 cells:
    container_name: pydio-cells
    image: pydio/cells:latest
    restart: always
    environment:
      - VIRTUAL_HOST=pydio-cells.blabla.com
      - VIRTUAL_PORT=8080
      - CELLS_BIND=localhost:8080
    volumes:
      - /mnt/data/disk1/pydio-cells/data:/root/.config/pydio/cells/data
      - /mnt/data/disk1/pydio-cells/static:/root/.config/pydio/cells/static/pydio

docker image for cells: https://hub.docker.com/r/pydio/cells/

Docker install does not finish

Docker image version: pydio/cells:latest

I'm running cells via a compose file behind a Traefik proxy, and the initiation of the installation goes just fine. However, at the ending step, it never seems to finish. The logs on the cells container look like the below.

2018-06-28T14:04:43.701Z        INFO    pydio.grpc.workspace    Settings ACLS for Personal Files workspace
2018-06-28T14:04:43.781Z        INFO    pydio.grpc.data.sync.pydiods1   Create job to start datasource resync
2018-06-28T14:04:43.794Z        INFO    pydio.grpc.tasks        Run Job resync-ds-pydiods1 on timer event <nil>
2018-06-28T14:04:43.803Z        INFO    pydio.grpc.data.sync.cellsdata  Create job to start datasource resync
2018-06-28T14:04:43.814Z        INFO    pydio.grpc.tasks        Run Job resync-ds-cellsdata on timer event <nil>
2018-06-28T14:04:43.860Z        INFO    pydio.grpc.data.sync.personal   Create job to start datasource resync
2018-06-28T14:04:43.876Z        INFO    pydio.grpc.tasks        Run Job resync-ds-personal on timer event <nil>
2018-06-28T14:04:43.934Z        INFO    pydio.grpc.data.sync.cellsdata  Listing all S3 objects for path {"bucket": "cellsdata", "path": ""}
2018-06-28T14:04:43.943Z        INFO    pydio.grpc.data.sync.pydiods1   Listing all S3 objects for path {"bucket": "pydiods1", "path": ""}
2018-06-28T14:04:43.953Z        INFO    pydio.grpc.data.index.cellsdata Opening Indexation Session 353ec07b-7adc-11e8-84ab-0242ac120005
2018-06-28T14:04:43.959Z        INFO    pydio.grpc.data.index.pydiods1  Opening Indexation Session 353eeea9-7adc-11e8-811a-0242ac120005
2018-06-28T14:04:43.963Z        INFO    pydio.grpc.data.index.cellsdata Closing Indexation Session 353ec07b-7adc-11e8-84ab-0242ac120005
2018-06-28T14:04:43.968Z        INFO    pydio.grpc.data.index.cellsdata Sent all events event on topic
2018-06-28T14:04:43.978Z        INFO    pydio.grpc.data.index.pydiods1  Closing Indexation Session 353eeea9-7adc-11e8-811a-0242ac120005
2018-06-28T14:04:43.979Z        INFO    pydio.grpc.data.index.pydiods1  Sent all events event on topic
2018-06-28T14:04:43.997Z        INFO    pydio.grpc.data.sync.personal   Listing all S3 objects for path {"bucket": "personal", "path": ""}
2018-06-28T14:04:44.006Z        INFO    pydio.grpc.data.index.personal  Opening Indexation Session 35470dcf-7adc-11e8-834e-0242ac120005
2018-06-28T14:04:44.007Z        INFO    pydio.grpc.data.index.personal  Closing Indexation Session 35470dcf-7adc-11e8-834e-0242ac120005
2018-06-28T14:04:44.013Z        INFO    pydio.grpc.data.index.personal  Sent all events event on topic
2018-06-28T14:04:46.530Z        INFO    pydio.rest.auth started
2018-06-28T14:04:46.535Z        INFO    pydio.rest.share        started
2018-06-28T14:04:48.850Z        INFO    pydio.grpc.role Settings ACLS for EXTERNAL_USERS
2018-06-28T14:04:52.719Z        INFO    pydio.grpc.workspace    Denying access to Personal Files workspace for external users
2018-06-28T14:05:16.833Z        INFO    pydio.grpc.tasks        Run Job flush-mailer-queue on timer event Iso8601Schedule:"R/2012-06-04T19:25:16.828696-07:00/PT5M"
2018-06-28T14:08:16.845Z        INFO    pydio.grpc.tasks        Run Job internal-prune-jobs on timer event Iso8601Schedule:"R/2012-06-04T19:25:16.828696-07:03/PT10M"
2018-06-28T14:10:16.836Z        INFO    pydio.grpc.tasks        Run Job flush-mailer-queue on timer event Iso8601Schedule:"R/2012-06-04T19:25:16.828696-07:00/PT5M"

Also attaching a screenshot.
pydiocells_opt 1

Additionally, if I click into Advanced Options, the installation doesn't show these step-by-step stages at all, which is odd. If I don't click into Advanced Options, I see the step-by-step screenshot as shown above.

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: golang/go#25098.

Versioning with docker

Hi
I have installed Cells in a docker environment on a ubuntu host and the installation is up and running.
I have created a bind volume between a directory on the host and a directory in the container.
Then add this dir in the container as a datasource.
The files added to the dir on the host appear in the workspace, also changes to content in an existing file on the host appears in workspace.
But the timestamp of modification is NOT pickup by Cells, not even after re-syncing the datasource.
Timestamp in container is correct but not in workspace,
So the versioning is not working and I guess its caused by the fact that changed timestamp in container is not pickup up by Cells.
please investigate.
/Jonas

How do I connect this to an existing mariadb instance using the docker variant

How do I connect this to an existing mariadb instance using the docker variant?

I'm running a Nextcloud instance for testing purposes and want to use the same already existing Maria DB database in order to not have multiple database containers running.

I seem not to have found much about configuring this using docker images.

I'm using the normal docker run command for configuration purposes.

my Nextcloud configuration/ set is based on this: my openKB

I want to use the database created there with a simple docker run command, preferably with some equivalent environment variables in order to directly configure the Pydio installation?

My command so far:

docker run \
	--name=pydio_cloud \
	-p 127.0.0.1:9080:8080 \
	-v /var/lib/pydio:/root/.config/pydio/ \
	--network=basic-bridge \
	--link mariadb_database:mariadb \
	-e CELLS_BIND=localhost:9080 \
	-e CELLS_EXTERNAL=pydio.johnbehm.de:80 \
	-e CELLS_NO_SSL=1 \
	-e MYSQL_HOST=mariadb \
	-e MYSQL_ROOT_PASSWORD=XXXXX \
	-e MYSQL_DATABASE=cells \
	-e MYSQL_USER=pydio \
	-e MYSQL_PASSWORD=XXXXX \
	pydio/cells

A caddy reverse proxy that's running on the host machine then should do the rest, as multiple subdomains are managed by that one caddy server.

I'm not quite sure, whether any of those mysql variables actually have any influence on Pydio Cells.
edit:
looking at the entrypoint.sh these environment variables don't seem to influence the direct behavior.
best regards.

Cannot start pydio. Getting bad connection

I am trying to run pydio on an ubuntuon aws lightsail

Following the documentation on the website my installation when running throws this error and my terminal hangs
pydio.grpc.config Could not run { "error": "bad connection"}

Go Panic on install

Hi,
I've downloaded the home edition of Cells Linux v1.2.5 from your website and via wget, and both ./cells install and ./cells install-cli give a Go Panic.

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.7 (stretch)
Release: 9.7
Codename: stretch

What do you advise?

panic: runtime error: slice bounds out of range
goroutine 1 [running]:
github.com/pydio/cells/vendor/github.com/godbus/dbus.getSessionBusPlatformAddress(0x341aa93, 0x18, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/godbus/dbus/conn_other.go:30 +0x2ac
github.com/pydio/cells/vendor/github.com/godbus/dbus.getSessionBusAddress(0x0, 0x0, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/godbus/dbus/conn.go:96 +0xe5
github.com/pydio/cells/vendor/github.com/godbus/dbus.SessionBusPrivate(0x8, 0x69ffc10, 0xc4222fd508)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/godbus/dbus/conn.go:101 +0x22
github.com/pydio/cells/vendor/github.com/godbus/dbus.SessionBus(0x0, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/godbus/dbus/conn.go:73 +0xad
github.com/pydio/cells/vendor/github.com/zalando/go-keyring/secret_service.NewSecretService(0x7f2e03181000, 0x0, 0xc4222fd5a0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/zalando/go-keyring/secret_service/secret_service.go:50 +0x26
github.com/pydio/cells/vendor/github.com/zalando/go-keyring.secretServiceProvider.Get(0x3409e57, 0x13, 0x33f887b, 0xe, 0x0, 0x0, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/zalando/go-keyring/keyring_linux.go:78 +0x39
github.com/pydio/cells/vendor/github.com/zalando/go-keyring.Get(0x3409e57, 0x13, 0x33f887b, 0xe, 0x3, 0xc420056070, 0xc420056000, 0xc4200d21d8)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/zalando/go-keyring/keyring.go:32 +0x61
github.com/pydio/cells/common/crypto.GetKeyringPassword(0x3409e57, 0x13, 0x33f887b, 0xe, 0x0, 0x98, 0x3185220, 0xc4234681e0, 0x100000000000000, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/crypto/keyring.go:33 +0x56
github.com/pydio/cells/common/config/vault.(*VaultSource).initMasterPassword(0xc4233bfcc0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/config/vault/source.go:152 +0xe7
github.com/pydio/cells/common/config/vault.NewVaultSource(0xc422e0abd0, 0x30, 0xc422e0ac00, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/config/vault/source.go:51 +0x19d
github.com/pydio/cells/common/config.Vault.func1()
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/config/secrets.go:47 +0x398
sync.(*Once).Do(0x8b451e0, 0x69fdd78)
	/usr/local/go/src/sync/once.go:44 +0xbe
github.com/pydio/cells/common/config.Vault(0xc4233eb050, 0x2be8440)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/config/secrets.go:28 +0x39
github.com/pydio/cells/common/config.Set(0x2be8440, 0xc423444110, 0xc423442b00, 0x2, 0x2)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/config/vars.go:150 +0x183
github.com/pydio/cells/cmd.glob..func18(0x8967ca0, 0x8b45110, 0x0, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/cmd/install-cli.go:165 +0x7bc
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).execute(0x8967ca0, 0x8b45110, 0x0, 0x0, 0x8967ca0, 0x8b45110)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:760 +0x2c1
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x8967320, 0x1, 0x1, 0x69fe570)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:846 +0x30a
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).Execute(0x8967320, 0xc4200b4058, 0x0)
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:794 +0x2b
github.com/pydio/cells/cmd.Execute()
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/cmd/root.go:196 +0x36
main.main()
	/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/main.go:111 +0x6a

PHP-FPM detection in Docker image

Hello...

Trying to install from the Docker image, it appears PHP-FPM is not getting detected properly, yet it is installed:

mariadb phpmyadmin 4 8 0 1 2018-05-21 17-09-25

Container created with:

docker run -it -d -t \
  --name Cells  \
  --net DockerLocal \
  -v /storage/docker/cells:/home/cells/.config/pydio/cells/ \
  -e "CELLS_BIND=192.168.2.2:8080" \
  -e "CELLS_EXTERNAL=192.168.2.2:8080" \
  -p 8080:8080 \
  pydio/cells

DockerLocal is just a local network I have w/ MariaDB and some other private services.

[UI] Remember default display option for the workspaces

In pydio 8 you could set a default display for a workspace (list, thumbs, details, etc...)
You can set it on the workspace but it is forbidden when you switch repositories or menu or at logout.

--
[Do not edit below]
#73
{gid:cells:411070018}

Quick start feedback

Hi,

As suggested by @cdujeu I'm giving a try to pydio/cells but I have some issue, mostly concerning the documentation. I'm using CentOS 7 up-to-date.

First, the fact that $GOPATH is mandatory even if the path is the default one. Official GO documentation says that GOPATH is not mandatory if you use ~/go. But some of the scripts from pydio/cells (maybe just the deps.sh I don't remember) use $GOPATH.

Also git has to be installed. Maybe it's obvious but on production environment git is not welcome. So I had to install it. Not sure it was in the documentation.

I also had to fix a path in the deps.sh script. Line 31

- mv go-os $GOPATH/src/github.com/pydio/go-os/
+ mv go-os $GOPATH/src/github.com/pydio

Error was that $GOPATH/src/github.com/pydio/go-os/ doesn't exist. So I guess it's just the trailing /

Mariadb should at least supports FULLTEXT indexes. At least that what I thought but I still have problem at first start when cell is trying to create some tables:

2018-05-24T11:14:48.032Z	ERROR	pydio.grpc.policy	Failed to init DB provider	{"error": "Could not migrate sql schema, applied 0 migrations: Error 1214: The used table type doesn't support FULLTEXT indexes handling 3", "errorVerbose": "Error 1214: The used table type doesn't support FULLTEXT indexes handling 3\nCould not migrate sql schema, applied 0 migrations\ngithub.com/pydio/cells/vendor/github.com/ory/ladon/manager/sql.(*SQLManager).CreateSchemas\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/ory/ladon/manager/sql/manager_sql.go:69\ngithub.com/pydio/cells/idm/policy.(*sqlimpl).Init\n\t/root/go/src/github.com/pydio/cells/idm/policy/sql.go:65\ngithub.com/pydio/cells/common/service.newDBProvider.func1\n\t/root/go/src/github.com/pydio/cells/common/service/db.go:51\ngithub.com/pydio/cells/vendor/github.com/micro/go-micro.(*service).Start\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/micro/go-micro/service.go:98\ngithub.com/pydio/cells/vendor/github.com/micro/go-micro.(*service).Run\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/micro/go-micro/service.go:147\ngithub.com/pydio/cells/common/service.(*service).Start.func1\n\t/root/go/src/github.com/pydio/cells/common/service/service.go:323\nruntime.goexit\n\t/usr/lib/golang/src/runtime/asm_amd64.s:2361"}
2018-05-24T11:14:48.032Z	ERROR	pydio.grpc.policy	Could not run 	{"error": "Could not migrate sql schema, applied 0 migrations: Error 1214: The used table type doesn't support FULLTEXT indexes handling 3", "errorVerbose": "Error 1214: The used table type doesn't support FULLTEXT indexes handling 3\nCould not migrate sql schema, applied 0 migrations\ngithub.com/pydio/cells/vendor/github.com/ory/ladon/manager/sql.(*SQLManager).CreateSchemas\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/ory/ladon/manager/sql/manager_sql.go:69\ngithub.com/pydio/cells/idm/policy.(*sqlimpl).Init\n\t/root/go/src/github.com/pydio/cells/idm/policy/sql.go:65\ngithub.com/pydio/cells/common/service.newDBProvider.func1\n\t/root/go/src/github.com/pydio/cells/common/service/db.go:51\ngithub.com/pydio/cells/vendor/github.com/micro/go-micro.(*service).Start\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/micro/go-micro/service.go:98\ngithub.com/pydio/cells/vendor/github.com/micro/go-micro.(*service).Run\n\t/root/go/src/github.com/pydio/cells/vendor/github.com/micro/go-micro/service.go:147\ngithub.com/pydio/cells/common/service.(*service).Start.func1\n\t/root/go/src/github.com/pydio/cells/common/service/service.go:323\nruntime.goexit\n\t/usr/lib/golang/src/runtime/asm_amd64.s:2361"}

For my problem with pydio.grpc.tasks it's because it try to use $HTTP_PROXY to connect to itself (it seems). If I remove that env variable it doesn't occur anymore.

Also the readme points to the wiki, for more installation instructions, but the wiki says it's deprecated. Maybe a wrong link, idk.

It seems also that if I try the ./cells install and choose to do the setup from browser, it doesn't start any daemon listening on the indicated port (8080).
It works if I choose the setup from the CLI/Terminal. Except that if I choose 0.0.0.0:8080 because I want cells to listen an all interface, the HTTP to HTTPS auto redirects use that IP litterally so in my browser I'm redirected to https://0.0.0.0:8080 which of course is not working.

I hope this will help.

Best regards,
Edouard

File rename not showing in webui (v1.2.5-docker)

Hello,

I'm having a very serious issue with my Pydio Cells instance that make it unusable:
I made a video of the problem so you can better understand what is happening : GUI is not up to date with filesystem (showing the filename of the previous rename instead of the actual one) !
=> https://youtu.be/3tw_IdYIhSk

My environment specs:

  • Physical server + Docker
  • CPU = Intel i5-2300 (4 x 2.80GHz)
  • RAM = 16 Gb DDR3
  • Storage = 2 Tb SATA
  • OS = Debian 9.7 (up to date 2019-02-15)
  • MariaDB = 10.3.12-MariaDB
  • Pydio = 1.2.5 (Docker)
  • Docker = 18.09.2
  • Reverse-proxy : Haproxy

Server logs :

2019-02-15T09:19:02.092Z        INFO    pydio.rest.tree Got CreateNodes Request {"request": {"Nodes":[{"Path":"personal-files/test/test.txt","Type":1}]}}
2019-02-15T09:19:04.361Z        INFO    pydio.grpc.data.sync.personal   CreateNode      {"node": "Uuid:\"77f84ad9-37e7-492a-b696-51dacba8cc48\" Path:\"xxxxxx/test/test.txt\" Type:LEAF Size:1 MTime:1550222342 Mode:511 Etag:\"7215ee9c7d9dc229d2921a40e899ec5f\" "}
2019-02-15T09:19:12.060Z        INFO    pydio.rest.jobs Creating copy/move job  {"paths": ["personal/xxxxxx/test/test.txt"], "target": "personal/xxxxxx/test/test1.txt"}
2019-02-15T09:19:12.128Z        INFO    pydio.grpc.tasks        Run Job copy-move-c1aa1b8f-3102-11e9-9d48-0242ac110003 on timer event <nil>
2019-02-15T09:19:13.219Z        INFO    pydio.grpc.data.sync.personal   MoveNode        {"oldPath": "/xxxxxx/test/test.txt", "newPath": "xxxxxx/test/test1.txt"}
2019-02-15T09:19:23.832Z        INFO    pydio.rest.jobs Creating copy/move job  {"paths": ["personal/xxxxxx/test/test1.txt"], "target": "personal/xxxxxx/test/test2.txt"}
2019-02-15T09:19:23.902Z        INFO    pydio.grpc.tasks        Run Job copy-move-c8ae5524-3102-11e9-9d48-0242ac110003 on timer event <nil>
2019-02-15T09:19:24.993Z        INFO    pydio.grpc.data.sync.personal   MoveNode        {"oldPath": "/xxxxxx/test/test1.txt", "newPath": "xxxxxx/test/test2.txt"}
2019-02-15T09:19:37.826Z        INFO    pydio.rest.jobs Creating copy/move job  {"paths": ["personal/xxxxxx/test/test2.txt"], "target": "personal/xxxxxx/test/test3.txt"}
2019-02-15T09:19:37.910Z        INFO    pydio.grpc.tasks        Run Job copy-move-d105d35e-3102-11e9-9d48-0242ac110003 on timer event <nil>
2019-02-15T09:19:38.984Z        INFO    pydio.grpc.data.sync.personal   MoveNode        {"oldPath": "/xxxxxx/test/test2.txt", "newPath": "xxxxxx/test/test3.txt"}
2019-02-15T09:19:49.447Z        INFO    pydio.rest.jobs Creating copy/move job  {"paths": ["personal/xxxxxx/test/test3.txt"], "target": "personal/xxxxxx/test/test4.txt"}
2019-02-15T09:19:49.534Z        INFO    pydio.grpc.tasks        Run Job copy-move-d7f324b2-3102-11e9-9d48-0242ac110003 on timer event <nil>
2019-02-15T09:19:50.624Z        INFO    pydio.grpc.data.sync.personal   MoveNode        {"oldPath": "/xxxxxx/test/test3.txt", "newPath": "xxxxxx/test/test4.txt"}

At the end of the video the test.txt file is:

  • test4.txt on the filesystem (good)
  • test3.txt on the webui (wrong)

I tried to re-sync datasource and I'm still in the same incoherent situation after.

Please help me dealing with this issue.

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

Workspace-specific plugin params

Excellent job with Pydio Cells. I'm trying to figure out how to port my existing plugin for advanced metadata that I have been developing for Pydio 8. I relied to a great extent on the ability of a plugin to specify workspace-specific settings. This is the <param> under <serverSettings>. I see that the plugins in cells-front still have those parameters, however I can't find a way to set the in the GUI. Am I overlooking anything? Or the workspace-specific plugin settings were removed?

Thank you.

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...

Cannot build on linux/i686 (32bits)

On master and 1.2.1, I get this error in the "go build" step when I try to build using "make":

vendor/github.com/pydio/minio-srv/vendor/google.golang.org/api/transport/http/dial.go:30:2: no buildable Go source files in /home/pydio/.go/src/github.com/pydio/cells/vendor/github.com/pydio/minio-srv/vendor/google.golang.org/api/transport/http/internal/propagation Makefile:39: recipe for target 'main' failed make: *** [main] Error 1

Cells List: numerical order is not sorted as it should be

For instance i created 100 cells, each named cells-N, N is [1 to 100].
The expected behavior should order them such as 1,2,3,4,5,6,7,8,9,10,11,....

We also should add a Filter component to quickly search for a Cell if there are many of them.

Is MariaDB 10.1 supported on Debian 9?

Is it supported to install Pydio on Debian 9 with MariaDB 10.1 (the version available in Debian repos)?
In the Debian page of the install guide it's stated "MariaDB (v10.1 or higher)", but in the requirement page of the same guide it's stated "MariaDB version 10.2 and above."

Allow using Hostname in PeerAddress

There are several cases where Docker doesn't allow a static IP; for example when running swarm mode, or when using Kubernetes.

Each container instance that is started gets a dynamic IP, and this conflicts with the need to specify a PeerAddress IP in /root/.config/pydio/cells/pydio.json, for example:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "10.0.1.229",

Docker does a great job of resolving the container's hostname, so this would work nicely if we could instead specify the hostname:

"pydio.grpc.data.index.cellsdata": {
  "PeerAddress": "cells",

Note that I'm currently using a workaround of overriding the start command in the docker compose file, but this feels very ugly, and a bit fragile:

  cells:
    image: pydio/cells:latest
    command: [ '/bin/sh', '-c', 'echo `tail -1 /etc/hosts | cut -f 1` > /home/ip.txt; sed -i "/PeerAddress/ s/: .*/: \"`cat /home/ip.txt`\",/g" /root/.config/pydio/cells/pydio.json; exec /bin/docker-entrypoint.sh cells start' ]

File shared with cell can be dragged into root folder

Pydio Cells 1.0.4 2018-09-07 (btw. why can't I select and copy text from the about dialog?)

Running in docker containers created by your docker-compose example config, on top of Ubuntu 16.04.5 LTS derivate

Steps to reproduce:

  1. Create new empty cell without adding users to share it with
  2. Upload a file to Personal Files workspace
  3. Select the file and go to Share
  4. Choose Add to cell... and select the cell you created before, press save
  5. Go to the cell

Unexpected behaviour 1:

  • The file has been added as a root folder, instead of inside the existing root folder

Steps to reproduce:
6. Drag the file inside the root folder of the cell

Unexpected behaviour 2:

  • The file is renamed with a hash prefix, e.g. "myfile.txt" is changed to "cd5faf34-myfile.txt"

Unexpected behaviour 3:

  • The file is removed from the Personal Files workspace (i.e. where you shared it)

Steps to reproduce:
7. Create one more empty cell
8. On the file you moved into the first cell, select Share
9. Choose Add to cell... and select both the cells you have created
10. Go to the second cell
11. Move the file into the cell's root folder

Unexpected behaviour 4:

  • The file is renamed with an additional hash prefix (not as unexpected this time)

Unexpected behaviour 5:

  • The file is NOT removed from the first cell (where you shared it) this time. It still exists as a multiple root folder, but with the new longer name

Unexpected behaviour 6:

  • The file is not moved in the second cell (where you did the drag and drop) either. It exists both as a multiple root and inside the cell's actual root folder

I guess (1) could be intended behaviour and just seems a bit unintuitive to me. Maybe it's because the system calls it a "root folder" despite being a file and not a folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.