Deploying bewCloud
Introduction
bewCloud is a privacy-focused, self-hosted personal cloud platform designed to give you complete control over your digital life. It provides file storage, synchronization, and personal data management without relying on third-party cloud services.
Built with simplicity and privacy in mind, bewCloud offers a lightweight alternative to commercial cloud services, letting you own your data while enjoying modern cloud conveniences.
Key highlights of bewCloud:
- File Storage: Upload, organize, and manage files from any device
- File Sync: Synchronize files across multiple devices
- Privacy Focused: Your data stays on your infrastructure
- Web Interface: Clean, modern browser-based file manager
- WebDAV Support: Compatible with standard file sync clients
- Photo Gallery: Browse and organize photos
- Music Player: Stream your music library
- Notes: Create and sync personal notes
- Bookmarks: Save and organize bookmarks
- Contacts: Manage contact information
- Calendar: Personal calendar with sync support
- Task Management: To-do lists and task tracking
This guide walks through deploying bewCloud on Klutch.sh using Docker for a personal cloud solution.
Why Deploy bewCloud on Klutch.sh
Deploying bewCloud on Klutch.sh provides several advantages:
Complete Privacy: Keep your personal data on infrastructure you control.
Access Anywhere: Your cloud is accessible from any device with internet.
HTTPS by Default: Secure access with automatic SSL certificates.
Persistent Storage: Reliable storage for all your files and data.
GitHub Integration: Deploy updates automatically.
Custom Domains: Use your own domain for a personalized cloud.
Prerequisites
Before deploying bewCloud on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic understanding of Docker and containerization
- (Optional) A custom domain for your cloud instance
Understanding bewCloud Architecture
bewCloud operates with several components:
Web Application: The main interface for file management and apps.
File Storage: Local filesystem for storing user files.
Database: SQLite or PostgreSQL for metadata and settings.
Sync Engine: Handles file synchronization across devices.
Preparing Your Repository
Create a GitHub repository for your bewCloud deployment.
Repository Structure
bewcloud-deploy/├── Dockerfile└── .dockerignoreCreating the Dockerfile
Create a Dockerfile for bewCloud:
FROM node:18-alpine
# Install dependenciesRUN apk add --no-cache python3 make g++ git
# Create app directoryWORKDIR /app
# Clone bewCloudRUN git clone https://github.com/bewcloud/bewcloud.git . \ && rm -rf .git
# Install dependenciesRUN npm ci --only=production
# Build the applicationRUN npm run build
# Environment variablesENV NODE_ENV=productionENV PORT=3000ENV DATABASE_URL=${DATABASE_URL}ENV SECRET_KEY=${SECRET_KEY}ENV BASE_URL=${BASE_URL}
# Create data directoriesRUN mkdir -p /app/data/files \ && mkdir -p /app/data/db
# Expose portEXPOSE 3000
# Volume for dataVOLUME ["/app/data"]
# Start applicationCMD ["npm", "start"]Environment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
SECRET_KEY | Yes | - | Secret key for session encryption |
DATABASE_URL | No | SQLite | Database connection string |
BASE_URL | No | - | Public URL for the application |
PORT | No | 3000 | Web server port |
MAX_UPLOAD_SIZE | No | 100MB | Maximum file upload size |
Deploying bewCloud on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 3000
Generate Secret Key
Create a secure secret key:
openssl rand -hex 32Push Your Repository to GitHub
Initialize and push your configuration to GitHub.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “bewcloud” or “personal-cloud”.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set up HTTP for the web interface:
Set Environment Variables
Configure the following:
| Variable | Value |
|---|---|
SECRET_KEY | Your generated secret key |
BASE_URL | https://your-app-name.klutch.sh |
Attach Persistent Volumes
Add storage for your cloud data:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/data | 100+ GB | Files, database, and user data |
Deploy Your Application
Click Deploy to build and start bewCloud.
Access Your Cloud
Once deployment completes, access bewCloud at https://your-app-name.klutch.sh.
Initial Setup
Creating Your Account
- Navigate to your bewCloud URL
- Click “Register” to create an account
- Set a secure password
- Complete registration
Configuring Your Cloud
- Log in to your account
- Navigate to Settings
- Configure:
- Storage quotas
- Enabled features
- Sync settings
File Management
Uploading Files
Upload files through the web interface:
- Navigate to Files
- Click “Upload” or drag files
- Select files to upload
- Monitor upload progress
Organizing Files
Create folder structures:
- Click “New Folder”
- Name your folder
- Organize files by dragging
Sharing Files
Share files or folders:
- Select file or folder
- Click “Share”
- Configure sharing options
- Copy share link
Sync Setup
WebDAV Configuration
Connect WebDAV clients:
- Use URL:
https://your-cloud.klutch.sh/dav - Enter your credentials
- Access files via your file manager
Desktop Sync
Set up desktop synchronization:
- Install a WebDAV sync client
- Configure server URL
- Select folders to sync
- Start synchronization
Mobile Access
Access from mobile devices:
- Use WebDAV-compatible apps
- Configure server connection
- Browse and sync files
Apps and Features
Photo Gallery
View and organize photos:
- Navigate to Photos
- Browse by date or folder
- Create albums
- Share galleries
Music Player
Stream your music:
- Navigate to Music
- Browse by artist or album
- Create playlists
- Play in browser
Notes
Create and sync notes:
- Navigate to Notes
- Create new notes
- Organize with folders
- Sync across devices
Calendar
Manage your schedule:
- Navigate to Calendar
- Create events
- Set reminders
- Sync with CalDAV clients
Troubleshooting Common Issues
Upload Fails
Solutions:
- Check file size limits
- Verify storage space available
- Review browser console for errors
Sync Not Working
Solutions:
- Verify WebDAV URL is correct
- Check credentials
- Review sync client logs
Slow Performance
Solutions:
- Clear browser cache
- Check network connectivity
- Review server resource usage
Additional Resources
Conclusion
Deploying bewCloud on Klutch.sh gives you a personal cloud platform under your complete control. With file storage, sync capabilities, and integrated apps for photos, music, notes, and more, bewCloud provides a comprehensive alternative to commercial cloud services while keeping your data private.