What is the difference between using {:system, "PORT"} and System.get_env("PORT") in deployment?

I’m a bit confusing about configuring packages that are not startable - like simple package of functions.

They don’t have any supervision tree, no modules that can be started - but they also can be configurable.

So, how to configure this types of “applications”?

I prefer to use “:system tuple” configuration approach, but after reading this topic i’m not sure that this is the best idea…