Deploying Surfer
Introduction
Surfer is a simple, self-hosted file hosting and sharing solution from Cloudron. It provides an elegant web interface for uploading, organizing, and sharing files. Perfect for personal cloud storage or team file sharing.
Key highlights of Surfer:
- Simple Interface: Clean, intuitive web UI for file management
- Directory Browsing: Navigate your files with ease
- File Sharing: Generate shareable links for files and folders
- Upload Support: Drag-and-drop file uploads
- WebDAV Support: Access files via WebDAV clients
- Authentication: Password protection for your files
- Lightweight: Minimal resource requirements
- Docker Ready: Easy containerized deployment
This guide walks through deploying Surfer on Klutch.sh using Docker.
Why Deploy Surfer on Klutch.sh
Deploying Surfer on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Surfer without complex orchestration.
Persistent Storage: Attach persistent volumes for your files.
HTTPS by Default: Secure file sharing with automatic SSL certificates.
GitHub Integration: Connect your configuration repository for automatic redeployments.
Prerequisites
Before deploying Surfer on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Surfer configuration
- Basic familiarity with Docker and containerization concepts
Deploying Surfer on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 3000
Create Your Repository
Create a new GitHub repository with a Dockerfile for Surfer:
FROM cloudron/surfer:latest
ENV CLOUDRON_APP_ORIGIN=${APP_URL}ENV CLOUDRON_ADMIN_ORIGIN=${APP_URL}
EXPOSE 3000
VOLUME ["/app/data"]Push to GitHub
Initialize and push your repository to GitHub with your Dockerfile.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
APP_URL | https://your-app.klutch.sh |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/data | 50+ GB | File storage |
Deploy Your Application
Click Deploy to start the build process.
Access Surfer
Once deployment completes, access Surfer at your app URL.
Configuration
Uploading Files
Upload files through the web interface:
- Navigate to your Surfer instance
- Authenticate if required
- Drag and drop files or click to upload
- Organize files into directories
Sharing Files
Generate shareable links:
- Select the file or folder to share
- Click the share icon
- Copy the generated URL
- Share with recipients
WebDAV Access
Connect via WebDAV using your Surfer URL with /dav appended:
https://your-surfer-instance.klutch.sh/davAdditional Resources
Conclusion
Deploying Surfer on Klutch.sh gives you a simple, elegant file sharing solution with automatic builds, persistent storage, and secure HTTPS access. Share files easily with a clean web interface.