131 lines
4.5 KiB
Markdown
131 lines
4.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
|
||
|
||
### Cloudron Admin Notes
|
||
|
||
After installing on Cloudron remember to:
|
||
|
||
1. Open the File Manager for the app, edit `/app/data/config/s3.env` with your object storage endpoint/keys, and restart the app.
|
||
2. Add alias domains for `auth.<app-domain>`, `accounts.<app-domain>`, `cast.<app-domain>`, `albums.<app-domain>` and `family.<app-domain>` in the Cloudron **Domains** tab. Create matching DNS records pointing to the primary hostname (for example, if you installed at `ente.cloudron.io`, add `auth.ente.cloudron.io`, `accounts.ente.cloudron.io`, etc.).
|
||
3. 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. Follow the upstream admin guides to [whitelist administrators](https://ente.io/help/self-hosting/administration/users#whitelist-admins) and [adjust user quotas](https://ente.io/help/self-hosting/administration/cli).
|
||
|
||
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:
|
||
|
||
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).
|