Skip to content

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
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile for bewCloud:

FROM node:18-alpine
# Install dependencies
RUN apk add --no-cache python3 make g++ git
# Create app directory
WORKDIR /app
# Clone bewCloud
RUN git clone https://github.com/bewcloud/bewcloud.git . \
&& rm -rf .git
# Install dependencies
RUN npm ci --only=production
# Build the application
RUN npm run build
# Environment variables
ENV NODE_ENV=production
ENV PORT=3000
ENV DATABASE_URL=${DATABASE_URL}
ENV SECRET_KEY=${SECRET_KEY}
ENV BASE_URL=${BASE_URL}
# Create data directories
RUN mkdir -p /app/data/files \
&& mkdir -p /app/data/db
# Expose port
EXPOSE 3000
# Volume for data
VOLUME ["/app/data"]
# Start application
CMD ["npm", "start"]

Environment Variables Reference

VariableRequiredDefaultDescription
SECRET_KEYYes-Secret key for session encryption
DATABASE_URLNoSQLiteDatabase connection string
BASE_URLNo-Public URL for the application
PORTNo3000Web server port
MAX_UPLOAD_SIZENo100MBMaximum file upload size

Deploying bewCloud on Klutch.sh

    Generate Secret Key

    Create a secure secret key:

    Terminal window
    openssl rand -hex 32

    Push 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:

    • Select HTTP as the traffic type
    • Set the internal port to 3000

    Set Environment Variables

    Configure the following:

    VariableValue
    SECRET_KEYYour generated secret key
    BASE_URLhttps://your-app-name.klutch.sh

    Attach Persistent Volumes

    Add storage for your cloud data:

    Mount PathRecommended SizePurpose
    /app/data100+ GBFiles, 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

  1. Navigate to your bewCloud URL
  2. Click “Register” to create an account
  3. Set a secure password
  4. Complete registration

Configuring Your Cloud

  1. Log in to your account
  2. Navigate to Settings
  3. Configure:
    • Storage quotas
    • Enabled features
    • Sync settings

File Management

Uploading Files

Upload files through the web interface:

  1. Navigate to Files
  2. Click “Upload” or drag files
  3. Select files to upload
  4. Monitor upload progress

Organizing Files

Create folder structures:

  1. Click “New Folder”
  2. Name your folder
  3. Organize files by dragging

Sharing Files

Share files or folders:

  1. Select file or folder
  2. Click “Share”
  3. Configure sharing options
  4. Copy share link

Sync Setup

WebDAV Configuration

Connect WebDAV clients:

  1. Use URL: https://your-cloud.klutch.sh/dav
  2. Enter your credentials
  3. Access files via your file manager

Desktop Sync

Set up desktop synchronization:

  1. Install a WebDAV sync client
  2. Configure server URL
  3. Select folders to sync
  4. Start synchronization

Mobile Access

Access from mobile devices:

  1. Use WebDAV-compatible apps
  2. Configure server connection
  3. Browse and sync files

Apps and Features

View and organize photos:

  1. Navigate to Photos
  2. Browse by date or folder
  3. Create albums
  4. Share galleries

Music Player

Stream your music:

  1. Navigate to Music
  2. Browse by artist or album
  3. Create playlists
  4. Play in browser

Notes

Create and sync notes:

  1. Navigate to Notes
  2. Create new notes
  3. Organize with folders
  4. Sync across devices

Calendar

Manage your schedule:

  1. Navigate to Calendar
  2. Create events
  3. Set reminders
  4. 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.