Karmanyaah Malhotra
c2382d29a1
refactor visitor IPs and allow exempting IP Ranges
...
Use netip.Addr instead of storing addresses as strings. This requires
conversions at the database level and in tests, but is more memory
efficient otherwise, and facilitates the following.
Parse rate limit exemptions as netip.Prefix. This allows storing IP
ranges in the exemption list. Regular IP addresses (entered explicitly
or resolved from hostnames) are IPV4/32, denoting a range of one
address.
2022-10-05 16:04:42 -05:00
Philipp Heckel
bddde5c637
Bump Go version, Generics whoooo
2022-10-01 15:50:48 -04:00
Philipp Heckel
419bfecd6f
Reformatting, make update
2022-09-27 12:37:02 -04:00
Hunter Kehoe
3c5a10de17
combine attachment and icon url regex
2022-07-17 15:47:21 -06:00
Hunter Kehoe
99886d7f66
change icon from object to string
2022-07-17 15:40:24 -06:00
Hunter Kehoe
d519fd999b
notification icons
2022-07-16 14:13:46 -06:00
Philipp Heckel
10a9aca2a1
Delete expired attachments based on mod time instead of DB entry to avoid races
2022-07-08 10:00:04 -04:00
Philipp Heckel
bf8077626e
Permissions of unix socket
2022-07-03 19:33:01 -04:00
Koro
ed1673beed
Set socket mode after creation.
2022-07-03 17:39:08 -04:00
Philipp Heckel
113900d3eb
Cache startup queries
2022-06-23 11:02:45 -04:00
Philipp Heckel
3334d84861
Fix another race, add test
2022-06-22 15:11:50 -04:00
Philipp Heckel
ed9d99fd57
"Fix" data race
2022-06-22 13:47:54 -04:00
Philipp Heckel
edfc1b78a1
Delayed message lock shorter
2022-06-21 20:07:08 -04:00
Philipp Heckel
c1f7bed8d1
Fix tests, lock topic as short as possible
2022-06-21 19:45:23 -04:00
Philipp Heckel
85f2252a77
WIP: Shorter lock, for #338
2022-06-21 19:07:27 -04:00
Philipp Heckel
d05211648d
Fix since=<id>
implementation for multiple topics, closes #336
2022-06-20 12:11:52 -04:00
Philipp Heckel
25a4b29ffc
Return HTTP 500 on Matrix discovery GET if base-url not configured; log entire HTTP request when TRACE enabled
2022-06-19 21:25:35 -04:00
Philipp Heckel
9918f4965d
Only use last X-Forwarded-For address as visitor address, closes #328
2022-06-16 15:31:09 -04:00
Philipp Heckel
18bd3c0e55
Docs and Matrix tests
2022-06-16 11:40:56 -04:00
Philipp Heckel
ebbc2838ba
Move error handling to main error handling; move matrix logic to its own file
2022-06-15 20:36:49 -04:00
Philipp Heckel
91375b2e8e
Minor refactor, added GET
2022-06-15 16:03:12 -04:00
Philipp Heckel
27910772f0
Derpyderp
2022-06-14 20:43:17 -04:00
Philipp Heckel
e9f3edb76b
WIP: Matrix
2022-06-13 22:07:30 -04:00
Philipp Heckel
cf0f002bfa
Add version number to ntfy serve output
2022-06-12 11:54:58 -04:00
Philipp Heckel
2b42cea1a3
Allow HEAD requests for file attachments
2022-06-10 21:33:39 -04:00
Philipp Heckel
0521f19ea4
Fix docs header color; tiny other fixes with logging
2022-06-02 20:59:07 -04:00
Philipp Heckel
e12995e218
Logging in subscribe and publish command
2022-06-02 11:59:22 -04:00
Philipp Heckel
5cc0b194d3
Add --trace and --no-log-dates; add docs
2022-06-02 10:50:05 -04:00
Philipp Heckel
7845eb0124
So much logging
2022-06-01 23:24:44 -04:00
Philipp Heckel
ab955d4d1c
Logging
2022-06-01 16:57:35 -04:00
Philipp Heckel
a04cf5fcb6
Merge branch 'main' into logging
2022-05-31 23:39:11 -04:00
Philipp Heckel
c80e4e1aa9
Make Firebase logic testable, test it
2022-05-31 23:16:44 -04:00
Philipp Heckel
f9284a098a
Store Sender IP in DB for delayed messages
2022-05-31 21:39:19 -04:00
Philipp Heckel
8283b6be97
Firebase quota limit
2022-05-31 20:38:56 -04:00
Philipp Heckel
dc0e699fb5
WIP: Logging
2022-05-29 22:14:14 -04:00
Philipp Heckel
b2c2bd1e4b
Remove "poll" alias for X-Poll-ID
2022-05-28 22:06:46 -04:00
Philipp Heckel
96bb357435
Polish the poll_request stuff
2022-05-27 20:30:20 -04:00
Philipp Heckel
6a43c1a126
WIP: iOS poll_request forwarder
2022-05-27 07:55:57 -04:00
Philipp Heckel
af76a2606d
Support for Firebase ~poll keepalive topic that wakes up iOS devices every 20 minutes
2022-05-25 21:39:46 -04:00
Philipp Heckel
c684a39191
Fine tuning
2022-05-13 14:42:25 -04:00
Curid
9684629549
Add disable option to web-root
...
Closes #238
2022-05-13 17:08:07 +00:00
Philipp Heckel
edfed24c27
Make Upgrade header check for websockets case insensitive, closes #228
2022-04-29 13:23:04 -04:00
Philipp Heckel
1f6118f068
Finish up better parsing
2022-04-27 09:51:23 -04:00
Philipp Heckel
b805d49cfd
Disallow HEAD/GET requests with body
2022-04-23 13:40:26 -04:00
Philipp Heckel
712c292183
More docs
2022-04-20 16:31:25 -04:00
Philipp Heckel
8900df27c9
Docs, still WIP
2022-04-19 23:26:46 -04:00
Philipp Heckel
5a9b2122c2
Make simple actions parsing work
2022-04-19 09:14:32 -04:00
Philipp Heckel
55869f551e
Add ID
2022-04-17 14:29:43 -04:00
Philipp Heckel
26efd481e3
WIP Actions
2022-04-16 16:17:58 -04:00
Philipp Heckel
aba7e86cbc
Attachment behavior fix for Firefox
2022-04-03 12:39:52 -04:00
Philipp Heckel
f98743dd9b
Continued work on send dialog and drag and drop
2022-04-02 17:06:26 -04:00
Philipp Heckel
b67d9fc85d
Added missing 'delay' and 'email' params to publish as json
2022-03-29 15:40:26 -04:00
Philipp Heckel
03ad5dcff6
Add Allow-Origin: *, because YOLO
2022-03-25 17:17:24 -04:00
Philipp Heckel
b409c89d3b
Do not allow comma in topic name in publish via GET endpoint (no ticket)
2022-03-23 14:29:55 -04:00
Philipp Heckel
8fcc40942f
Publish as JSON
2022-03-16 14:16:54 -04:00
Philipp Heckel
37d4d5d647
PUT/POST as JSON, relates to #133
2022-03-15 16:00:59 -04:00
Philipp Heckel
750be7f07e
Fix content type for config.js
2022-03-11 15:56:54 -05:00
Philipp Heckel
3f978bc45f
Better test messages
2022-03-10 22:58:24 -05:00
Philipp Heckel
488aeb119b
Gzip static responses
2022-03-10 21:55:56 -05:00
Philipp Heckel
160c72997f
Fix auth base64, fix iPhone things
2022-03-10 18:11:12 -05:00
Philipp Heckel
840cb5b182
Add server-generated /config.js; add error boundary
2022-03-09 23:28:55 -05:00
Philipp Heckel
acde2e5b6e
Remove indexPage
2022-03-05 22:18:03 -05:00
Philipp Heckel
c5ce51f242
Add --web-root switch
2022-03-05 21:28:25 -05:00
Philipp Heckel
e27d5719f0
Embed new web UI into server
2022-03-05 20:24:10 -05:00
Philipp Heckel
cda9dfa9d0
Merge branch 'main' into ui
2022-02-27 16:10:21 -05:00
Philipp Heckel
4cd30c35ce
Rename cache to messageCache
2022-02-27 14:47:28 -05:00
Philipp Heckel
c21737d546
Combine tests and all that
2022-02-27 14:21:34 -05:00
Philipp Heckel
7d93b0596b
Almost there; Replace memCache with :memory: SQLite cache
2022-02-27 09:38:46 -05:00
Philipp Heckel
18b91cf250
Merge branch 'since-id' into ui
2022-02-26 16:01:31 -05:00
Philipp Heckel
4af9c07577
WIP: Since ID, works
2022-02-26 15:57:10 -05:00
Philipp Heckel
530f55c234
Fully support auth in Web UI; persist users in localStorage (for now); add ugly ?auth=... param
2022-02-25 23:25:04 -05:00
Philipp Heckel
6d343c0f1a
Login page of "subscribe dialog", still WIP, but looking nice
2022-02-25 16:07:25 -05:00
Philipp Heckel
2ad0802b65
Rate limit exemption; relates to #144
2022-02-14 16:09:59 -05:00
Philipp Heckel
0df8aa9a5d
Replace \\n with \n in X-Message header
2022-02-13 09:23:55 -05:00
Philipp Heckel
b1bbbf0103
Simplify again
2022-01-31 20:12:47 -05:00
Philipp Heckel
c2f31b9c9f
Move firebase to seperate file
2022-01-31 20:06:48 -05:00
Philipp Heckel
198e2cfd90
Do not forward messages to Firebase if topic is not world-readable
2022-01-31 19:33:22 -05:00
Philipp Heckel
c56814e7da
Add wildcard access control
2022-01-31 11:44:58 -05:00
Philipp Heckel
631ade5430
Support multiple topics in auth
2022-01-27 12:49:05 -05:00
Philipp Heckel
e61a0c2f78
Add /auth endpoint and tests
2022-01-25 23:04:09 -05:00
Philipp Heckel
460162737a
More auth
2022-01-24 00:54:28 -05:00
Philipp Heckel
393f95aeac
Auth CLI, continued
2022-01-23 23:02:39 -05:00
Philipp Heckel
e309775ac1
More auth CLi
2022-01-23 00:54:18 -05:00
Philipp Heckel
f388fd9c90
Move to package
2022-01-23 00:02:16 -05:00
Philipp Heckel
1287594505
Simplify tables
2022-01-22 23:01:20 -05:00
Philipp Heckel
86b20e8ccd
All the auth things are working now
2022-01-22 14:47:27 -05:00
Philipp Heckel
2181227a6e
WIP: Auth in 80 lines of code :-)
2022-01-21 22:22:27 -05:00
Philipp Heckel
aab705f4a4
Fix baseURL check
2022-01-21 14:17:59 -05:00
Philipp Heckel
7e817f408c
Send encoding in Firebase (even though that doesn't make a ton of sense right now)
2022-01-17 13:49:02 -05:00
Philipp Heckel
4ceb058a40
Handle binary messages for UnifiedPush
2022-01-17 13:28:07 -05:00
Philipp Heckel
75f8607d75
Bail out early if HTTP is spoken to /ws endpoint
2022-01-16 17:54:15 -05:00
Philipp Heckel
9b0e7eedb2
Fix data race
2022-01-16 00:07:32 -05:00
Philipp Heckel
2b6363474e
Combine things, move stuff
2022-01-15 23:17:46 -05:00
Philipp Heckel
707c58a120
Do not print ugly WS error; tests
2022-01-15 22:33:35 -05:00
Philipp Heckel
846ee0fb2d
Websockets; working
2022-01-15 13:23:35 -05:00
Philipp Heckel
b079cb99a4
Merge branch 'main' into unix-socket
2022-01-14 20:16:12 -05:00
Philipp Heckel
a75f74b471
Bump version; update docs
2022-01-14 12:23:58 -05:00
Philipp Heckel
e50779664d
Remove peaking, addresses #93
2022-01-14 12:13:14 -05:00
Philipp Heckel
38b28f9bf4
CLI; docs docs docs
2022-01-12 21:24:48 -05:00
Philipp Heckel
aa94410308
Daily traffic limit
2022-01-12 18:52:07 -05:00
Philipp Heckel
c76e55a1c8
Making RateLimiter and FixedLimiter, so they can both work with LimitWriter
2022-01-12 17:03:28 -05:00
Philipp Heckel
f6b9ebb693
Lots of tests
2022-01-12 11:05:04 -05:00
Philipp Heckel
68a324c206
Fail early for too-large attachments
2022-01-11 12:58:11 -05:00
Philipp Heckel
0b0595384e
Listen on Unix socket
2022-01-10 16:28:13 -05:00
Philipp Heckel
289a6fdd0f
Add attachment expiry option
2022-01-10 15:36:12 -05:00
Philipp Heckel
e8cb9e7fde
Better mime type probing
2022-01-10 13:38:51 -05:00
Philipp Heckel
44a9509cd6
Properly handle different attachment use cases
2022-01-08 15:47:08 -05:00
Philipp Heckel
cefe276ce5
Tests for fileCache
2022-01-08 12:14:43 -05:00
Philipp Heckel
e7c19a2bad
Expire attachments properly
2022-01-07 15:15:33 +01:00
Philipp Heckel
c45a28e6af
Attachments limits; working visitor limit
2022-01-07 14:49:28 +01:00
Philipp Heckel
9171e94e5a
Fix file extension detection; fix HTTPS port
2022-01-06 14:45:23 +01:00
Philipp Heckel
24eb27d41c
Merge branch 'main' into attachments
2022-01-05 00:25:49 +01:00
Philipp Heckel
41c1189fee
Persist "click"
2022-01-04 23:40:41 +01:00
Philipp Heckel
2e40b895a7
Fix message truncation, relates to #84
2022-01-04 21:09:47 +01:00
Philipp Heckel
76d102f964
Add "truncated" flag to let Android app know
2022-01-04 20:53:32 +01:00
Philipp Heckel
807d2b0d9d
Truncate FCM messages if they are too long; This was trickier than expected; relates to #84
2022-01-04 20:43:37 +01:00
Philipp Heckel
722c579db0
Increase FCM priority for ntfy priority high and max, closes #70
2022-01-04 19:59:54 +01:00
Philipp Heckel
2930c4ff62
Preview URL
2022-01-04 19:45:29 +01:00
Philipp Heckel
38788bb2e9
WIP: attachments
2022-01-04 00:55:08 +01:00
Philipp Heckel
eb5b86ffe2
WIP: Attachments
2022-01-02 23:56:12 +01:00
Philipp Heckel
113053a9e3
Fix encoding issues
2021-12-28 01:26:20 +01:00
Philipp Heckel
01a1d981cf
fix nil pointer
2021-12-27 22:18:15 +01:00
Philipp Heckel
e7f8fc93e4
Working prefix
2021-12-27 22:06:40 +01:00
Philipp Heckel
7eaa92cb20
WIP
2021-12-27 16:39:28 +01:00
Philipp Heckel
3001e57bcc
WIP: mail publish
2021-12-27 15:48:09 +01:00
Philipp Heckel
d6762276f5
Test
2021-12-25 22:07:55 +01:00
Philipp Heckel
41514cd557
Merge branch 'main' into up
2021-12-25 21:49:47 +01:00
Karmanyaah Malhotra
63a29380a9
up testing
2021-12-25 10:26:18 -06:00
Philipp Heckel
eeb378cfdc
Change error JSON
2021-12-25 15:21:41 +01:00
Philipp Heckel
7a23779d07
JSON API errors
2021-12-25 15:15:05 +01:00
Philipp Heckel
29628a66a6
Initial
2021-12-25 11:56:02 +01:00
Philipp Heckel
f553cdb282
Continued e-mail support
2021-12-24 15:01:29 +01:00
Philipp Heckel
7280ae1ebc
Email rate limiting + tests
2021-12-24 00:03:04 +01:00
Philipp Heckel
873c57b3d8
Send emails
2021-12-23 21:04:17 +01:00
Philipp Heckel
85939618c8
Fix Poll(); yeyy tests
2021-12-22 23:45:19 +01:00
Philipp Heckel
fe5734d9f0
Tests for cliet package
2021-12-22 23:20:43 +01:00
Philipp Heckel
6a7e9071b6
Tests, client tests WIP
2021-12-22 14:17:50 +01:00
Philipp Heckel
68d881291c
Docs, LoadConfig, config test
2021-12-22 13:46:17 +01:00
Philipp Heckel
534fca0d3b
Fix data race
2021-12-22 10:04:59 +01:00
Philipp Heckel
b6120cf6d7
Message filtering tests
2021-12-22 09:44:16 +01:00
Philipp Heckel
09bf13bd70
Query filters only apply to message events
2021-12-21 21:29:37 +01:00
Philipp Heckel
9315829bc4
Query filters
2021-12-21 21:22:27 +01:00
Philipp Heckel
fa9d6444f5
Move config files and folders
2021-12-18 22:02:36 -05:00
Philipp Heckel
1e8421e8ce
WIP: CLI, relates to #46
2021-12-16 20:33:01 -05:00
Philipp Heckel
534b93e142
Webhooks ( #55 ), more tests ( #35 ) and python examples ( #50 )
2021-12-15 16:12:40 -05:00
Philipp Heckel
02f8a32b46
GET-based send/trigger, relates to #55
2021-12-15 09:41:55 -05:00
Philipp Heckel
9cb48dbb60
Move background tasks to functions
2021-12-15 09:13:16 -05:00
Philipp Heckel
63206f8581
Firebase keepalive, supports #56
2021-12-13 22:30:28 -05:00
Philipp Heckel
01d21165e9
Docs docs docs
2021-12-11 00:06:25 -05:00
Philipp Heckel
e8688fed4b
Lots more tests
2021-12-10 22:57:01 -05:00
Philipp Heckel
06b4d9c83b
Natural language
2021-12-10 19:59:51 -05:00
Philipp Heckel
196c86d12b
WIP_ Add 'At:'/'Delay:' headers to support scheduled messages
2021-12-10 11:31:42 -05:00
Philipp Heckel
f966b2f9d7
Add 'Firebase: no' header, closes #42
2021-12-09 12:15:17 -05:00
Philipp Heckel
d6fbccab55
Add 'Cache: no' header, closes #41
2021-12-09 10:23:17 -05:00
Philipp Heckel
98c1ab9e86
Finish cache tests
2021-12-08 22:57:31 -05:00
Philipp Heckel
b437a87266
Disallow subscribing to /docs
2021-12-08 22:13:59 -05:00
Philipp Heckel
802ef17cb4
Fix data races
2021-12-07 16:03:01 -05:00
Philipp Heckel
40fbce07db
Test for simple pub sub
2021-12-07 15:39:42 -05:00
Philipp Heckel
be50af0a7a
Begin unit tests, relates to #35
2021-12-07 11:45:15 -05:00
Philipp Heckel
da8f90d388
gofmt
2021-12-07 10:38:58 -05:00
Philipp Heckel
90ba341323
Remove print
2021-12-04 14:33:55 -05:00
Philipp Heckel
7ba268887b
Continuation of the docs
2021-12-02 17:27:31 -05:00
Philipp Heckel
07a1fe3acb
Add TLS/HTTPS
2021-12-02 08:52:48 -05:00
Philipp Heckel
8616be12a2
Emojis in notifications; server caching
2021-11-29 09:34:43 -05:00
Philipp Heckel
1b8ebab5f3
Priorities, titles, tags
2021-11-27 16:12:08 -05:00
Philipp Heckel
8280e5b0ad
Do not allow empty messages
2021-11-18 14:21:00 -05:00
Philipp Heckel
6d7fec5337
Examples and anchors on website
2021-11-18 09:22:33 -05:00
Philipp Heckel
52136030be
Subscribe to more than one topic
2021-11-15 07:56:58 -05:00
Philipp Heckel
d453db89a7
Add since=all; make poll=1 default to since=all
2021-11-08 09:46:31 -05:00
Philipp Heckel
43c9a92748
Detail page in web UI
2021-11-08 09:24:34 -05:00
Philipp Heckel
c01c94c64c
Fix content type to add charset
2021-11-07 13:08:03 -05:00
Philipp Heckel
0170f673bd
Fix rate limiting behind proxy, make configurable
2021-11-05 13:46:27 -04:00
Philipp Heckel
5948f39a53
Add firebase subscriber to topics from cache upon initialization; stricter rate limits
2021-11-03 21:16:07 -04:00
Philipp Heckel
30a1ffa7cf
Clean up readme
2021-11-03 11:33:34 -04:00
Philipp Heckel
7b810acfb5
SQLite cache
2021-11-02 21:09:49 -04:00
Philipp Heckel
1c7695c1f3
Merge branch 'main' into cache
2021-11-02 14:24:49 -04:00
Philipp Heckel
0e9fa1c4dc
Fix raw endpoint
2021-11-02 14:10:56 -04:00
Philipp Heckel
67922b0ae5
Cache
2021-11-02 14:08:21 -04:00
Philipp Heckel
b775e6dfce
Limits
2021-11-01 16:39:40 -04:00
Philipp Heckel
fa7a45902f
Subscription limit
2021-11-01 15:21:38 -04:00
Philipp Heckel
9a91312392
Only send Firebase data messages
2021-10-29 15:47:46 -04:00
Philipp Heckel
b145e693a5
Add firebase support
2021-10-29 13:58:14 -04:00
Philipp Heckel
4677e724ee
Re-add "message" as event type
2021-10-29 08:29:27 -04:00
Philipp Heckel
ad17be1683
WIP: Firebase support
2021-10-28 23:50:38 -04:00
Philipp Heckel
a38aca47bd
Subscribe endpoint consolidation; same behavior for all endpoints; keepalive
2021-10-27 14:56:17 -04:00
Philipp Heckel
317621c696
Styling
2021-10-24 14:22:53 -04:00
Philipp Heckel
39574c954b
Examples, CORS
2021-10-24 13:34:15 -04:00
Philipp Heckel
23cf77e0b7
Rate limiting, docs
2021-10-23 22:49:50 -04:00
Philipp Heckel
e1c9fef6dc
Makefile, Dockerfile, GoReleaser, config.yml, systemd service
2021-10-23 21:29:45 -04:00
Philipp Heckel
a66bd6dad7
Remove websockets, readme, better UI
2021-10-23 15:22:17 -04:00
Philipp Heckel
630ecd351f
SSE
2021-10-23 13:21:33 -04:00
Philipp Heckel
5c2b6d18ec
Works mostly
2021-10-22 21:26:01 -04:00