Commit Graph

124 Commits

Author SHA1 Message Date
Andreas Dueren
c28000a396 Use Cloudron STARTTLS port 2587 for SMTP
Switch from plain SMTP on port 2525 to STARTTLS on port 2587.
The Go smtp.SendMail function automatically handles STARTTLS
negotiation when encryption is empty, which is required by
Cloudron's sendmail addon on the STARTTLS port.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 09:05:28 -06:00
Andreas Dueren
53c66c29cd Add SMTP authentication using Cloudron sendmail credentials
Configure Museum to use CLOUDRON_MAIL_SMTP_USERNAME and
CLOUDRON_MAIL_SMTP_PASSWORD for authenticated SMTP relay.
This fixes the "550 I cannot deliver mail" error by properly
authenticating with the Cloudron sendmail addon.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 08:54:03 -06:00
Andreas Dueren
b67a7a6941 Fix SMTP configuration to use Cloudron sendmail hostname
Change SMTP host from localhost/127.0.0.1 to 'mail' as per Cloudron
sendmail addon documentation. The sendmail addon provides a local SMTP
relay accessible via hostname 'mail' on port 2525.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 08:47:18 -06:00
Andreas Dueren
2c829792f4 Use localhost for SMTP instead of Docker bridge IP
Change SMTP host from 172.18.0.1 to localhost to properly connect
to Cloudron's sendmail relay running inside the container.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 08:38:12 -06:00
Andreas Dueren
12fdaa7e25 Fix SMTP configuration to use Cloudron mail relay
Use Cloudron's internal mail relay at 172.18.0.1:2525 instead of
external SMTP server to fix email sending timeouts during registration.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 08:17:48 -06:00
41f39f62a1 Add Caddy handler for static image assets
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 22:04:39 -06:00
675009ca4f Fix redirect loop by using dummy albums domain
Instead of trying to match the albums host with current host
(which always fails in path-based routing), use a dummy domain
'albums.localhost.invalid' that will never match the actual host.
This prevents the automatic redirect to /shared-albums.

Version bump to 0.3.2

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 20:56:27 -06:00
124c4ef949 Fix redirect loop by setting NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT
The app was redirecting to /shared-albums because albumsAppOrigin()
returned the same host as the current URL after runtime replacement.
By setting NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT at build time to a
placeholder and replacing it at runtime with the full path-based URL,
the host comparison will fail and prevent the redirect loop.

Version bump to 0.3.1

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 20:29:46 -06:00
d45a524d6b Improve URL replacement strategy for frontend assets
- Enhanced rewrite_frontend_reference function to handle multiple URL encoding formats
- Now replaces plain URLs, backslash-escaped URLs, and double-backslash-escaped URLs
- Added https://ente.io -> BASE_URL replacement
- Version bump to 0.3.0

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 19:58:39 -06:00
a3be7882db Fix Ente Cloudron packaging issues
- 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>
2025-10-21 19:20:15 -06:00
92a3d90b29 Auto-configure CLI endpoint 2025-09-30 09:34:25 -06:00
bd7bbcb65d Persist Museum configuration for manual edits 2025-09-29 22:36:37 -06:00
9cf03586b1 Make Ente CLI usable out of the box 2025-09-29 22:05:24 -06:00
629fb6e680 Bundle Ente CLI for Cloudron console 2025-09-29 21:37:33 -06:00
706a82375e Remove OTT log highlighter 2025-09-29 21:26:21 -06:00
515de87fbf Document S3 examples and refresh template 2025-09-29 21:18:19 -06:00
5e13d1ca4d Allow runtime S3 configuration overrides 2025-09-29 20:59:57 -06:00
772d6ab447 Fix SPA asset routing for web apps 2025-09-29 20:47:07 -06:00
Andreas Dueren
5d9e6b329f Force rebuild: Update asset routing with version bump 2025-08-01 14:02:07 -06:00
Andreas Dueren
b0cc66724b Fix static asset routing for all web apps
- Add specific _next asset routes for accounts, auth, cast apps
- Add image asset routes for each app
- Ensure each app's assets are served from correct directory
- Keep photos app routing unchanged

Should fix accounts/auth/cast apps loading issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 13:55:53 -06:00
Andreas Dueren
974c988fc0 Resolve merge conflicts with updated version 0.1.79 2025-08-01 13:46:59 -06:00
Andreas Dueren
d44ef4a13f Fix API endpoint configuration and domain references
- Change NEXT_PUBLIC_ENTE_ENDPOINT to relative /api for domain flexibility
- Remove runtime JS endpoint replacement (fragile, now unnecessary)
- Fix all domain references to use CLOUDRON_APP_DOMAIN consistently
- Add /ping health check endpoint to Caddy configuration
- Update placeholder server to use dynamic domain

Photos app now working, other apps may need additional fixes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 13:46:17 -06:00
eb300ed36d Fix web app endpoint configuration
- Use relative /api endpoint in Dockerfile build
- Remove complex runtime replacement logic
- Simplify start.sh to avoid read-only filesystem issues
- Restore working Caddy configuration

Version 0.1.78 ready for deployment
2025-07-26 20:28:15 -06:00
38854d33c6 Implement comprehensive web app API endpoint fix
- Patch origins.ts during Docker build to use window.location.origin + '/api'
- Update version to 0.1.69 to force rebuild
- Add browser compatibility check for server-side rendering
- Fix both API and uploader endpoint redirections

