about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Added a docker container image built from NixVika2022-03-181-2/+43
| | | | | | This is so minimal it can't be much less than this. Use it with `docker load`.
* Port onboardingVika2022-03-074-9/+88
|
* FileStorage: add lints to catch panicking inside locked code sectionsVika2022-03-071-149/+168
|
* Restored most of the functionality (except onboarding and some queries)Vika2022-03-069-230/+689
|
* micropub: parse mp-channel as channelVika2022-03-031-2/+72
|
* fonts: init font update scriptVika2022-03-032-1/+10
| | | | | This will be used to embed fonts into the executable to not rely on Google Fonts anymore.
* frontend: convert to warpVika2022-03-023-292/+208
| | | | | | | | | Warp is using hyperium/http instead of http-types, so I replaced all of the http-types usage (mostly status codes) by Warp's http::StatusCode. Additionally some of the struct fields were made public to allow initialization from public code.
* metrics: new metrics collection using warp-prometheusVika2022-03-023-76/+95
|
* database: code cleanupVika2022-03-022-26/+58
|
* update dev script to use systemfd and cargo-watchVika2022-03-022-2/+3
|
* Use the media endpoint stubsVika2022-02-211-2/+1
|
* Added stubs for Micropub posts and the media endpointVika2022-02-211-1/+83
|
* Small tweaks, additions and preparationsVika2022-02-212-25/+26
|
* add compat between http_types and httpVika2022-02-212-2/+5
|
* micropub: flesh out queryVika2022-02-211-47/+180
|
* Fix the dev script to use the proper token endpoint and log settingsVika2022-02-211-2/+2
|
* Make the HTTP client a genericVika2022-02-211-7/+5
| | | | | | This adds the ability to use mocks that don't actually touch the network and alternative transports such as using OpenSSL instead of rustls (but rustls is still superior).
* indieauth/require_token(): reject with 401 when no headerVika2022-02-211-2/+34
|
* database/memory: restore, it is useful in test scenariosVika2022-02-212-0/+198
|
* database: code cleanupVika2022-02-212-48/+29
|
* database/file: use Authority instead of origin for directoriesVika2022-02-211-4/+4
|
* Add a module for IndieAuth bearer token authVika2022-02-215-211/+798
| | | | | | | | | | | | | require_token() uses a token endpoint URI and an HTTP client to query the token endpoint and return a User object if the user was authorized, or rejecting with IndieAuthError if not. It is recommended to use recover() and catch the IndieAuthError at the application level to show a "not authorized" error message to the user. This function is more intended for API consumption, but is general enough to permit using in other scenarios. TODO: make a variant that returns Option<User> instead of rejecting
* WIP: convert to Tokio and WarpVika2022-02-159-713/+861
| | | | | | | | | | | Warp allows requests to be applied as "filters", allowing to flexibly split up logic and have it work in a functional style, similar to pipes. Tokio is just an alternative runtime. I thought that maybe switching runtimes and refactoring the code might allow me to fish out that pesky bug with the whole application hanging after a certain amount of requests...
* Added a dev env scriptVika2022-02-142-1/+11
|
* flake: fix e2e testsVika2021-12-311-5/+3
|
* FileBackend: introduce timeouts on operationsVika2021-12-311-34/+51
| | | | | | This is to prevent spinning in a loop waiting for a lock. This hangs often, though I suspect this should have been fixed in the previous commit.
* FileBackend: don't transfer locks over async boundariesVika2021-12-311-169/+188
| | | | | | | This may or may not be the cause for the app hanging while waiting for a lock. Now the operations with locks are never performed over an async boundary, excluding any shenanigans that can happen when accidentally leaving a file locked over async boundaries.
* Display pretty links in case there is more than one URL in a postVika2021-12-072-6/+22
|
* Migrate to Rust 2021Vika2021-12-073-25/+25
|
* Add protected locations that are visible only to logged-in usersVika2021-12-071-1/+3
|
* Small fixes for code block and vcard avatar CSSVika2021-12-071-0/+8
|
* Disable the deprecated redis featureVika2021-12-071-1/+1
|
* Add indicators on private postsVika2021-12-071-0/+5
|
* Make rustfmt and clippy happyVika2021-12-069-119/+184
|
* Added support for IndieAuth client sign inVika2021-12-0610-167/+554
| | | | | | | This will allow readers to view private posts intended just for them. Additionally fixed bugs in patterns due to which webmentions might not have been sent.
* Added stuff to gitignoreVika2021-12-051-1/+3
|
* Debug JSON renderer for postsVika2021-12-051-0/+12
| | | | Because sometimes seeing the problem is better than searching for it.
* Code cleanup and small bugfixing in templatesVika2021-12-0511-142/+253
|
* Added author mini-cards on h-entriesVika2021-12-053-41/+100
|
* frontend: Added listing feeds to the header barVika2021-12-055-16/+23
|
* Make the default feeds' UIDs pretty!Vika2021-12-051-5/+5
|
* Added rust-analyzer to the dev environmentVika2021-12-051-3/+2
|
* Finally finish the migration toolVika2021-12-021-19/+25
| | | | | | | | | | It works. Launch it using the "kittybox-database-converter" command. First argument should be the old database URI, second should be the new one. It will migrate the DB for you. If you're doing this on a test machine, you can then migrate the database to production using `rsync -rl` to preserve symbolic links created by Kittybox's database backend.
* Get rid of the unsafe codeVika2021-12-021-7/+4
| | | | | | Thanks to @Kloenk I was able to get rid of the unsafety and tell the compiler how to properly check what I needed for the StorageError to be declared thread-safe.
* flake.lock: UpdateVika2021-11-241-9/+9
| | | | | | | | | | | | | | Flake lock file changes: • Updated input 'nixpkgs': 'github:kisik21/nixpkgs/28ab753837babd73e2200fb76a6c40f6cb8aee28' (2021-07-14) → 'github:kisik21/nixpkgs/e2b7e226ac2f83039d0f116c3693619a8bd6444c' (2021-11-23) • Updated input 'rust': 'github:oxalica/rust-overlay/63cff1cea66f1cd76fe5377776e5e597c6635a42' (2021-08-06) → 'github:oxalica/rust-overlay/885ef5bf9d2857dff8689292aedb511dfc952862' (2021-11-23) • Updated input 'rust/flake-utils': 'github:numtide/flake-utils/f7e004a55b120c02ecb6219596820fcd32ca8772' (2021-06-16) → 'github:numtide/flake-utils/bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4' (2021-11-15)
* Deprecated Redis backend and added a database migration tool (untested, beware)Vika2021-10-279-90/+152
|
* Modified the module to use BACKEND_URIVika2021-09-284-35/+75
|
* Added a .gitignore fileVika2021-09-271-0/+2
|
* Code cleanup and Cargo.lock updatesVika2021-09-273-169/+209
|
* Fix a bug in the error middlewareVika2021-09-273-2/+5
| | | | | | When an error is found, the site name passed to Storage::get_setting in the error handler is incorrect. The ASCII serialisation of the hostname should get used.