doc/self-hosters/config.md
Running the server will generate a configuration file in one of these locations:
config/config.json when Using Dockervolatile/config/config.json in Local Development/etc/puter/config.json on a server (or within a Docker container)For a list of all possible config values, see config_values.md
Instead of editing the generated config.json, you can make a config file
that references it. This makes it easier to maintain if you frequently update
Puter, since you can then just delete config.json to get new defaults.
For example, a local.json might look like this:
{
// Always include this header
"$version": "v1.1.0",
"$requires": [
"config.json"
],
"config_name": "local",
// Your custom configuration
"domain": "my-puter.example.com"
}
To use local.json instead of config.json you will need to set the
environment variable PUTER_CONFIG_PROFILE=local in the context where
you are running Puter.
The default configuration generated by Puter will look something like the following (updated 2025-02-26):
{
"config_name": "generated default config",
"mod_directories": [
"{source}/../extensions"
],
"env": "dev",
"nginx_mode": true,
"server_id": "localhost",
"http_port": "auto",
"domain": "puter.localhost",
"protocol": "http",
"contact_email": "[email protected]",
"services": {
"database": {
"engine": "sqlite",
"path": "puter-database.sqlite"
},
"dynamo" :{"path":"./puter-ddb"}
},
"cookie_name": "...",
"jwt_secret": "...",
"url_signature_secret": "...",
"private_uid_secret": "...",
"private_uid_namespace": "...",
"": null
}