ente-cloudron/README.md
2025-03-16 22:18:41 +01:00

124 lines
3.5 KiB
Markdown

# Ente Cloudron App
This repository contains the Cloudron packaging for [Ente](https://ente.io), 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
1. Clone this repository:
```
git clone https://github.com/yourusername/ente-cloudron.git
cd ente-cloudron
```
2. Download the Cloudron CLI:
```
npm install -g cloudron
```
3. Build the app:
```
cloudron build
```
4. 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:
1. Go to your Cloudron dashboard
2. Click "App Store"
3. Search for "Ente"
4. 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:
1. **Security Headers**: Custom Content-Security-Policy headers that allow WebAssembly and IndexedDB
2. **API Configuration**: Dynamic runtime configuration to ensure the frontend connects to the correct API endpoint
3. **CORS Headers**: Proper CORS configuration for API access
You need to manually set up and configure:
- S3-compatible object storage
## 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:
1. Download the Ente app from the [App Store](https://apps.apple.com/app/id1542026904) or [Google Play](https://play.google.com/store/apps/details?id=io.ente.photos)
2. During login, choose "Custom Server"
3. 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
1. **"Failed to fetch" errors**: Check if your browser is blocking API requests to your domain
2. **WebAssembly errors**: Ensure your browser supports and allows WebAssembly (try using Chrome or Firefox)
3. **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](https://github.com/ente-io/ente).
## License
This Cloudron package is licensed under the same license as Ente (Apache 2.0).