Commit Graph

435 Commits (ccc2dd1128b95ecbd168e9ab86b6ba79fb7aecd6)

Author SHA1 Message Date
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 df2362e1a7 Update deps 2022-06-16 12:48:43 -04:00
Philipp Heckel 8a56b82813 500-test 2022-06-16 12:42:19 -04:00
Philipp Heckel 6122cf20aa More tests 2022-06-16 12:37:02 -04:00
Philipp Heckel 18bd3c0e55 Docs and Matrix tests 2022-06-16 11:40:56 -04:00
Philipp Heckel 0ff8e968ca Docs 2022-06-15 20:51:42 -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 41096ef1b0 Update base-url docs 2022-06-12 10:47:12 -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 850c6725f5 Remove new line 2022-06-02 14:40:19 -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 bd865fd55d Merge branch 'main' into logging 2022-06-01 13:07:12 -04:00
Philipp Heckel eb0847392c Fix staticcheck 2022-06-01 09:05:21 -04:00
Philipp Heckel 8c32f029fb Fix data races 2022-05-31 23:55:05 -04:00
Philipp Heckel a04cf5fcb6 Merge branch 'main' into logging 2022-05-31 23:39:11 -04:00
Philipp Heckel 9202d85532 Make linter happy 2022-05-31 23:36:06 -04:00
Philipp Heckel 769e071593 Refining, changelog 2022-05-31 23:27:24 -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 1f38a4a531 Upgrade Firebase Admin SDK version 2022-05-29 20:48: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 4dabc56952 Subscribe filter for querying by ID 2022-05-26 18:52:55 -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 2abd6a57ee Support emails without Content-Type, closes #265 2022-05-21 20:20:44 -04:00
Philipp Heckel cd27d47f4b APNs data 2022-05-20 15:59:58 -04:00
Philipp Heckel 60c5ccf34b Merge branch 'main' of github.com:binwiederhier/ntfy into macos-server 2022-05-20 15:59:12 -04:00
Philipp Heckel 91594faf28 Support for underscores in server.yml config options 2022-05-16 11:32:21 -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 577cd0fcea ios 2022-05-11 13:29:23 -04:00
Philipp Heckel edfed24c27 Make Upgrade header check for websockets case insensitive, closes #228 2022-04-29 13:23:04 -04:00
Philipp Heckel 28bb8d4446 More actions tests 2022-04-27 14:28:58 -04:00
Philipp Heckel adea3c38be Remove backslash from quoted strings 2022-04-27 13:56:21 -04:00
Philipp Heckel 72aea2613a Remove superflous if statement 2022-04-27 11:23:44 -04:00
Philipp Heckel 6bd4e4bd7c User actions docs, tests and release notes 2022-04-27 10:25:01 -04:00
Philipp Heckel 1f6118f068 Finish up better parsing 2022-04-27 09:51:23 -04:00
Philipp Heckel 574e72a974 WIP: More advanced action parsing 2022-04-26 23:07:31 -04:00
Philipp Heckel 9c91ae2744 Make sure clear= values are checked 2022-04-23 15:23:18 -04:00
Philipp Heckel b805d49cfd Disallow HEAD/GET requests with body 2022-04-23 13:40:26 -04:00
Philipp Heckel 12f85cceb1 Add clear=true|false support to actions 2022-04-22 23:07:35 -04:00
Philipp Heckel 8f4a1db1f0 Changelog, add tests 2022-04-22 14:51:44 -04:00
Philipp Heckel a779434bab More docs 2022-04-21 09:58:28 -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 3c3b2477af Docs (WIP), Firebase 2022-04-19 19:22:19 -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 967cde1fb5 JSON format 2022-04-16 20:12:01 -04:00
Philipp Heckel 26efd481e3 WIP Actions 2022-04-16 16:17:58 -04:00
Philipp Heckel 73349cd423 Add test 2022-04-03 20:19:43 -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 59ec2de8bd Fix race in test 2022-03-30 14:37:42 -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 207e990798 Fix brittle test 2022-03-13 21:30:14 -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 36ccfac787 Fix tests 2022-03-05 20:48:27 -05:00
Philipp Heckel e27d5719f0 Embed new web UI into server 2022-03-05 20:24:10 -05:00
Philipp Heckel 1a3816c1ff Strip down old web app 2022-03-05 14:48:42 -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 e29a18a076 Add another scheduled message to since ID test 2022-02-27 14:31:22 -05:00
Philipp Heckel f17df1e926 Combine entirely 2022-02-27 14:25:26 -05:00
Philipp Heckel c21737d546 Combine tests and all that 2022-02-27 14:21:34 -05:00
Philipp Heckel 6dc4e441e4 Fix tests; remove memory implementation entirely 2022-02-27 14:05:13 -05:00
Philipp Heckel 7d93b0596b Almost there; Replace memCache with :memory: SQLite cache 2022-02-27 09:38:46 -05:00
Philipp Heckel 8b32cfaaff Implement since=ID logic in mem cache; add tests; still failing 2022-02-26 20:19:28 -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 aa79fe2861 Desktop notifications 2022-02-26 10:14:43 -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 ce9e9f3e0d Add test for IP exempt setting 2022-02-14 19:23:57 -05:00
Philipp Heckel eed233a793 Double requests/sec limit; update docs 2022-02-14 17:07:17 -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 3902599c52 More tests; enough! 2022-02-03 22:26:22 -05:00
Philipp Heckel 5cf92c55c6 Docs and minor improvements to "ntfy access" 2022-02-01 16:40:33 -05:00
Philipp Heckel e56eb0c178 Allow 'ntfy access --reset' 2022-02-01 12:23:11 -05:00
Philipp Heckel a77f89d302 Test Firebase stuff 2022-02-01 08:47:01 -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 b908f07355 . 2022-01-22 23:07:55 -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 8af9a97518 Update server.yml docs 2022-01-20 20:40:12 -05:00
Philipp Heckel df6611e8de Store encoding in cache database 2022-01-17 19:14:51 -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 034c81288c Docs docs docs 2022-01-13 15:17:30 -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 b5183612be Fix attachment pruning logging; .mp4 extension issue 2022-01-09 22:06:31 -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 5eca20469f Attachment size limit 2022-01-06 01:04:56 +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 47b491b6e2 55s keepalive, 65s did not work; unsure why 2022-01-01 22:48:17 +01:00
Philipp Heckel 91ad69dd00 Bump keepalive interval to 65s after testing 2022-01-01 22:21:47 +01:00
Philipp Heckel 521aad7db5 Increase keepalive duration to 55s 2022-01-01 22:11:09 +01:00
Philipp Heckel fe2988bb38 Reduce Firebase control channel keepalive message 2022-01-01 22:08:55 +01:00
Philipp Heckel 595ea87465 Switch VARCHAR(N) to TEXT, as they are equivalent in SQLite 2021-12-31 16:19:41 +01:00
Philipp Heckel 7b37141e07 Increase message size limit to 4096 2021-12-31 16:12:53 +01:00
Philipp Heckel dac88391c1 Docs docs docs 2021-12-28 17:36:12 +01:00
Philipp Heckel a46a520bca Fix tests 2021-12-28 01:48:58 +01:00
Philipp Heckel 04719f8dee Flip title and message if message is empty 2021-12-28 01:41:00 +01:00
Philipp Heckel 113053a9e3 Fix encoding issues 2021-12-28 01:26:20 +01:00
Philipp Heckel 7cfe909644 CLI arguments 2021-12-27 22:27:01 +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 43a2acb756 Typo 2021-12-27 00:37:18 +01:00
Philipp Heckel bcc424f2aa Oops 2021-12-26 14:36:38 +01:00
Philipp Heckel ec7e58a6a2 Fix santa bug, email subject encoding, closes #65 2021-12-26 14:34:25 +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 8a625ef786 Docs, and fixing tests 2021-12-25 10:35:08 +01:00
Philipp Heckel 3bc8ff0104 Docs 2021-12-25 00:57:02 +01:00
Philipp Heckel 11b5ac49c0 Fully working email feature 2021-12-25 00:13:09 +01:00
Philipp Heckel f553cdb282 Continued e-mail support 2021-12-24 15:01:29 +01:00
Philipp Heckel 6b46eb46e2 A mutex in a test struct ... 2021-12-24 00:10:22 +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 e3dfea1991 Docblocks, a handful of tests, but not enough 2021-12-19 14:27:26 -05: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