Sign inSign up

pydio/cells

By pydio

•Updated 4 days ago

Pydio Cells is the future-proof self-hosted file sharing platform.

Image
Security
Content management system
76

1M+

pydio/cells repository overview

Homepage⁠ | 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 microservice architecture.

⁠Run as stand-alone container

Pydio Cells needs a MySQL/MariaDB Database with a privileged user⁠.

Launch a test instance with:

docker run -d --network=host pydio/cells

Enter your database credentials to finalise the configuration at https://localhost:8080⁠ and you are good to go.

If your server has a public IP address and no restriction on the chosen port (firewall...), your instance is also directly exposed at https://<YOUR-SERVER-IP-ADDRESS>:8080.

Before you go live, you probably want to configure persistent data in a docker volume. Assuming you also have a registered domain name (FQDN) for your server, you could go with:

FQDN=<Put Your FQDN here>
docker run -d  -v /home/user/cells_dir:/var/cells -e CELLS_SITE_BIND=:443 -e CELLS_SITE_EXTERNAL=https://$FQDN --network=host pydio/cells

Where:

  • -d: run in the background
  • -v /home/user/cells_dir:/var/cells: mount a local folder as Cells working directory
  • -e CELLS_SITE_BIND=:443: use standard reserved port for HTTPS (must be unused, typically by a webserver)
  • -e CELLS_SITE_EXTERNAL=https://$FQDN: (optional) explicitely declare your domain
  • --network=host: directly use the host network, to easily connect to the DB

⁠Run with docker-compose

Below is a vanilla configuration to run Pydio Cells with docker-compose:

version: '3.7'
services:

  cells:
    image: pydio/cells:latest
    restart: unless-stopped
    ports: ["8080:8080"]
    volumes:
      - cellsdir:/var/cells
      - data:/var/cells/data

  mysql:
    image: mysql:8
    restart: unless-stopped
    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]
    volumes:
      - mysqldir:/var/lib/mysql

volumes:
    data: {}
    cellsdir: {}
    mysqldir: {}

⁠Go further

⁠Commands

The default commands when running the image are:

  • cells configure if no installation is found
  • cells start otherwise

If you specify a command, it willd be executed instead, e.g:

docker run pydio/cells cells version
# or to log in a running container with id 5fe... 
docker exec 5fe /bin/sh
⁠Data layout

Below is a list of important files and data present in the volume:

  • /var/cells: main working dir
  • /var/cells/pydio.json: main configuration file
  • /var/cells/data: data
  • /var/cells/logs: logs
  • /var/cells/certs: certificate management
  • /var/cells/services: services information
⁠Environment variables

As previously seen, when launching the image, the start (or configure on 1st launch) command is called: it means that all flags are settable with their associated ENV var, using upper case and CELLS_ prefix.

Below is an extract of relevant ENV variables that you can pass to the container.

NameValueDefault
CELLS_SITE_BINDhost:port0.0.0.0:8080
CELLS_SITE_EXTERNALhttp(s)://url-to-access(none)
CELLS_SITE_NO_TLS1 = noTLS, 0 = TLS0
CELLS_WORKING_DIRpath in the container/var/cells
CELLS_LOGa valid log levelinfo
⁠More examples

We gather some relevant sample configuration⁠ in our main code base. Find the example that suits you and fine tune your setup.

⁠Cells Sync

The Cells Sync Desktop Application might require an additional port, for example if you run behind a reverse proxy that performs TLS termination. In such case:

  • First read this, Setup Cells Server for Cells Sync⁠
  • Make sure to start a container with this env set CELLS_GRPC_EXTERNAL
  • Expose the port that you previously set with CELLS_GRPC_EXTERNAL
⁠Example

Assuming that port 33060 is the port chosen for gRPC, the command should have those two additional parameters,

  • -e CELLS_GRPC_EXTERNAL=33060 (sets the env variable)
  • -p 33060:33060 (exposes the port)

The entire command should look like this:

docker run -d -e CELLS_SITE_EXTERNAL=192.168.0.172:8080 -e CELLS_SITE_BIND=192.168.0.172:8080 -e CELLS_GRPC_EXTERNAL=33060 -p 33060:33060 -p 8080:8080 pydio/cells

⁠Contributing

Please read CONTRIBUTING.md⁠ for details on our code of conduct, and the process for submitting pull requests to us.

⁠Versioning

We use SemVer⁠ for versioning and regularly deliver new releases⁠ that are also pushed here as named version. Our casual conventions for tags are:

  • latest is always the latest sable release and only change when we make a new release,
  • prepare-[version number] (e.g. prepare-4.0.2) are release candidates images that can come and go without warning in pre-release periods,
  • unstable is usually updated from the master at 2AM GWT each night.

You can also refer a given image by its version.

⁠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 cells-front⁠ code.

⁠License

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

Tag summary

Content type

Image

Digest

sha256:314dd8ad3…

Size

130.3 MB

Last updated

5 days ago

docker pull pydio/cells