4.2 KiB
Ente Cloudron App
This repository contains the Cloudron packaging for Ente, an open-source, end-to-end encrypted alternative to Google Photos and Apple Photos.
Features
- Self-host your own encrypted photo backup service
- Automatically integrates with Cloudron's PostgreSQL database
- Configured to use Cloudron's mail service for sending emails
- Easy to deploy and manage through the Cloudron interface
Requirements
Browser Compatibility
Ente uses modern web technologies for its end-to-end encryption:
- WebAssembly: Required for cryptographic operations
- IndexedDB: Required for client-side data storage
Most modern browsers support these features, but they may be blocked by:
- Browser privacy settings
- Content Security Policies
- Certain browser extensions
This package includes custom Caddy configuration with appropriate security headers to ensure these features work correctly.
S3-Compatible Storage
Ente requires an S3-compatible object storage service. You can use:
- Cloudron's built-in object storage
- External services like AWS S3, Wasabi, or MinIO
Building and Installing
Option 1: Build and Install Manually
-
Clone this repository:
git clone https://github.com/yourusername/ente-cloudron.git cd ente-cloudron -
Download the Cloudron CLI:
npm install -g cloudron -
Build the app:
cloudron build -
Install the app:
cloudron install --app ente.yourdomain.com
Option 2: Install from the Cloudron App Store
Once this app is accepted into the Cloudron App Store, you can install it directly:
- Go to your Cloudron dashboard
- Click "App Store"
- Search for "Ente"
- Click "Install"
Configuration
The app is configured automatically using Cloudron's environment variables for:
- PostgreSQL database connection
- SMTP mail service
- App origin URL
Additional Configuration
The package includes several enhancements to ensure proper functionality:
- Security Headers: Custom Content-Security-Policy headers that allow WebAssembly and IndexedDB
- API Configuration: Dynamic runtime configuration to ensure the frontend connects to the correct API endpoint
- CORS Headers: Proper CORS configuration for API access
Cloudron Admin Notes
After installing on Cloudron remember to:
- Open the File Manager for the app, edit
/app/data/config/s3.envwith your object storage endpoint/keys, and restart the app. - Add alias domains for
accounts,auth,cast,albums, andfamilyin the app’s Domains tab (create matching DNS records pointing to the primary hostname). - Use the bundled Ente CLI for admin tasks via
cloudron exec --app <location> -- sudo -u cloudron ente --help. The CLI stores its state in/app/data/cli-data(exposed inside the container at/cli-data) and already trusts your app’s API endpoint.
The main photos UI continues to live on the hostname you selected during installation.
Usage
Web Client
After installation, you can access the Ente web client at your app's URL. Create an admin account on first use.
Mobile Apps
You can use the official Ente mobile apps with your self-hosted server:
- Download the Ente app from the App Store or Google Play
- During login, choose "Custom Server"
- Enter your Cloudron app URL (e.g.,
https://ente.yourdomain.com)
Updating
To update to a newer version:
cloudron update --app ente.yourdomain.com
Troubleshooting
Common Issues
- "Failed to fetch" errors: Check if your browser is blocking API requests to your domain
- WebAssembly errors: Ensure your browser supports and allows WebAssembly (try using Chrome or Firefox)
- IndexedDB errors: Make sure your browser allows IndexedDB (not in private/incognito mode)
For issues specific to the Cloudron packaging, please open an issue in this repository.
For issues with Ente itself, please refer to the main Ente repository.
License
This Cloudron package is licensed under the same license as Ente (Apache 2.0).