π§ Deep Solutions
Architectural fixes and established solutions for the homelab deployment.
π Frictionless Authentication
- Captcha: Disabled via
config.json(captcha: { enabled: false }). - Email Bypass: Bypassing email verification requires patching
AuthController.tsto respectstrict_email_verification_required: false(by default it forces confirmation for all non-temp accounts). - Session Cache: Puter aggressively caches user state in Valkey (
sessions:v2:uuid:*andusers:id:*). Direct DB modifications require targeted cache eviction viavalkey-cli -c DEL <key>(Cluster Mode).
π Networking Quirks
- Subdomain Offset: Express.js
subdomain offsetdefaults to 2. Foros.loca.zone(3 parts), this breaks{ subdomain: '' }routing. Solved dynamically inserver.ts:app.set('subdomain offset', domain.split('.').length). - S3 Path Style: AWS S3 SDK uses virtual-hosted style by default, causing
ENOTFOUND puter-thumbnails.s3. Resolved by enforcing"forcePathStyle": truein thethumbnailStoreconfig.
π³ Docker Build Optimization
- Cache Busting: Modifying backend TypeScript files doesnβt reliably bust the Docker
COPY . .cache layer when usingtouch. Content must be modified to trigger a proper recompilation. - Worker Preamble: The worker build must be sequenced after the
puter-jsbuild completes to avoid race conditions (ENOENT puter.js).