Using file() instead of templatefile() so $${VAR} isn't processed.
Changed to ${VAR} for proper docker-compose variable interpolation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Enable Forgejo registration for OAuth users (DISABLE_REGISTRATION=false)
- Use public URL for Woodpecker OAuth redirects instead of internal hostname
- Add WOODPECKER_OPEN=true to allow new user registrations
- Bcrypt hash OAuth client secret before storing in database
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>