# Ente Cloudron App – Build & Deployment Guide ## Prerequisites - Cloudron CLI (`npm install -g cloudron`) configured for your server - Docker (for local test builds, optional when using the Cloudron build service) - Access to this repository (`andreasdueren/ente-cloudron`) - Cloudron build-service token: `e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e` ## Build 1. Clone the repository (if needed): ```bash git clone https://github.com/andreasdueren/ente-cloudron.git cd ente-cloudron ``` 2. Build the image via the Cloudron build service. Adjust `--tag` to match `CloudronManifest.json` (`0.2.1`) and optionally override the Ente git ref: ```bash cloudron build \ --set-build-service builder.docker.due.ren \ --build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \ --set-repository andreasdueren/ente-cloudron \ --tag 0.2.1 \ --build-arg ENTE_GIT_REF=main ``` Use a tagged Ente release for reproducible builds (e.g. `--build-arg ENTE_GIT_REF=v0.9.0`). ## Install / Reinstall Always uninstall the dev instance before reinstalling. ```bash cloudron install \ --location ente.due.ren \ --image andreasdueren/ente-cloudron:0.2.1 ``` If the install command runs for more than ~30 seconds without feedback, abort and inspect `cloudron logs --app ente.due.ren`. ## Smoke Tests 1. Open `https://ente.due.ren/health` and ensure it returns `status: OK`. 2. Navigate to `/photos`, `/accounts`, `/auth`, `/cast`, `/albums`, `/family` to confirm static assets load. 3. Tail logs while signing up a user to verify Museum output: ```bash cloudron logs --app ente.due.ren -f ``` ## Required Configuration Populate `/app/data/config/s3.env` with valid S3 credentials and restart the app. ```bash S3_ENDPOINT=https://.r2.cloudflarestorage.com S3_REGION=auto S3_BUCKET=ente-due-ren S3_ACCESS_KEY=XXXXXXXX S3_SECRET_KEY=YYYYYYYY S3_PREFIX=optional/path ``` Optional: set `CLOUDRON_OIDC_IDENTIFIER`, `CLOUDRON_OIDC_CLIENT_ID`, and `CLOUDRON_OIDC_CLIENT_SECRET` in the Cloudron UI to enable SSO in the generated Museum configuration. ## Troubleshooting - **S3 errors**: Verify credentials in `/app/data/config/s3.env`; check connectivity using `aws s3 ls --endpoint-url ...` from a trusted host. - **Museum not starting**: Inspect `/app/data/museum/configurations/local.yaml` for syntax issues; delete to regenerate. - **Frontend stale after update**: Restart the app—the startup script re-syncs static assets on each boot. - **OIDC issues**: Confirm the callback URL `/api/v1/session/callback` is allowed in the Cloudron SSO client configuration. ## Useful Commands ```bash cloudron exec --app ente.due.ren -- cat /app/data/museum/configurations/local.yaml cloudron exec --app ente.due.ren -- ente --help cloudron logs --app ente.due.ren -f ```