Cloud Storage
Overview
Section titled “Overview”Dynamic Markdown Site uses gocloud.dev for portable blob storage. The same binary works with any supported backend — just change the URL.
Filesystem (Default)
Section titled “Filesystem (Default)”dynamic-markdown-site -root ./docs# Or explicitly:dynamic-markdown-site -storage-url file:///absolute/path/to/docsAmazon S3
Section titled “Amazon S3”dynamic-markdown-site -storage-url s3://my-bucket/docsAuthentication
Section titled “Authentication”Uses the standard AWS SDK credential chain:
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEYenvironment variables~/.aws/credentialsprofile- IAM role (on EC2/ECS/EKS)
export AWS_ACCESS_KEY_ID=AKIA...export AWS_SECRET_ACCESS_KEY=...dynamic-markdown-site -storage-url s3://my-bucket/docsRegion
Section titled “Region”Set AWS_REGION or AWS_DEFAULT_REGION:
AWS_REGION=eu-west-1 dynamic-markdown-site -storage-url s3://my-bucket/docsGoogle Cloud Storage
Section titled “Google Cloud Storage”dynamic-markdown-site -storage-url gs://my-bucket/docsAuthentication
Section titled “Authentication”Uses GOOGLE_APPLICATION_CREDENTIALS for a service account key, or the metadata server on GCE/GKE.
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.jsondynamic-markdown-site -storage-url gs://my-bucket/docsAzure Blob Storage
Section titled “Azure Blob Storage”dynamic-markdown-site -storage-url azblob://my-container/docsSet AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY (or a SAS token).
In-Memory (Testing)
Section titled “In-Memory (Testing)”dynamic-markdown-site -storage-url mem://Useful for smoke testing the binary without any files.
Refreshing Content
Section titled “Refreshing Content”In production (non-dev mode), content is loaded at startup. To reload from the storage backend without restarting:
curl -X POST http://localhost:8080/refreshThis re-reads all content and invalidates the cache. Rate limited to 10 requests per minute per IP.