Configuring Applications
A minimal piku app has a root directory structure similar to this:
ENV
Procfile
app.py
worker.py
requirements.txt
Configuration Files
piku relies on two configuration files shipped with your app to determine how to run it: ENV and Procfile.
- The
ENVfile contains environment variables that allow you to configure bothpikuand your app, following the 12-factor app approach. - The
Procfiletellspikuwhat kind of workers to run
Runtime Detection
Besides ENV and Procfile, piku also looks for runtime-specific files in the root of your app's directory:
- If there's a
requirements.txtorpyproject.tomlfile at the top level, then the app is assumed to require Python. Installing an app with apyproject.tomlwill require poetry or uv. - If there's a
Gemfileat the top level, then the app is assumed to require Ruby. - If there's a
package.jsonfile at the top level, then the app is assumed to require Node.js. - If there's a
pom.xmlor abuild.gradlefile at the top level, then the app is assumed to require Java. - If there's a
deps.ednorproject.cljfile at the top level, then the app is assumed to require Clojure. - If there's a
Godepsfile at the top level, then the app is assumed to require Go.
Info
go.mod support is currently in development.
These are not exclusive, however. There is also a sample Phoenix app that demonstrates how to add support for additional runtimes.