forked from divinevideo/divine-blossom
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfastly.toml.example
More file actions
125 lines (89 loc) · 3.49 KB
/
fastly.toml.example
File metadata and controls
125 lines (89 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# ABOUTME: Example Fastly Compute service configuration
# ABOUTME: Copy to fastly.toml and fill in your credentials
manifest_version = 3
name = "fastly-blossom"
description = "Blossom media server for Nostr"
authors = ["Divine <hello@divine.video>"]
language = "rust"
[local_server]
[local_server.backends]
[local_server.backends.gcs_storage]
url = "https://storage.googleapis.com"
# Fallback CDN backends (checked when GCS returns 404)
[local_server.backends.cdn_divine]
url = "https://cdn.divine.video"
[local_server.backends.blossom_divine]
url = "https://blossom.divine.video"
[local_server.backends.cdn_satellite]
url = "https://cdn.satellite.earth"
[local_server.backends.nostr_build]
url = "https://image.nostr.build"
[local_server.backends.cloud_run_upload]
url = "https://blossom-upload-rust-149672065768.us-central1.run.app"
[local_server.backends.moderation_api]
url = "https://moderation-api.divine.video"
[local_server.kv_stores]
[local_server.kv_stores.blossom_metadata]
file = "kv-store-data.json"
[local_server.config_stores]
[local_server.config_stores.blossom_config]
[local_server.config_stores.blossom_config.contents]
gcs_bucket = "YOUR_BUCKET_NAME"
gcs_project_id = "YOUR_GCP_PROJECT_ID"
[local_server.secret_stores]
[local_server.secret_stores.blossom_secrets]
[local_server.secret_stores.blossom_secrets.contents]
[local_server.secret_stores.blossom_secrets.contents.gcs_access_key]
plaintext = "YOUR_GCS_ACCESS_KEY"
[local_server.secret_stores.blossom_secrets.contents.gcs_secret_key]
plaintext = "YOUR_GCS_SECRET_KEY"
[local_server.secret_stores.blossom_secrets.contents.moderation_api_token]
plaintext = "YOUR_MODERATION_API_BEARER_TOKEN"
[setup]
[setup.backends]
[setup.backends.gcs_storage]
description = "Google Cloud Storage S3-compatible backend"
address = "storage.googleapis.com"
port = 443
# Fallback CDN backends (checked when GCS returns 404)
[setup.backends.cdn_divine]
description = "Divine CDN fallback"
address = "cdn.divine.video"
port = 443
[setup.backends.blossom_divine]
description = "Divine Blossom server fallback"
address = "blossom.divine.video"
port = 443
[setup.backends.cdn_satellite]
description = "Satellite.earth CDN fallback"
address = "cdn.satellite.earth"
port = 443
[setup.backends.nostr_build]
description = "nostr.build media fallback"
address = "image.nostr.build"
port = 443
[setup.backends.cloud_run_upload]
description = "Cloud Run upload/migration service"
address = "blossom-upload-rust-149672065768.us-central1.run.app"
port = 443
[setup.backends.moderation_api]
description = "Divine moderation API (CF Worker)"
address = "moderation-api.divine.video"
port = 443
[setup.kv_stores]
[setup.kv_stores.blossom_metadata]
description = "Blob metadata storage"
[setup.config_stores]
[setup.config_stores.blossom_config]
description = "Service configuration"
items = [
{ key = "gcs_bucket", description = "GCS bucket name" },
{ key = "gcs_project_id", description = "GCP project ID" },
]
[setup.secret_stores]
[setup.secret_stores.blossom_secrets]
description = "Sensitive credentials"
entries = [
{ key = "gcs_access_key", description = "GCS HMAC access key" },
{ key = "gcs_secret_key", description = "GCS HMAC secret key" },
]