about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* indieauth/backend/fs: debug tracingVika2023-07-091-1/+6
|
* templates: fix cursor usage in feed templateVika2023-07-091-8/+6
|
* database/memory: cleaner update_post implementationVika2023-07-091-1/+70
| | | | | | | | | | | | This one manages to avoid extraneous allocations as much as possible, by deconstructing the update into pieces and using a mutable reference taken directly from the hashmap in which the posts are stored. Now if only this hashmap were to be serialized on Drop, we could even have persistence in the database and therefore gain another backend that requires no dependencies to run, just like FileStorage, but avoids extraneous file access (or maybe shunts it into the background?)