about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
...
* Switch reply contexts from a Vec to HashMapVika2023-11-131-16/+15
| | | | This reduces the worst-case complexity to O(n) from O(n^2).
* Fix bug with likes/bookmarks on h-entries lacking URLs in markupVika2023-10-152-8/+42
|
* templates-neo: add a test CLI that renders entriesVika2023-08-082-6/+22
| | | | This allows interactively testing the markup.
* templates-neo: fix hacks around the `html` crateVika2023-08-083-13/+92
| | | | Finally I can properly add child elements without using the string hack.
* Remove extraneous JS filesVika2023-07-312-119/+0
|
* templates-neo: initVika2023-07-315-1/+417
| | | | | | This is an experimental approach to templates, using `yoshuawuyts`'s `html` crate. The crate itself has a promising API, but is notably incomplete.
* .envrc: add env vars for Kittybox launches directlyVika2023-07-303-14/+7
| | | | | This avoids the need for the ./dev.sh script, except when `cargo watch` is involved.
* Moved the entire Kittybox tree into the rootVika2023-07-2972-1/+1
|
* kittybox.nix: properly set the features and don't rely on defaultsVika2023-07-291-5/+11
|
* .envrc: move to rootVika2023-07-291-2/+2
|
* postgres: Fix pretty permalinks not being shownVika2023-07-282-2/+22
|
* templates: Add a link for the webmention endpointVika2023-07-221-0/+1
|
* media: fix Axum behavior change with slashes in passed pathsVika2023-07-221-6/+7
|
* configuration.nix: use NixOS option for ListenStreamVika2023-07-221-5/+4
|
* media: fix improper path joiningVika2023-07-221-3/+3
|
* Fix a few bugsVika2023-07-226-9/+25
|
* Add a NixOS test for receiving webmentionsVika2023-07-229-0/+236
|
* Move NixOS tests to a separate folder to prevent clutterVika2023-07-225-3/+3
|
* dev.sh: small modificationsVika2023-07-221-1/+10
|
* Log with tracing-tree AND json in debug buildsVika2023-07-222-7/+38
|
* configuration.nix: bind on IPv6 localhost by defaultVika2023-07-221-1/+1
| | | | This is so the Kittybox socket can actually listen on both IPv4 and IPv6.
* Mount webmention handling routes and tasksVika2023-07-225-35/+76
|
* database: more documentationVika2023-07-221-6/+23
|
* webmentions: check webmentions and save them to the databaseVika2023-07-222-6/+183
|
* database: add "add_or_update_webmention" operationVika2023-07-224-0/+168
| | | | | | | This is an operation that atomically adds or updates a webmention cite attached to a post. This is used so a database backend can optimize for it (for example, using a transaction or shifting the JSON modification operation to the database)
* postgres: optimize fetching of non-feeds by forgoing a second queryVika2023-07-221-0/+9
|
* Allow socket-activation for KittyboxVika2023-07-212-6/+23
| | | | | This complements passing sockets as FDs and graceful shutdown to allow for zero-downtime restarts.
* Allow loading TLS root certificates from fileVika2023-07-211-7/+33
| | | | | Untested, but will be useful when testing Webmentions in the end-to-end test.
* Split Postgres schemas into twoVika2023-07-213-15/+21
| | | | | Now the postgres schemas are completely independent of each other. This took a while to figure out!
* Move MentionType into util and fix bugs in -check-webmention appVika2023-07-212-12/+28
|
* Put Micropub background processing tasks in a JoinSetVika2023-07-173-28/+71
| | | | | | | This allows using tree-structured concurrency to keep background tasks in check and allow them to finish running before shutting down — a necessary prerequisite for shutdown-on-idle. (A background task may take a bit too long to complete, and we may need to wait for it.)
* database/file: tokio::fs::create_dir_all is idempotentVika2023-07-171-6/+3
|
* FileStorage: properly fsync() files and directoriesVika2023-07-171-9/+21
| | | | | | Total crash-safety. Yank the power cord all you want, your data is going to be safe and sound. (Unless your drive controller lies to you about flushing its caches)
* WIP: bind to UNIX socketsVika2023-07-171-13/+36
| | | | | | Apparently this requires a helper crate to make Hyper aware of UNIX sockets. That's fine. That's not a priority for now — but the code is practically there.
* Allow listening on several TCP socketsVika2023-07-171-46/+117
| | | | | | | | I would also love to be able to listen on Unix stream sockets, but that would require some additional support that can thankfully be just introduced later. (It also requires a second loop over the file descriptor array)
* shell.nix: add opensslVika2023-07-171-4/+5
|
* cargo update, part 2: AxumVika2023-07-1710-111/+158
| | | | | | | | | Axum got some breaking changes and gained some nice features — however, features come later, breaking changes come first. Perhaps it would be nice to actually construct a State with all of my stuff, and then make functions generic over that. Could reduce the amount of generic stuff I am producing... maybe.
* cargo update, part 1Vika2023-07-177-500/+799
|
* webmentions/queue: move JobQueue trait into kittybox-utilVika2023-07-095-47/+200
| | | | | | | The trait itself seems basic enough that it could be reused elsewhere. Better to keep it in a separate crate. `-util` is a dumping ground for various things anyway.
* webmentions/supervisor: ability to cancel a background taskVika2023-07-091-13/+54
| | | | | | | | This requires the background task to be cancellation-safe, as it is dropped after receiving a cancellation event. Perhaps in the future there will be a supervisor version that may forward the cancellation to the task itself.
* webmentions/queue: give up on an item after 5 attemptsVika2023-07-093-20/+69
| | | | | | This also involves a crude "async drop" implementation that fires a future incrementing an attempt if a Job has been dropped without marking it as done.
* New debug utilities to test checking webmentions and parsing mf2Vika2023-07-093-0/+211
|
* WIP: incoming webmention supportVika2023-07-091-0/+75
|
* Create a job queue based on PostgresVika2023-07-094-0/+191
| | | | | It's generic enough to be used for anything, but for now it's only gonna be used for webmentions.
* micropub: a little bit more loggingVika2023-07-091-0/+2
|
* password-hasher: print prompts to stderrVika2023-07-091-3/+3
|
* kittybox-indieauth-helper: move client_id to a real pageVika2023-07-091-1/+1
| | | | | This allows to use the helper on production websites that do security checks on redirect URIs, as the URI is now properly declared.
* Implement Postgres backendVika2023-07-099-4/+577
| | | | | | | A single giga-commit that took me weeks to produce. I know, this is not exactly the best thing ever — but I wanted to experiment first before "committing" to the implementation, so that I would produce the best solution.
* Passthru NixOS VM testsVika2023-07-092-2/+9
|
* main: use tracing_tree in debug buildsVika2023-07-093-1/+11
| | | | | | This gives me much more readable traces. JSON logging is still superior in production, where logs are stored in systemd-journald and preferably need to be self-contained lines.