rss email digests over ssh because you're a cool kid
herald.dunkirk.sh
go
rss
rss-reader
ssh
charm
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <title>HERALD - RSS-to-Email via SSH</title>
7 <meta name="description" content="Herald delivers RSS feeds to your inbox via SSH. Upload feed configs, manage subscriptions, and receive updates by email.">
8
9 <!-- Open Graph -->
10 <meta property="og:type" content="website">
11 <meta property="og:title" content="HERALD - RSS-to-Email via SSH">
12 <meta property="og:description" content="Herald delivers RSS feeds to your inbox via SSH. Upload feed configs, manage subscriptions, and receive updates by email.">
13 <meta property="og:url" content="{{.Origin}}">
14 <meta property="og:image" content="https://l4.dunkirk.sh/i/AQ0z6BnQAwWu.webp">
15 <meta property="og:site_name" content="HERALD">
16
17 <!-- Twitter Card -->
18 <meta name="twitter:card" content="summary_large_image">
19 <meta name="twitter:title" content="HERALD - RSS-to-Email via SSH">
20 <meta name="twitter:description" content="Herald delivers RSS feeds to your inbox via SSH. Upload feed configs, manage subscriptions, and receive updates by email.">
21 <meta name="twitter:image" content="https://l4.dunkirk.sh/i/AQ0z6BnQAwWu.webp">
22
23 <link rel="icon" href="/favicon.svg" type="image/svg+xml">
24 <link rel="stylesheet" href="/style.css">
25</head>
26<body>
27<h1>HERALD</h1>
28
29<h2>NAME</h2>
30<pre>
31 herald - RSS-to-Email via SSH
32</pre>
33
34<h2>FILE FORMAT</h2>
35<pre>
36 Feed configs are plain text files with directives:
37
38 =: email you@example.com Recipient email address
39 =: cron 0 8 * * * Standard cron (5 fields)
40 =: digest true Combine items (default: true)
41 =: inline false Include content (default: false)
42 => https://example.com/feed RSS/Atom feed URL
43 => https://blog.com/rss "Blog" Feed with display name
44
45 Example feeds.txt:
46 =: email you@example.com
47 =: cron 0 8 * * *
48 =: digest true
49 => https://dunkirk.sh/atom.xml
50 => https://news.ycombinator.com/rss
51</pre>
52
53<h2>COMMANDS</h2>
54<pre>
55 ls List uploaded feed configs
56 cat <file> Display config file contents
57 rm <file> Delete a config file
58 activate <file> Reactivate a deactivated config
59 deactivate <file> Stop emails for a config
60 run <file> Manually trigger feed fetch and email
61 logs View recent delivery logs
62</pre>
63
64<h2>EXAMPLES</h2>
65<pre>
66 # Upload a config
67 scp {{if ne .SSHPort 22}}-P {{.SSHPort}} {{end}}feeds.txt herald@{{.SSHHost}}:
68
69 # Get your fingerprint (for web dashboard)
70 # Your dashboard will be at:
71 # {{.Origin}}/<fingerprint>
72 ssh {{if ne .SSHPort 22}}-p {{.SSHPort}} {{end}}herald@{{.SSHHost}}
73
74 # Check status
75 ssh {{if ne .SSHPort 22}}-p {{.SSHPort}} {{end}}herald@{{.SSHHost}} ls
76
77 # View config
78 ssh {{if ne .SSHPort 22}}-p {{.SSHPort}} {{end}}herald@{{.SSHHost}} cat feeds.txt
79
80 # Manual run
81 ssh {{if ne .SSHPort 22}}-p {{.SSHPort}} {{end}}herald@{{.SSHHost}} run feeds.txt
82</pre>
83<footer>
84 <span>Kieran Klukas <https://dunkirk.sh></span>
85 <span><a href="https://tangled.org/dunkirk.sh/herald/commit/{{.CommitHash}}">{{.ShortCommitHash}}</a></span>
86</footer>
87</body>
88</html>