This addresses the root cause where web apps were hardcoded to use
https://api.ente.io instead of the local Museum server.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 19:27:11 -06:00
4f91b7ac83 Fix static asset routing and path handling for auth/accounts/cast apps
- Fixed Next.js static asset (_next/*) routing for each app separately
- Updated app path handling to work with both /app and /app/* patterns
- Resolved 404 errors for static assets from auth, accounts, and cast apps
- Updated to version 0.1.66
2025-07-25 11:12:27 -06:00
415148de88 Add comprehensive API documentation to Cloudron setup instructions
- Added detailed API endpoint information in SETUP-INSTRUCTIONS.md
- Documented API usage with Ente CLI
- Enhanced routing configuration for auth/cast/accounts apps
- Updated to version 0.1.64
2025-07-25 11:02:06 -06:00
023dd2e42e Fix JavaScript URL construction error for API endpoint
- Change NEXT_PUBLIC_ENTE_ENDPOINT from "/api" to "https://example.com/api" during build to satisfy URL constructor requirements
- Add runtime replacement in start.sh to replace placeholder with actual domain endpoint
- This resolves the "TypeError: Failed to construct 'URL': Invalid URL" error in the frontend

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-22 08:58:53 -06:00
ba22efa440 Fix S3 configuration - set are_local_buckets to true
- Changed are_local_buckets from false to true (required for external S3)
- Simplified S3 configuration to only use b2-eu-cen bucket
- Removed unnecessary replication buckets for single bucket setup

This aligns with Ente's documentation where are_local_buckets=true
is used for external S3 services like Wasabi.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 20:44:19 -06:00
e25dc5675a Hardcode Wasabi S3 configuration with proper Ente format
- Remove dynamic S3 configuration loading
- Hardcode Wasabi credentials as requested
- Use proper Ente S3 configuration format with datacenter names
- Configure all three storage buckets (b2-eu-cen, wasabi-eu-central-2-v3, scw-eu-fr-v3)
- Set are_local_buckets to false for external S3
- Add compliance flag for Wasabi bucket

This should fix the MissingRegion error by properly configuring S3 storage
according to Ente's expected format.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 20:41:58 -06:00
89e5f2c202 Fix port conflict between Museum server and Caddy
- Changed Museum server to run on port 8080 instead of 3080
- Updated all health check URLs to use port 8080
- Updated Caddy reverse proxy to forward API requests to port 8080
- Added clarifying comment about port usage

This resolves the circular reference where both Caddy and Museum were trying to use port 3080.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 17:18:51 -06:00
Andreas Düren
4ff99bee64 Complete rewrite of Ente Cloudron app with cleaner architecture 2025-03-20 17:52:23 +01:00
Andreas Düren
fd028ca591 Fix syntax error in validate_binary function 2025-03-20 17:38:20 +01:00
Andreas Düren
fd60e4425b Fix Museum binary validation and add Node.js fallback server 2025-03-20 17:29:12 +01:00
Andreas Düren
2d68e44208 Remove Node.js placeholder server completely and use actual Museum server 2025-03-20 17:14:12 +01:00
Andreas Düren
fdbb6d9a7a Enhance Node.js placeholder server with more API endpoints and improve user experience 2025-03-20 17:07:47 +01:00
Andreas Düren
fc7135d483 Fix Museum server binary issues using Docker approach 2025-03-20 16:35:30 +01:00
Andreas Düren
e95fd0a705 Fix Museum server binary issues and add Node.js fallback 2025-03-20 16:19:31 +01:00
Andreas Düren
f27720d544 Replace Node.js placeholder with actual Museum server 2025-03-20 16:10:30 +01:00
Andreas Düren
950481b6c7 Fix infinite loop and implement reliable Node.js placeholder server 2025-03-20 16:03:16 +01:00
Andreas Düren
4d66067d20 Fix infinite loop and implement reliable Node.js placeholder server 2025-03-20 15:59:51 +01:00
Andreas Düren
4081e89fdd Fix Go build environment and frontend URLs 2025-03-20 15:52:35 +01:00
Andreas Düren
d69ab22967 Fix GitHub download URLs and implement placeholder server on port 3080 2025-03-20 15:41:24 +01:00
Andreas Düren
2424a5ffc1 Fix GitHub download issues and provide fallback servers 2025-03-20 15:37:05 +01:00
Andreas Düren
6fd3bde19a Fix GitHub credentials issue, support s3.env, and ensure Caddy properly starts on port 3080 2025-03-20 15:33:49 +01:00
Andreas Düren
144f2b78d1 Add extensive debugging and more resilient startup 2025-03-20 15:29:43 +01:00
Andreas Düren
d828bf3b8e Remove mock server components and install real Ente server 2025-03-20 15:12:30 +01:00
Andreas Düren
3c8309dffd Fix directory creation for static assets and web app files 2025-03-20 14:48:06 +01:00
Andreas Düren
7f7ae4e8bf Implement comprehensive SRP Buffer polyfill to fix verification errors 2025-03-20 14:40:50 +01:00
Andreas Düren
6289577898 Implement Caddy for web app serving and fix OTP verification issues 2025-03-20 14:32:26 +01:00
Andreas Düren
8df2a3a621 Add browser compatibility fixes for URL constructor and Node.js functions 2025-03-20 14:18:30 +01:00