-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmanifest.yaml
More file actions
350 lines (311 loc) · 13.1 KB
/
Copy pathmanifest.yaml
File metadata and controls
350 lines (311 loc) · 13.1 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
# ==============================================================================
# Haven Start9 Package Manifest
# ==============================================================================
id: haven
title: Haven
version: 1.2.3
ui: false
release-notes: |
**v1.2.3 - Metadata Fix (2025-01-01)**
Changes:
- Fixed wrapper repository URL
- Updated support site to wrapper issues
- Added Lightning donation address
---
**v1.2.2 - Release Ready (2025-01-01)**
Changes:
- Restored official Haven icon
- All GitHub issues resolved
- Cloud backup functionality postponed to v1.3.0
- Ready for Start9 Community Registry
---
**v1.1.6 - Database Dashboard (2025-12-27)**
New Features:
- **Database Dashboard**: Web interface to view stored Nostr events by kind
- **Event Statistics**: See total event counts and breakdown by database (private/chat/outbox/inbox)
- **JSON Event Viewer**: Click any kind card to view raw event data in formatted JSON
- **Kind Descriptions**: Human-readable descriptions for common Nostr event kinds
API Endpoints:
- Added `GET /api/stats` - Returns event statistics grouped by kind and database
- Added `GET /api/events/{kind}?db={database}` - Returns events filtered by kind and database
- Added `GET /dashboard` - Serves the dashboard web interface
UI Improvements:
- Added dashboard access button on main landing page
- Responsive design with Tailwind CSS
- Loading indicators and error handling
Use Cases:
- Verify database persistence after container restarts
- Debug import functionality and confirm imported events
- Monitor relay activity and event types
- Inspect event content for troubleshooting
Documentation:
- Added Database Dashboard documentation (docs/database-dashboard.md)
- Added Dashboard Testing Guide (docs/dashboard-testing-guide.md)
- Added Implementation Summary
---
**v1.1.5 - Import Notes Feature (2025-12-27)**
New Features:
- **Manual Import Action**: Import your past notes and mentions from external relays
- **Import Timeout Configuration**: Customize timeout values for owner notes (10-300s) and tagged notes (30-600s)
- **Detailed Progress Logging**: Real-time progress tracking with batch numbers, ETAs, and statistics
- **Import Summary Report**: Comprehensive report with total notes imported, duration, and storage locations
Improvements:
- Enhanced import relay configuration with detailed validation
- Colored log output for better readability
- Progress percentage and estimated completion time
- Separate log files for each import session (`/data/logs/import-*.log`)
- Failed note tracking and reporting
Configuration:
- Added `import-owner-notes-timeout` (default: 30s)
- Added `import-tagged-notes-timeout` (default: 120s)
- Added `import-query-interval` (default: 360000s)
- Import seed relays now support both CSV format and JSON arrays
**v1.1.4 - Blastr Timeout Optimization (2025-12-25)**
Improvements:
- **Extended Blastr Timeout**: Increased connection timeout from 5s to 15s
- Better reliability for Tor-based relay connections
- Reduced timeout errors for slow or distant relays
- Improved IPv6-only relay connectivity
**v1.1.3 - IPv6 Support for Blastr (2025-12-25)**
New Features:
- **IPv6 Support**: Blastr can now broadcast to IPv6-only relays
- Tor configured to use IPv6 for outbound connections
- Go's default HTTP client provides IPv6 support via Happy Eyeballs v2
- IPv6 connectivity check on startup
Technical Improvements:
- Added ClientUseIPv6, ClientPreferIPv6ORPort, and IPv6Exit to torrc
- IPv6 automatically preferred with 300ms fallback to IPv4 (RFC 8305)
- Added iputils and iproute2 packages for IPv6 diagnostics
- Startup logs now show IPv6 availability status
**v1.1.2 - Blastr Debug Logging (2025-12-25)**
Debug Improvements:
- Added extensive debug logging for Blastr relay configuration
- Shows config file reading process step-by-step
- Displays yq and jq exit codes and outputs
- Helps identify configuration issues
**v1.1.1 - Critical Blastr Hotfix (2025-12-25)**
CRITICAL Bug Fixes:
- **BREAKING FIX**: Fixed Blastr relay list parsing that caused Haven to fail on startup
- Simplified relay list initialization to use more reliable jq-based parsing
- Added proper error handling and fallback to empty relay list
- Fixed Properties display to show Blastr relay count
- Improved logging for Blastr configuration
**v1.1.0 - Blastr Relay Feature (2025-12-26)**
New Features:
- **Blastr Relay Broadcasting**: Events posted to Haven are now automatically forwarded to external relays
- Configure Blastr relay list from Start9 UI (comma-separated relay URLs)
- Default relay list includes popular Nostr relays (relay.damus.io, nos.lol, relay.nostr.band, etc.)
- Support for both domain-only format (relay.damus.io) and full WebSocket URLs (wss://relay.damus.io)
Improvements:
- Added relay URL validation in configuration
- Enhanced logging for Blastr relay operations
- Relay count now displayed in logs (e.g., "blasted ... to 8 relays")
**v1.0.8 - Critical Tor Address Persistence Fix (2025-12-25)**
CRITICAL Bug Fixes:
- **BREAKING FIX**: Tor Hidden Service directory now persists to /data/tor/haven/ (prevents .onion address from changing on updates)
- This fix ensures your .onion address remains the same across package updates and restarts
- Note: If you already updated to 1.0.7, your .onion address will change one more time with this update, but will then remain stable
**v1.0.7 - Blossom Server Hotfix (2025-12-25)**
Bug Fixes:
- Fixed Blossom file storage path issue (media files now correctly saved to /data/blossom/)
- Changed all relay ServiceURLs from https:// to http:// for proper Tor .onion address compatibility
- Added detailed error logging for Blossom file operations (create, read, delete)
- Fixed BlossomPath configuration to prevent trailing slash issues
Improvements:
- Enhanced Blossom server initialization logging for easier debugging
- Improved error messages for media upload/download operations
**v1.0.6 - Initial Release**
- Initial Start9 release
- Tor-only operation for maximum privacy
- Full Blossom server support (NIP-96 & BUD-02 compliant)
- Web of Trust integration for spam protection
- Four specialized Nostr relays (Private, Chat, Inbox, Outbox)
- BadgerDB and LMDB database engine support
license: MIT
wrapper-repo: https://github.com/higedamc/haven-start9-wrapper
upstream-repo: https://github.com/bitvora/haven
support-site: https://github.com/higedamc/haven-start9-wrapper/issues
marketing-site: https://github.com/bitvora/haven
donation-url: https://getalby.com/p/godzhigella
# ==============================================================================
# Package Description
# ==============================================================================
description:
short: Self-sovereign Nostr relay suite with Blossom media server
long: "Haven (High Availability Vault for Events on Nostr) is a comprehensive \npersonal Nostr relay implementation featuring four specialized relays \nand an integrated Blossom media server. Run your own sovereign \ncommunications infrastructure over Tor.\n\n**Features:**\n- **Private Relay**: Your personal secure storage for drafts and private notes\n- **Chat Relay**: Web of Trust protected direct messages (NIP-04)\n- **Inbox Relay**: Receive tagged events from trusted sources\n- **Outbox Relay**: Public broadcast of your events\n- **Blossom Server**: Decentralized media hosting (NIP-96 & BUD-02 compliant)\n- **Web of Trust**: Automatic spam protection based on your social graph\n- **Tor-Only**: Maximum privacy with .onion addresses\n- **Multiple DB Engines**: Choose between BadgerDB or LMDB\n\n**Compatible Clients:**\n- Amethyst (Android) - Full support including Blossom\n- Damus (iOS)\n- Primal\n- Coracle\n- nostrudel\n- And any Nostr client supporting NIP-42 (Auth)\n"
# ==============================================================================
# Package Assets
# ==============================================================================
assets:
license: LICENSE
icon: icon.png
instructions: instructions.md
docker-images: docker-images.tar
# ==============================================================================
# Main Container Configuration
# ==============================================================================
main:
type: docker
image: main
entrypoint: docker_entrypoint.sh
args: []
mounts:
main: /data
ui-cert: /mnt/ui-cert
gpu-acceleration: false
shm-size-mb: null
# ==============================================================================
# Health Checks
# ==============================================================================
health-checks:
main:
name: Web Interface
success-message: Haven is running and accessible
type: docker
image: main
entrypoint: check-web.sh
args: []
inject: true
mounts:
main: /data
# ==============================================================================
# Configuration Management
# ==============================================================================
config:
get:
type: script
set:
type: script
# ==============================================================================
# Actions
# ==============================================================================
actions:
import-notes:
name: Import Past Notes
description: |
Configure Haven to import your past notes and mentions on next restart.
**How it works:**
1. This action validates your import configuration
2. Creates an import request flag
3. You must RESTART Haven service to begin the import
4. Haven will start in import mode and fetch:
- All your notes from the specified start date
- Notes that mention you (replies, reactions, zaps, etc.)
5. After import completes, Haven automatically restarts in normal mode
**Time required:**
- Several minutes to hours depending on amount of data
- You can monitor progress in Haven's logs during import
**Before using:**
- Configure "Import Start Date" (e.g., 2024-01-01)
- Configure "Import Seed Relays" (comma-separated URLs)
- Optionally adjust timeout values
warning: |
⚠️ IMPORTANT: After running this action, you MUST restart Haven!
The import can take a long time:
- 3 months of data: 5-15 minutes
- 1 year of data: 15-45 minutes
- 2+ years of data: 45 minutes - 2 hours
Do NOT stop Haven during the import as it may leave incomplete data.
Check the logs to monitor import progress.
allowed-statuses:
- running
implementation:
type: docker
image: main
system: false
entrypoint: docker_entrypoint.sh
args: ["import-notes"]
mounts:
main: /data
io-format: json
# ==============================================================================
# Properties Display
# ==============================================================================
properties:
type: docker
image: main
entrypoint: properties.sh
args: []
mounts:
main: /data
io-format: yaml
inject: false
# ==============================================================================
# Volume Configuration
# ==============================================================================
volumes:
main:
type: data
ui-cert:
type: certificate
interface-id: ui
# ==============================================================================
# Network Interfaces
# ==============================================================================
interfaces:
main:
name: Nostr Relay Interface
description: Main Nostr relay endpoint (WebSocket) and Blossom media server via .onion
tor-config:
port-mapping:
80: "3355"
lan-config: null
ui: false
protocols:
- tcp
- http
- ws
ui:
name: Haven Web Interface
description: Web dashboard and management interface
tor-config:
port-mapping:
80: "3355"
lan-config:
443:
ssl: true
internal: 3355
ui: true
protocols:
- tcp
- http
# ==============================================================================
# Dependencies
# ==============================================================================
dependencies: {}
# ==============================================================================
# Backup Configuration
# ==============================================================================
backup:
create:
type: docker
image: compat
system: true
entrypoint: compat
args:
- duplicity
- create
- /mnt/backup
- /data
mounts:
BACKUP: /mnt/backup
main: /data
restore:
type: docker
image: compat
system: true
entrypoint: compat
args:
- duplicity
- restore
- /mnt/backup
- /data
mounts:
BACKUP: /mnt/backup
main: /data
# ==============================================================================
# Migrations
# ==============================================================================
migrations:
from: {}
to: {}