Skip to content

Embedded App: do not extract sources #2308

@henderkes

Description

@henderkes

Describe your feature request

Is your feature request related to a problem? Please describe.
The extraction to /tmp/frankenphp_... brings a few issues with it.

  • /tmp must be writable.
  • systemd ProtectTmp can lead to unexpected paths
  • startup extracts the tar, can be slow
  • old files linger in /tmp until restart of the machine
  • source code is human readable without any reverse engineering

Describe the solution you'd like
Embedded filesystem inside the binary, rather than extracting the tares?

  • possibly encrypted? not a goal to truly make it "secure", but not immediately showing the source code is a plus

Describe your approach

  • create named virtual filesystem in go
  • redirect caddy to use that vfs for e.g. file_server and matchers
  • overwrite php file handlers to redirect to the vfs
  • work around possible opcache issues (?)
  • find a good solution for folders that need write access (e.g. symfony cache)?
  • embed a database...? not sure how this could be possible, but who knows. otherwise create a proof of concept using sqlite.

I'll work on this slowly over the next weeks. Don't expect anything immediately. I think @dunglas mentioned that something like this was planned as a potential commercial offering, so if you don't want me to pick it up, just let me know now before I start.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions