Why Choose Pydio Cells?
Key Features:
- • Enterprise-grade file sharing
- • Built in Go for high performance
- • Microservices architecture
- • Advanced workflow automation
- • Granular access controls
Self-Hosted Benefits:
- • Complete data ownership
- • Customizable security policies
- • LDAP/Active Directory integration
- • S3-compatible storage support
- • File versioning and audit logs
Prerequisites
Before getting started, ensure you have:
Server Requirements
- • RamNode VPS with 2+ CPU cores
- • 4GB RAM minimum (8GB for production)
- • Ubuntu 24.04 LTS installed
- • Domain name pointed to server IP
- • Root or sudo access
Network Requirements
- • Ports 80 and 443 open in firewall
- • DNS A record pointing to server
- • SSH access to your server
Initial Server Setup
Connect to your RamNode VPS via SSH and update system packages:
sudo apt update && sudo apt upgrade -ySet the correct timezone and ensure accurate time synchronization (critical for Pydio Cells authentication):
sudo timedatectl set-timezone America/New_York
sudo apt install -y chrony
sudo systemctl enable chrony⚠️ Important: Time synchronization is critical. Authentication issues often stem from clock drift between server and clients.
Create a Dedicated User
Pydio Cells should never run as root. Create a dedicated system user:
sudo useradd -m -s /bin/bash pydio
sudo passwd pydio💡 Security: Running services as non-root users limits potential damage from security vulnerabilities.
Install and Configure MariaDB
Pydio Cells requires MySQL or MariaDB as its database backend:
sudo apt install -y mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadbsudo mysql_secure_installationFollow the prompts to set a root password, remove anonymous users, disallow remote root login, and remove the test database.
sudo mysql -u root -p
-- Execute these SQL commands:
CREATE DATABASE cells CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'your_secure_password_here';
GRANT ALL PRIVILEGES ON cells.* TO 'pydio'@'localhost';
FLUSH PRIVILEGES;
EXIT;Configure System Limits
Pydio Cells requires a high number of open file descriptors. Configure the limits for the pydio user:
sudo nano /etc/security/limits.d/pydio.confAdd the following lines:
pydio soft nofile 65535
pydio hard nofile 65535Also configure systemd limits:
sudo mkdir -p /etc/systemd/system/user@.service.d/
sudo nano /etc/systemd/system/user@.service.d/limits.conf[Service]
LimitNOFILE=65535sudo systemctl daemon-reloadDownload and Install Pydio Cells
Switch to the pydio user and download the latest Pydio Cells binary:
sudo su - pydio
cd ~
# Download the latest stable release
wget -O cells https://download.pydio.com/latest/cells/release/{latest}/linux-amd64/cells
chmod +x cells
# Verify the binary works
./cells versionConfigure Pydio Cells
Run the interactive configuration wizard:
./cells configureDuring configuration, you'll be prompted for:
- Bind Address: Enter
0.0.0.0:443for HTTPS on the standard port - External URL: Enter your full domain URL (e.g.,
https://files.yourdomain.com) - TLS Configuration: Choose "Let's Encrypt" for automatic SSL certificates
- Database Connection:
- Host:
localhost - Port:
3306 - Database:
cells - User:
pydio - Password: Your secure password
- Host:
- Admin Account: Create your administrator username and password
Create a Systemd Service
Create a systemd service file to manage Pydio Cells:
exit # Return to your sudo user
sudo nano /etc/systemd/system/cells.serviceAdd the following content:
[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/home/pydio/cells
[Service]
User=pydio
Group=pydio
PermissionsStartOnly=true
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/home/pydio/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65535
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0
WorkingDirectory=/home/pydio
# Security hardening
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable cells
sudo systemctl start cells
# Check the service status
sudo systemctl status cells✅ Service Running: Pydio Cells is now managed by systemd and will start automatically on boot.
Configure the Firewall
If you're using UFW, allow the necessary ports:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reloadAccess the Web Interface
Open your web browser and navigate to your configured external URL (e.g., https://files.yourdomain.com). Log in with the administrator credentials you created during configuration.
🌐 First Login: Access your Pydio Cells instance at your configured domain and log in with your admin credentials.
Post-Installation Configuration
Maintenance and Monitoring
View Logs
# Monitor Pydio Cells logs using journalctl
sudo journalctl -u cells -f
# Or view logs directly
sudo su - pydio
./cells admin logsBackup Your Installation
# Backup the database
mysqldump -u pydio -p cells > cells_backup_$(date +%Y%m%d).sql
# Backup the data directory
tar -czvf cells_data_backup_$(date +%Y%m%d).tar.gz /home/pydio/.config/pydio/cells/Update Pydio Cells
sudo systemctl stop cells
sudo su - pydio
wget -O cells https://download.pydio.com/latest/cells/release/{latest}/linux-amd64/cells
chmod +x cells
exit
sudo systemctl start cells
# Alternatively, use the built-in update mechanism:
sudo su - pydio
./cells admin updateTroubleshooting
Congratulations!
You now have a fully functional Pydio Cells installation running on your RamNode VPS. This self-hosted solution gives you complete control over your document sharing infrastructure while providing enterprise-grade features for collaboration and security.
For Production Environments:
Consider upgrading to Pydio Cells Enterprise for advanced features like SSO integration, detailed audit logging, and priority support.
