Commit Graph

84 Commits (0cb24695d009487dd441c026c6c838d5c0f4c6bf)

Author SHA1 Message Date
_ 0cb24695d0 🚧 wip: idea for tunneling TCP over HTTP
There's a lot of missing pieces, but the big picture is like this:

- Use 2 completely separate HTTP streams, and try to keep them alive as long
as possible, each in basically half-duplex mode
- Each stream has a long-running PUT and GET, sort of like station307
- Each end has to be terminated by a native app that either connects to a local
TCP server, or acts as a local TCP server
- No clue how it would work for multiple connections on the same port. Poorly,
I guess?
- It's probably gonna run like garbage because we're splitting TCP into
2 TCP streams, and although backpressure might work, the ACKs will be less
efficient. And the congestion control might get confused

My only goal is to tunnel Tracy over it, so that I can have that remotely.
2021-01-19 23:25:24 +00:00
_ 574f660c1a 🚧 wip: can't remember what I was working on 2021-01-19 23:25:24 +00:00
_ 29a6ad20ee 🚧 wip: adding http service to ptth_kv 2021-01-19 23:25:24 +00:00
_ eb927ef80d test: ptth_kv is slower with async, but still fast enough 2021-01-19 23:25:24 +00:00
_ 27f31d0ef4 test: measure performance for KV store idea 2021-01-19 23:25:24 +00:00
_ 88e7839841 🚧 wip: outlining idea for Redis-like KV store in ptth_server 2021-01-03 18:09:00 +00:00
_ 0a46fc05dc 🐛 bug: fix 30-day scraper keys having 7 days of validity.
This won't affect anything, because I had manually written the not_after for
the testing keys. Even the automated tests weren't using the new_30_day
function
2020-12-21 14:26:51 +00:00
_ cbf5583d06 update: tracing RSS MiB 2020-12-20 20:41:02 -06:00
_ 137e8e1bf8 update: add prototype for `tail -f` based on polling 2020-12-20 18:59:05 -06:00
_ e79925dc14 update: ptth_server metrics are at a stopping point for now 2020-12-20 18:09:24 -06:00
_ eec17b10a1 update: switch back to 60-second interval 2020-12-20 17:34:55 -06:00
_ bcc673b74b ♻️ refactor: extract metrics monitor function and add it to ptth_server 2020-12-20 17:32:13 -06:00
_ f335644b03 update: measuring CPU usage every minute 2020-12-20 17:17:31 -06:00
_ 1e5aa528c9 🚧 wip: collecting CPU time used. 2020-12-20 20:10:29 +00:00
_ 96106e68fc ♻️ refactor: use file_server::State directly more 2020-12-20 19:55:20 +00:00
_ 4cb0911b77 update: add RSS MiB to server root page 2020-12-20 19:46:30 +00:00
_ e5103d48bd update: add ArcSwap to update gauges lock-free 2020-12-20 19:35:32 +00:00
_ b2b0bbc8fc ♻️ refactor: rename 2020-12-20 19:00:22 +00:00
_ 64ac4baaa8 update: print RSS in MiB at startup 2020-12-20 18:58:14 +00:00
_ bc361fa876 update: add heim for measuring process RSS 2020-12-20 18:52:53 +00:00
_ 47788f56e0 ♻️ refactor: use `use X as Y` 2020-12-20 18:40:49 +00:00
_ 066c95dc07 ♻️ refactor: extract html.rs 2020-12-20 18:38:39 +00:00
_ 4bd38180d0 ♻️ refactor: remove lifetime on handlebars 2020-12-20 18:23:17 +00:00
_ 88c3500fd0 ♻️ refactor 2020-12-20 18:21:02 +00:00
_ 1aff4389bd ♻️ refactor: move file server runtime state into file_server 2020-12-20 18:10:11 +00:00
_ 31750d30fc ♻️ refactor: use new file_server::Config in ptth_server 2020-12-20 18:06:21 +00:00
_ 009601e136 ♻️ refactor: move file server config into file_server 2020-12-20 18:04:19 +00:00
_ e8d94da661 ♻️ refactor: change PerInstance to Startup 2020-12-20 17:44:03 +00:00
_ d052f42507 🚧 wip: add placeholder for gauges 2020-12-20 17:41:00 +00:00
_ b54be58abc 🚨 refactor: rename InstanceMetrics to PerInstance 2020-12-18 23:45:30 +00:00
_ 72b3b33206 🚨 refactor: fix some Clippy lints 2020-12-18 23:41:52 +00:00
_ d03c1a5476 update: add InstanceMetrics and replace ServerInfo 2020-12-18 20:43:34 +00:00
_ 626946b7b7 🔉 update: demote some boring logs from debug to trace 2020-12-16 19:06:15 -06:00
_ 1e160ec55b new: add subcommand in ptth_relay to hash API keys from the terminal 2020-12-16 14:57:47 +00:00
_ 9ac44cfeb7 new: finish MVP for scraper auth.
Adding a SQLite DB to properly track the keys is going to take a while. For
now I'll just keep them in the config file and give them 30-day expirations.
2020-12-16 14:46:03 +00:00
_ cda627fa4b new: add JSON API in server for dir listings 2020-12-15 05:15:17 +00:00
_ 11f4b0e65b test: Fix tests broken by recent commits 2020-12-14 14:17:52 +00:00
_ fa5aa8b05a 🚧 wip: add server list API endpoint 2020-12-14 01:07:13 -06:00
_ e865ac56c7 🚨 refactor: fix some clippy / cargo check warnings 2020-12-13 20:05:52 -06:00
_ 5d1b68dc90 📜 logging: don't log handlebars object 2020-12-13 04:47:47 +00:00
_ 9c7b2b7a86 test: add tests for scraper API test endpoint 2020-12-13 04:44:37 +00:00
_ 0737edd8f8 👕 refactor: move handlebars out of RelayState
This will make it simpler to separate logic and presentation.
2020-12-13 04:03:30 +00:00
_ 32e48697d5 👕 refactor: extract scraper_api module 2020-12-13 03:42:00 +00:00
_ 5f947ed73c 👕 refactor: Extract relay_state module 2020-12-13 03:29:54 +00:00
_ 532f99f770 💄 update: add dev mode and server Git version to server list 2020-12-13 03:00:45 +00:00
_ 0e4839e146 🐳 build: add Tini to Docker image, simplify Git version injection
Building the Git version into the code meant that Cargo had to recompile
ptth_relay every time I built. This is annoying and it doesn't add anything.

I changed it to read the Git version from a text file which is absent by
default, and present in the Docker image.
2020-12-13 02:20:12 +00:00
_ 670ce30667 test: add end-to-end test for scraper API 2020-12-13 01:55:47 +00:00
_ 1e81421444 👕 refactor: Extract functions for scraper API endpoints 2020-12-13 01:12:56 +00:00
_ 6d68a77364 new (ptth_relay): add test endpoint for scrapers
Scrapers can auth using a shared (but hashed) API key.
The hash of the key is specified in ptth_relay.toml, and forces dev mode on.
2020-12-12 17:50:40 +00:00
_ 004b98229a 🐛 bug: fix serde expecting phantom data in the config file 2020-12-12 17:12:38 +00:00