- Fixed admin-helper.sh to use correct Museum binary path (/app/museum-bin/museum) - Updated start.sh to handle missing S3 configuration gracefully - App now starts in configuration mode when S3 is not configured - Shows helpful configuration page instead of failing health checks - Properly starts Museum server once S3 is configured - Updated CloudronManifest.json to version 0.2.2 - All web frontends (photos, accounts, auth, cast, albums, family) verified working - Museum API server running successfully with S3 storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
2.8 KiB
Markdown
67 lines
2.8 KiB
Markdown
# 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://<account>.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
|
||
```
|