Skip to content
Server Management

Setting Up Pydio Cells on Raspberry Pi 5/4/3 (Linux ARM64)

This documentation provides a comprehensive guide to setting up Pydio Cells on your Raspberry Pi 5 with the Linux ARM64 file. It includes instructions for preparing the environment, downloading and installing Pydio Cells, configuring storage, setting up SSL, and automating services.

3 min read
Free Server for Personal Use

Prerequisites

  1. Raspberry Pi 5 with 8GB RAM and desktop environment installed.
  2. Two external HDDs (1TB and 2TB).
  3. Cloudflare account.
  4. Domain name (e.g., example.com).

Setting Up Pydio Cells with Docker on Raspberry Pi 5 (Linux ARM64)

This documentation provides a step-by-step guide to setting up Pydio Cells using Docker on your Raspberry Pi 5 with the Linux ARM64 architecture. It includes instructions for preparing the environment, installing Docker, configuring Pydio Cells, setting up persistent storage, and automating services.


Step 1: Prerequisites

  1. Update Your System:

    sudo apt update && sudo apt upgrade -y
    
  2. Install Required Tools:

    sudo apt install curl wget unzip -y
    
  3. Verify a 64-bit Operating System: Ensure your Raspberry Pi is running a 64-bit OS:

    uname -m
    

    Look for aarch64 (indicating 64-bit).

  4. Install Docker:

    • Download and install Docker:
      curl -fsSL https://get.docker.com | sh
      
    • Add your user to the Docker group (optional):
      sudo usermod -aG docker $USER
      
      Log out and log back in to apply the group changes.
  5. Install Docker Compose:

    sudo apt install docker-compose -y
    

Step 2: Prepare Storage (External HDDs)

  1. Format the HDDs: Use EXT4 for Linux compatibility:

    sudo mkfs.ext4 /dev/sdX
    

    Replace sdX with your HDD identifier (find it using lsblk).

  2. Create Mount Points:

    sudo mkdir -p /mnt/hdd1 /mnt/hdd2
    
  3. Auto-Mount HDDs on Boot:

    • Identify the UUIDs:
      sudo blkid
      
    • Edit /etc/fstab:
      sudo nano /etc/fstab
      
      Add entries:
      UUID=3fe457c5-0892-44ef-9f8e-5753f49e0cba /mnt/hdd1 ext4 defaults 0 0
      UUID=80fabc25-61d6-4448-ba0b-9a627ec348b4 /mnt/hdd2 ext4 defaults 0 0
      
    • Mount all filesystems:
      sudo mount -a
      
  4. Verify Mount Points: Ensure the HDDs are correctly mounted at /mnt/hdd1 and /mnt/hdd2 after reboot:

    df -h
    

Step 3: Configure Docker for Pydio Cells

  1. Create a Docker-Compose File:

    mkdir ~/pydio-cells
    cd ~/pydio-cells
    nano docker-compose.yml
    

    Add the following:

    version: '3.7'
    
    services:
      mysql:
        image: mysql:8
        restart: unless-stopped
        environment:
          MYSQL_ROOT_PASSWORD: yourrootpasswd
          MYSQL_DATABASE: yourdb
          MYSQL_USER: youruser
          MYSQL_PASSWORD: yourpass
        volumes:
          - mysqldir:/var/lib/mysql
    
      cells:
        image: pydio/cells:latest
        restart: unless-stopped
        ports:
          - "8080:8080"
        environment:
          CELLS_WORKING_DIR: "/var/cells"
          CELLS_SITE_BIND: ":8080"
          CELLS_SITE_EXTERNAL: "https://dir.example.com"
        volumes:
          - cellsdir:/var/cells
          - datadir:/var/cells/data
    
    volumes:
      mysqldir:
      cellsdir:
      datadir:
    
  2. Start the Services:

    docker-compose up -d
    
  3. Verify Containers:

    docker ps
    

Step 4: Access and Configure Pydio Cells

  1. Open your browser and navigate to http://<raspberry-pi-ip>:8080.
  2. Follow the setup wizard:
    • Enter MySQL credentials (youruser/yourpass).
    • Configure admin account.
    • Set storage paths.

Step 5: Configure Dynamic DNS with Cloudflare

  1. Install DDClient:

    sudo apt install ddclient -y
    
  2. Configure DDClient for Cloudflare:

    sudo nano /etc/ddclient.conf
    

    Add:

    protocol=cloudflare
    use=web
    server=api.cloudflare.com/client/v4
    login=admin@example.com
    password=your_api_token
    zone=example.com
    dir.example.com
    
  3. Enable DDClient:

    sudo systemctl enable ddclient
    sudo systemctl start ddclient
    

Step 6: Set Up SSL with Let’s Encrypt

  1. Install Certbot:

    sudo apt install certbot -y
    
  2. Generate SSL Certificates:

    sudo certbot certonly --standalone -d dir.example.com
    
  3. Link SSL Certificates in Docker-Compose:

    • Update the docker-compose.yml file to use certificates:
      volumes:
        - /etc/letsencrypt/live/dir.example.com:/etc/ssl/certs
      
    • Restart Docker Compose:
      docker-compose down
      docker-compose up -d
      
  4. Automate SSL Renewal: Add the following to your crontab:

    sudo crontab -e
    

    Add:

    0 0 * * * certbot renew --quiet --deploy-hook "docker-compose restart"
    

Step 7: Final Checks

  1. Access Pydio Cells at https://dir.example.com.
  2. Verify SSL and Dynamic DNS are functioning correctly.
  3. Add users and configure permissions in the web interface.

Share article

Subscribe to my newsletter

Receive my case study and the latest articles on my WhatsApp Channel.