Commit Graph

146 Commits

Author SHA1 Message Date
51c59c4a04 Enable Ente CLI persistence and update docs 2025-10-30 12:25:40 -06:00
71cba01d09 Fix Caddy trusted proxies syntax 2025-10-30 12:25:32 -06:00
Andreas Dueren
2ae6306c82 Fix Caddy trusted proxies syntax 2025-10-30 11:03:30 -06:00
Andreas Dueren
c336e68347 Fix CORS handling and real IP logging 2025-10-30 10:49:54 -06:00
Andreas Dueren
bab3024a7d Update to version 0.4.3 with S3 configuration improvements
- Always regenerate Museum configuration on startup to enable runtime S3 credential changes
- Improve S3 configuration logging and validation for Cloudflare R2 endpoints
- Update SMTP configuration to use SMTPS port 2465 with TLS encryption
- Fix Caddy proxy headers to properly forward client information
- Add startup.log for enhanced troubleshooting
- Update build instructions and changelog for version 0.4.3

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 08:57:37 -06:00
Andreas Dueren
5d56c2cb04 Add back SMTP authentication for port 2525
Restore SMTP username and password for authenticated relay on port
2525. According to Cloudron docs, this port should work with plain
SMTP and authentication without STARTTLS.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 09:18:02 -06:00
Andreas Dueren
2d81c3b588 Revert to port 2525 without authentication for internal mail relay
The STARTTLS port 2587 requires TLS certificate verification, but
Cloudron's internal mail relay uses a wildcard cert for *.due.ren
which doesn't match the hostname 'mail'. Port 2525 is the internal
plain SMTP relay that doesn't require authentication or TLS for
connections from within the same container network.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 09:12:46 -06:00
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
8f1c87e6e5 Bump version to 0.1.81 for asset routing fix 2025-08-01 13:56:09 -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
de5bae9791 Remove large ente-source directory to fix build uploads
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 19:47:47 -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
973aabe927 Add OTP email monitor to handle Museum skipped emails
- Implement comprehensive OTP email monitoring service
- Monitor Museum logs for "Skipping sending email" pattern
- Send verification emails using Cloudron email addon
- Add specific regex pattern for Museum's skip email format
- Version bump to 0.1.62

The monitor captures OTP codes from logs when Museum skips sending
emails and sends them via Cloudron's email system. This ensures
users receive their verification codes even when Museum's email
configuration is not sending directly.
2025-07-22 12:27:44 -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
74fd34d608 Update CloudronManifest version to 1.0.1
Increment version after multiple iterations of S3 configuration fixes and port conflict resolution.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 20:37:07 -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