Deploying Cells
Introduction
Pydio Cells is a modern, open-source document management and file sharing platform designed for enterprises and teams that need secure, self-hosted collaboration tools. Built with Go and featuring a microservices architecture, Cells provides powerful features including file synchronization, versioning, collaborative editing, fine-grained access controls, activity streams, and enterprise-grade security. It serves as a robust alternative to proprietary solutions like Dropbox, Google Drive, or SharePoint, giving organizations complete control over their data.
Deploying Pydio Cells on Klutch.sh provides a production-ready, scalable infrastructure with automated Docker deployments, persistent storage for your files and databases, secure environment variable management, and automatic SSL certificate provisioning. Whether you’re building an internal document repository, team collaboration workspace, client portal, or enterprise content management system, Klutch.sh simplifies the deployment process and ensures your Cells instance is always available and performant.
This comprehensive guide walks you through deploying Pydio Cells on Klutch.sh using a Dockerfile, configuring persistent volumes for data retention, setting up databases (MySQL or PostgreSQL), managing environment variables for security, and implementing production best practices for scalable file sharing and collaboration.
Prerequisites
Before you begin deploying Pydio Cells on Klutch.sh, ensure you have:
- A Klutch.sh account (sign up here)
- A GitHub repository for your Cells deployment configuration
- Basic understanding of Docker containers and file system permissions
- (Recommended) A MySQL or PostgreSQL database instance for production use
- Access to the Klutch.sh dashboard
Understanding Pydio Cells Architecture
Pydio Cells consists of several key components that work together to provide comprehensive file management:
- Web Interface: Modern React-based frontend for file browsing, uploads, and collaboration
- API Gateway: RESTful API and gRPC services for all backend operations
- Storage Services: Handle file storage, versioning, and metadata management
- Database: MySQL or PostgreSQL for storing metadata, permissions, and configurations
- Search Engine: Built-in Bleve search for fast file and content discovery
- Authentication: Supports LDAP, OAuth2, SAML, and built-in user management
- Sync Client: Desktop and mobile clients for offline access and synchronization
When deployed on Klutch.sh, Cells automatically detects your Dockerfile and builds a container image. The platform manages traffic routing, SSL certificates, and provides persistent storage options for your files and database.
Project Structure
A minimal repository structure for deploying Pydio Cells on Klutch.sh:
cells-deployment/├── Dockerfile├── .dockerignore├── .gitignore├── README.md└── pydio.env.exampleThis simple structure allows Klutch.sh to automatically detect and build your Cells container. The official Pydio Cells Docker image comes pre-packaged with all necessary components.
Getting Started: Sample Code and Installation
Creating Your Deployment Repository
-
Initialize Your Repository
Create a new directory and initialize it as a Git repository:
Terminal window mkdir cells-deploymentcd cells-deploymentgit init -
Create .gitignore File
Create a
.gitignorefile to exclude sensitive and unnecessary files:.env.DS_Storenode_modules/data/logs/*.log -
Create .dockerignore File
Create a
.dockerignorefile to exclude files from Docker builds:.git.gitignoreREADME.md.envdata/logs/ -
Initialize GitHub Repository
Push your repository to GitHub:
Terminal window git add .git commit -m "Initial Cells deployment setup"git remote add origin https://github.com/YOUR_USERNAME/cells-deployment.gitgit push -u origin main
Sample Dockerfile
Create a Dockerfile in your repository root. Klutch.sh will automatically detect this file and use it for deployment.
Option 1: Basic Dockerfile (Quick Start)
FROM pydio/cells:latest
# Expose the default Cells portEXPOSE 8080
# The official image includes initialization scriptsCMD ["cells", "start"]Option 2: Production Dockerfile with Health Checks
FROM pydio/cells:latest
# Set working directoryWORKDIR /var/cells
# Expose the application portEXPOSE 8080
# Add health check for monitoringHEALTHCHECK --interval=30s --timeout=10s --start-period=90s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/a/frontend/bootconf || exit 1
# Start Cells with production settingsCMD ["cells", "start"]Option 3: Custom Dockerfile with Additional Configuration
FROM pydio/cells:latest
# Install additional utilities if neededRUN apt-get update && apt-get install -y \ curl \ wget \ ca-certificates \ && rm -rf /var/lib/apt/lists/*
# Set working directoryWORKDIR /var/cells
# Copy custom configuration files (optional)# COPY ./config/cells-config.yml /var/cells/
# Expose the application portEXPOSE 8080
# Health check for production monitoringHEALTHCHECK --interval=30s --timeout=10s --start-period=90s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/a/frontend/bootconf || exit 1
# Start Cells servicesCMD ["cells", "start"]Important Notes:
- Pydio Cells listens on port 8080 by default
- Klutch.sh will route external HTTP traffic to port 8080 in your container
- The container requires persistent storage for files, databases, and configuration
- Environment variables are used to configure database connections and security settings
Deploying to Klutch.sh
-
Create Your Dockerfile
Add your chosen Dockerfile to your repository:
Terminal window cat > Dockerfile << 'EOF'FROM pydio/cells:latestWORKDIR /var/cellsEXPOSE 8080HEALTHCHECK --interval=30s --timeout=10s --start-period=90s --retries=3 \CMD wget --no-verbose --tries=1 --spider http://localhost:8080/a/frontend/bootconf || exit 1CMD ["cells", "start"]EOF -
Commit and Push to GitHub
Terminal window git add Dockerfilegit commit -m "Add Dockerfile for Pydio Cells"git push origin main -
Access the Klutch.sh Dashboard
Navigate to klutch.sh/app and log in to your account.
-
Create a New Project
- Click “New Project” in the dashboard
- Enter a project name (e.g., “File Sharing Platform”)
- Select your preferred region for deployment
-
Create a New Application
- Within your project, click “New App”
- Name your application (e.g., “Cells”)
- Connect your GitHub repository containing the Dockerfile
-
Configure Build Settings
Klutch.sh automatically detects the Dockerfile in your repository root. The platform will build your container image using this Dockerfile.
-
Set Up Persistent Storage
Pydio Cells requires persistent storage to retain files, databases, and configurations across deployments:
- In the app settings, navigate to the “Volumes” section
- Click “Add Volume”
- Set the mount path to
/var/cells - Set the volume size (recommended: 20GB minimum for production, 50GB+ for larger deployments)
- Click “Add” to attach the volume
Critical: The
/var/cellsdirectory stores:- Uploaded files and documents
- Database files (if using embedded database)
- Application configurations
- User data and permissions
- Search indexes
- Activity logs and audit trails
-
Configure Environment Variables
In the app settings, add the following environment variables:
Essential Variables:
Terminal window CELLS_BIND=0.0.0.0:8080CELLS_EXTERNAL=https://your-app-name.klutch.shDatabase Configuration (External Database - Recommended):
For MySQL:
Terminal window CELLS_DB_DRIVER=mysqlCELLS_DB_DSN=username:password@tcp(mysql-host:8000)/cells?parseTime=trueFor PostgreSQL:
Terminal window CELLS_DB_DRIVER=postgresCELLS_DB_DSN=postgresql://username:password@postgres-host:8000/cells?sslmode=disableSecurity Configuration:
Terminal window CELLS_ADMIN_PWD=your-strong-admin-passwordCELLS_SECRET=your-random-secret-key-minimum-32-charactersOptional Configuration:
Terminal window CELLS_LOG_LEVEL=infoCELLS_NO_TLS=trueCELLS_SITE_BIND=0.0.0.0:8080CELLS_SITE_EXTERNAL=https://your-app-name.klutch.shSecurity Best Practice: Always use the “Secret” checkbox for sensitive values like passwords, database credentials, and secret keys.
-
Configure Traffic Settings
- In the “Networking” section, select HTTP as the traffic type
- Set the internal port to 8080 (Cells default port)
- Enable automatic HTTPS/SSL (provided by Klutch.sh)
-
Deploy the Application
- Review all settings
- Click “Deploy” to start the build process
- Klutch.sh will:
- Clone your repository from GitHub
- Detect the Dockerfile in the root directory
- Build the container image
- Deploy to your selected region
- Provision persistent storage
- Configure networking and SSL certificates
-
Monitor Deployment Progress
- View real-time build logs in the dashboard
- Wait for the deployment status to show “Running”
- Initial startup may take 2-3 minutes as Cells initializes databases and services
Once deployment completes, your Pydio Cells instance will be accessible at https://example-app.klutch.sh (or your configured custom domain).
Database Setup and Configuration
Pydio Cells requires a database to store metadata, permissions, and configurations. You can use either an embedded database (suitable for development) or an external database (recommended for production).
Option 1: Embedded Database (Development)
For testing and small deployments, Cells can use an embedded BoltDB or SQLite database. When you attach a persistent volume to /var/cells, the database files are stored there automatically.
Pros:
- No external database setup required
- Simplified configuration
- Good for evaluation and small teams
Cons:
- Limited scalability
- No replication or high availability
- Resource sharing with application
Configuration:
No additional environment variables needed. Cells will automatically create a local database in the persistent volume.
Option 2: External MySQL Database (Recommended)
For production deployments, use an external MySQL database:
-
Deploy MySQL on Klutch.sh
Follow the Klutch.sh MySQL deployment guide to set up a MySQL instance. When deploying:
- Select TCP as the traffic type
- Set the internal port to 3306
- External connections will use port 8000
-
Create Database and User
Connect to your MySQL instance and create a database for Cells:
CREATE DATABASE cells CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'cells_user'@'%' IDENTIFIED BY 'strong-secure-password';GRANT ALL PRIVILEGES ON cells.* TO 'cells_user'@'%';FLUSH PRIVILEGES; -
Configure Connection String
In your Klutch.sh app environment variables, set:
Terminal window CELLS_DB_DRIVER=mysqlCELLS_DB_DSN=cells_user:strong-secure-password@tcp(your-mysql-app.klutch.sh:8000)/cells?parseTime=trueNote: Use port 8000 for TCP traffic when connecting to databases deployed on Klutch.sh.
-
Restart Application
After setting the environment variables, trigger a new deployment in the Klutch.sh dashboard for the changes to take effect.
Option 3: External PostgreSQL Database
Pydio Cells also supports PostgreSQL:
-
Deploy PostgreSQL on Klutch.sh
Follow the Klutch.sh PostgreSQL deployment guide. When deploying:
- Select TCP as the traffic type
- Set the internal port to 5432
- External connections will use port 8000
-
Create Database and User
CREATE DATABASE cells;CREATE USER cells_user WITH PASSWORD 'strong-secure-password';GRANT ALL PRIVILEGES ON DATABASE cells TO cells_user; -
Configure Environment Variable
Terminal window CELLS_DB_DRIVER=postgresCELLS_DB_DSN=postgresql://cells_user:strong-secure-password@your-postgres-app.klutch.sh:8000/cells?sslmode=disableNote: Use port 8000 for TCP traffic when connecting to databases deployed on Klutch.sh.
-
Deploy Changes
Trigger a new deployment in Klutch.sh for the configuration to take effect.
Setting Up Persistent Volumes
Persistent storage is critical for maintaining files, user data, and configurations across deployments and restarts.
Required Mount Path
Configure a persistent volume in the Klutch.sh dashboard:
- Mount Path:
/var/cells - Recommended Size:
- Development: 10GB
- Small team (< 50 users): 50GB
- Medium team (50-200 users): 200GB
- Large organization (200+ users): 500GB+
What Gets Stored
The /var/cells directory contains:
/var/cells/├── data/ # Uploaded files and documents├── logs/ # Application logs and audit trails├── services/ # Service configurations├── config/ # Application configuration files├── indexes/ # Search indexes└── certs/ # SSL certificates (if self-managed)Backup Strategy
For production deployments, implement regular backups:
-
Schedule Volume Snapshots
Use Klutch.sh’s volume management features to create regular snapshots of your persistent volume.
-
File System Backups
Create regular backups of the
/var/cells/datadirectory:Terminal window # Example backup scripttar -czf cells-backup-$(date +%Y%m%d).tar.gz /var/cells/data -
Database Backups
For external databases, set up automated backup schedules:
MySQL:
Terminal window mysqldump -h your-mysql-app.klutch.sh -P 8000 -u cells_user -p cells > cells-db-backup-$(date +%Y%m%d).sqlPostgreSQL:
Terminal window pg_dump -h your-postgres-app.klutch.sh -p 8000 -U cells_user cells > cells-db-backup-$(date +%Y%m%d).sql -
Store Backups Securely
Upload backups to cloud storage (S3, Google Cloud Storage) or a secure backup service.
Environment Variables Reference
Required Variables
| Variable | Description | Example |
|---|---|---|
CELLS_BIND | Internal bind address and port | 0.0.0.0:8080 |
CELLS_EXTERNAL | External URL for accessing Cells | https://cells.yourdomain.com |
CELLS_SECRET | Secret key for encryption (min 32 chars) | your-random-secret-key-here |
CELLS_ADMIN_PWD | Initial administrator password | strong-admin-password |
Database Variables
| Variable | Description | Example |
|---|---|---|
CELLS_DB_DRIVER | Database driver (mysql or postgres) | mysql |
CELLS_DB_DSN | Database connection string | user:pass@tcp(host:8000)/cells?parseTime=true |
Optional Configuration
| Variable | Description | Default |
|---|---|---|
CELLS_LOG_LEVEL | Logging level (debug, info, warn, error) | info |
CELLS_NO_TLS | Disable internal TLS (Klutch.sh handles SSL) | true |
CELLS_SITE_BIND | Alternative bind address for frontend | 0.0.0.0:8080 |
CELLS_SITE_EXTERNAL | Alternative external URL | - |
CELLS_WORKING_DIR | Working directory path | /var/cells |
LDAP/Active Directory Integration
| Variable | Description |
|---|---|
CELLS_AUTH_CONNECTOR | Authentication connector type |
CELLS_LDAP_URL | LDAP server URL |
CELLS_LDAP_BIND_DN | LDAP bind DN |
CELLS_LDAP_BIND_PASSWORD | LDAP bind password |
CELLS_LDAP_USER_BASE | User search base DN |
Email Configuration
| Variable | Description |
|---|---|
CELLS_SMTP_HOST | SMTP server hostname |
CELLS_SMTP_PORT | SMTP server port |
CELLS_SMTP_USER | SMTP username |
CELLS_SMTP_PASSWORD | SMTP password |
CELLS_SMTP_FROM | Sender email address |
Initial Setup and Configuration
After deploying your Pydio Cells instance, complete the initial setup:
-
Access Your Instance
Navigate to
https://example-app.klutch.sh(or your custom domain). -
Complete Installation Wizard
On first access, Cells will launch an installation wizard:
- Step 1: Welcome - Review system requirements
- Step 2: License - Accept the open-source license
- Step 3: Database - Verify database connection (pre-configured via environment variables)
- Step 4: Advanced Settings - Configure additional options
- Step 5: Admin Account - Create your administrator account
- Step 6: Summary - Review and complete installation
-
Create Administrator Account
If you set
CELLS_ADMIN_PWD, use that password. Otherwise, create a new admin account:- Enter administrator username (e.g.,
admin) - Set a strong password
- Enter email address
- Enter administrator username (e.g.,
-
Configure Organization Settings
- Set your organization name
- Configure default language and timezone
- Set up branding (logo, colors)
-
Create Workspaces
Workspaces are shared folders with specific permissions:
- Click “Workspaces” in the left sidebar
- Click “Create Workspace”
- Name your workspace (e.g., “Team Documents”, “Client Files”)
- Configure permissions and access controls
-
Add Users
- Navigate to “Users & Groups”
- Click “Create User”
- Enter user details (username, email, password)
- Assign users to workspaces and groups
Getting Started with Pydio Cells
Creating Your First Workspace
-
Access Admin Console
Log in as administrator and navigate to the admin console.
-
Create a New Workspace
- Click “Cells” in the top navigation
- Click “Create Cell” or “Create Workspace”
- Enter workspace details:
- Label: Display name (e.g., “Marketing Files”)
- Description: Purpose of the workspace
- Template: Choose from available templates
-
Configure Access Permissions
Set up granular access controls:
- Read: Users can view and download files
- Write: Users can upload and modify files
- Delete: Users can remove files
- Share: Users can share files externally
-
Add Users to Workspace
- Select users or groups to grant access
- Assign appropriate permission levels
- Save configuration
Uploading and Managing Files
-
Upload Files
- Open your workspace
- Click “Upload” button or drag-and-drop files
- Files are uploaded with versioning enabled automatically
-
Organize with Folders
- Create folder structure to organize content
- Right-click folders for additional options
- Use tags and metadata for better organization
-
Share Files
- Select a file or folder
- Click “Share” button
- Choose sharing method:
- Internal: Share with other Cells users
- Public Link: Generate shareable link
- Secure Link: Password-protected links with expiration
-
Collaborate on Documents
- Enable collaborative editing for supported file types
- View activity stream for file changes
- Leave comments and annotations
Sample Use Cases
Team Document Repository
Create a centralized document repository with version control:
Workspace: "Company Documents"├── HR/│ ├── Policies/│ ├── Employee Handbook/│ └── Forms/├── Finance/│ ├── Budgets/│ ├── Reports/│ └── Invoices/└── Marketing/ ├── Brand Assets/ ├── Campaigns/ └── Content/Permissions:
- HR team: Full access to HR folder
- Finance team: Full access to Finance folder
- Marketing team: Full access to Marketing folder
- Executives: Read access to all folders
Client Portal
Set up secure file sharing with external clients:
-
Create Client Workspace
Create a workspace per client or project.
-
Set Up External Sharing
- Enable public links with password protection
- Set link expiration dates
- Require email verification for downloads
-
Monitor Access
- View activity logs for client file access
- Track downloads and modifications
- Receive notifications for important events
Custom Domain Configuration
To use your own domain with Pydio Cells on Klutch.sh:
-
Add Domain in Dashboard
- Navigate to your Cells app in Klutch.sh dashboard
- Go to “Domains” section
- Click “Add Custom Domain”
- Enter your domain (e.g.,
files.yourdomain.com)
-
Configure DNS Records
Add a CNAME record in your DNS provider:
Type: CNAMEName: files (or your subdomain)Value: your-cells-app.klutch.shTTL: 3600 -
Enable SSL/TLS
Klutch.sh automatically provisions and manages SSL certificates for your custom domain.
-
Update Cells Configuration
Update the
CELLS_EXTERNALenvironment variable:Terminal window CELLS_EXTERNAL=https://files.yourdomain.comCELLS_SITE_EXTERNAL=https://files.yourdomain.com -
Redeploy Application
Trigger a new deployment for changes to take effect.
-
Verify Configuration
- Wait for DNS propagation (5-15 minutes)
- Visit
https://files.yourdomain.com - Verify SSL certificate is active
For detailed domain configuration, see the Klutch.sh Custom Domains guide.
Production Best Practices
Security Hardening
-
Use Strong Passwords
- Enforce password complexity requirements
- Enable multi-factor authentication (MFA)
- Regularly rotate admin passwords
-
Configure SSL/TLS Properly
Klutch.sh provides automatic SSL. Ensure all connections use HTTPS:
Terminal window CELLS_NO_TLS=true # Klutch.sh handles SSL termination -
Enable Audit Logging
Track all user activities and file operations:
- Navigate to Admin Console → Logs
- Enable audit logging
- Configure log retention policies
-
Implement Access Controls
- Use role-based access control (RBAC)
- Apply principle of least privilege
- Regularly review and audit permissions
-
Secure Database Connections
Always use strong credentials and encrypted connections for external databases.
-
Regular Security Updates
Update your Dockerfile to use specific Cells versions:
FROM pydio/cells:4.2.0Regularly update to newer stable versions and redeploy.
Performance Optimization
-
Enable Caching
Configure caching for better performance:
- Enable browser caching for static assets
- Use CDN for file delivery (if available)
- Configure appropriate cache headers
-
Optimize Database Performance
- Use connection pooling
- Add indexes for frequently queried fields
- Regular database maintenance and optimization
-
Monitor Resource Usage
- Track CPU, memory, and disk usage in Klutch.sh dashboard
- Set up alerts for resource thresholds
- Scale vertically if needed (larger instance)
-
Optimize File Storage
- Implement file lifecycle policies
- Archive old files to cold storage
- Clean up temporary and deleted files regularly
-
Enable Search Indexing
Cells includes built-in search. Ensure indexing is working properly:
- Verify search service is running
- Monitor index size and update frequency
- Optimize index settings for your use case
Backup and Disaster Recovery
-
Automated Volume Snapshots
Schedule regular snapshots of the
/var/cellspersistent volume. -
Database Backups
Implement automated database backup schedule:
Terminal window # Daily backup scriptmysqldump -h mysql-host -P 8000 -u cells_user -p cells > cells-backup-$(date +%Y%m%d).sqltar -czf cells-complete-backup-$(date +%Y%m%d).tar.gz cells-backup-*.sql /backups/files -
File System Backups
Backup the data directory regularly:
Terminal window # Incremental backup using rsyncrsync -avz /var/cells/data/ /backup/cells-data/ -
Test Recovery Procedures
Regularly test restoring from backups to ensure they work correctly.
-
Off-site Backups
Store backups in a different geographic location using cloud storage services.
Monitoring and Logging
-
Enable Application Logs
Configure comprehensive logging:
Terminal window CELLS_LOG_LEVEL=infoAccess logs from the persistent volume:
Terminal window /var/cells/logs/ -
Set Up Alerts
Configure alerts for:
- Application downtime
- High error rates
- Storage capacity warnings
- Failed authentication attempts
- Unusual file access patterns
-
Monitor User Activity
- Enable audit logging for compliance
- Track file access and modifications
- Review user activity reports regularly
-
Performance Monitoring
- Monitor response times
- Track file upload/download speeds
- Identify slow database queries
- Watch for resource bottlenecks
Troubleshooting Common Issues
Application Won’t Start
Symptoms: Container starts but Cells UI is not accessible
Solutions:
- Check deployment logs in the Klutch.sh dashboard
- Verify all required environment variables are set correctly
- Ensure persistent volume is attached to
/var/cells - Check database connectivity if using external database
- Verify port 8080 is correctly configured
Database Connection Errors
Symptoms: “Unable to connect to database” errors
Solutions:
-
Verify connection string format:
- MySQL:
user:pass@tcp(host:8000)/cells?parseTime=true - PostgreSQL:
postgresql://user:pass@host:8000/cells?sslmode=disable
- MySQL:
-
Confirm TCP port configuration (use 8000 for Klutch.sh TCP traffic)
-
Test database credentials and connectivity
-
Ensure database service is running and accessible
-
Check firewall rules and network connectivity
File Upload Issues
Symptoms: Files fail to upload or uploads are very slow
Solutions:
- Check persistent volume storage capacity
- Verify file size limits in configuration
- Monitor network bandwidth and latency
- Check application logs for specific errors
- Ensure proper file system permissions in
/var/cells/data
Login Problems
Symptoms: Cannot log in to Cells
Solutions:
- Verify admin password is correctly set via
CELLS_ADMIN_PWD - Check if database contains user accounts
- Review authentication logs for errors
- Clear browser cache and cookies
- Try password reset via admin console
Slow Performance
Symptoms: Slow page loads, timeouts
Solutions:
- Check resource usage in Klutch.sh dashboard
- Upgrade to larger instance if CPU/memory constrained
- Optimize database queries and add indexes
- Enable caching mechanisms
- Review and optimize search indexes
- Check for disk I/O bottlenecks
Data Loss After Redeployment
Symptoms: Files or configurations missing after redeployment
Solutions:
- Critical: Verify persistent volume is correctly attached to
/var/cells - Check volume wasn’t accidentally deleted or detached
- Review volume mount configuration in Klutch.sh dashboard
- Restore from backup if data is permanently lost
Scaling Your Pydio Cells Deployment
Vertical Scaling
Increase resources for your Cells instance:
- Small teams (< 20 users): 2 CPU, 4GB RAM, 50GB storage
- Medium teams (20-100 users): 4 CPU, 8GB RAM, 200GB storage
- Large organizations (100-500 users): 8 CPU, 16GB RAM, 500GB+ storage
- Enterprise (500+ users): 16+ CPU, 32+ GB RAM, 1TB+ storage
Upgrade instance size through the Klutch.sh dashboard as your needs grow.
Database Scaling
- Use managed MySQL or PostgreSQL with read replicas
- Enable database connection pooling
- Optimize database configuration for your workload
- Consider database sharding for very large deployments
Storage Optimization
- Implement file lifecycle policies to archive old files
- Use object storage for cold data
- Enable deduplication to save space
- Regular cleanup of temporary files
Advanced Features
LDAP/Active Directory Integration
Integrate with existing directory services:
-
Configure LDAP Connection
Set environment variables:
Terminal window CELLS_AUTH_CONNECTOR=ldapCELLS_LDAP_URL=ldap://ldap.example.com:389CELLS_LDAP_BIND_DN=cn=admin,dc=example,dc=comCELLS_LDAP_BIND_PASSWORD=ldap-passwordCELLS_LDAP_USER_BASE=ou=users,dc=example,dc=com -
Map LDAP Attributes
Configure attribute mappings in the Cells admin console.
-
Test Authentication
Verify users can log in with LDAP credentials.
OAuth2/SSO Integration
Enable single sign-on with popular providers:
- Google Workspace
- Microsoft Azure AD
- GitHub
- Custom OAuth2 providers
Configure OAuth2 settings in the Cells admin console under Authentication.
Mobile and Desktop Sync
Pydio Cells provides native sync clients:
- Download Cells Sync for Windows, macOS, and Linux
- Mobile apps available for iOS and Android
- Configure sync client with your Cells URL:
https://example-app.klutch.sh
Migration to Klutch.sh
If migrating from an existing Pydio Cells installation:
-
Backup Existing Data
From your current installation:
Terminal window # Backup databasemysqldump -u cells_user -p cells > cells-migration-backup.sql# Backup filestar -czf cells-files-backup.tar.gz /var/cells/data -
Deploy New Instance on Klutch.sh
Follow the deployment steps in this guide.
-
Restore Database
Import your database to the new MySQL instance:
Terminal window mysql -h your-mysql-app.klutch.sh -P 8000 -u cells_user -p cells < cells-migration-backup.sql -
Restore Files
Upload your files to the persistent volume:
Terminal window # Extract to mounted volumetar -xzf cells-files-backup.tar.gz -C /var/cells/ -
Update Configuration
Update
CELLS_EXTERNALto point to your new Klutch.sh URL. -
Test Thoroughly
- Verify all files are accessible
- Test user authentication
- Check workspace permissions
- Validate sharing links
-
Update DNS
Point your domain to the new Klutch.sh deployment.
Cost Optimization
- Right-size instances: Start with smaller instances and scale based on actual usage
- Storage lifecycle: Archive infrequently accessed files to cold storage
- Database optimization: Regularly optimize and clean up database
- Monitor usage: Track storage consumption and user activity
- Cleanup policies: Implement automatic cleanup of temporary and deleted files
Resources
- Official Pydio Cells Documentation
- Pydio Cells GitHub Repository
- Pydio Community Forum
- Klutch.sh Quick Start Guide
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
- Klutch.sh Networking
Conclusion
Deploying Pydio Cells on Klutch.sh provides a powerful, self-hosted file sharing and collaboration platform with enterprise-grade security, scalability, and control. With automatic Dockerfile detection, persistent storage, secure environment management, and production-ready configurations, you can focus on managing your content and collaborating with your team without worrying about infrastructure complexity.
Whether you’re building a secure document repository for your team, a client file sharing portal, or an enterprise content management system, Pydio Cells on Klutch.sh offers the reliability, performance, and flexibility you need. Start deploying your file sharing platform today and take control of your data with self-hosted, open-source collaboration tools.
For additional help or questions, reach out to the Pydio community forum or Klutch.sh support.