# Customization
The generated Compose file is assembled from fragments. Do not edit
Generated/docker-compose.generated.yml directly; setup and updates overwrite
it.
# Create a Custom Fragment
Custom fragment filenames should end in .custom.yml. That suffix is ignored
by Git, avoiding conflicts during updates.
For example, copy the 100 GB pruning profile:
cp docker-compose-generator/docker-fragments/opt-save-storage.yml \
docker-compose-generator/docker-fragments/opt-save-storage.custom.yml
Edit the custom file, then select its basename:
btcpay-fragments add opt-save-storage.custom
The command preserves other selected fragments. Remove the custom fragment with:
btcpay-fragments remove opt-save-storage.custom
# Fragment Metadata
Fragments can declare:
required: recursively selected dependencies that cannot be excludedrecommended: recursively selected defaults that can be excludedexcluded: recommended fragments suppressed while this fragment is selectedexclusive: alternatives that cannot be selected togetherincompatible: conflicts with an exclusive grouprequired-routesandoptional-routes: Nginx route declarations
Use existing fragments as examples and validate the resulting Compose file.
# Generate Without Installing
Set the complete generator selection and run build.sh from the repository
root:
BTCPAYGEN_CRYPTO1="btc" \
BTCPAYGEN_REVERSEPROXY="nginx" \
BTCPAYGEN_LIGHTNING="none" \
./build.sh
Unlike btcpay-setup.sh, direct build.sh use does not apply the setup
defaults. Specify every selection you need. The output is
Generated/docker-compose.generated.yml; operate it explicitly with Docker
Compose and provide its runtime environment.
# Existing Reverse Proxy
For a standard installation behind an external reverse proxy, prefer the documented setup path in Networking instead of manually operating a custom generated stack.