about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Implemented support for channelsVika2021-09-273-65/+172
|
* Implemented FileStorage::delete_postVika2021-09-271-1/+4
|
* Finally figured out how to read without a BufReaderVika2021-09-271-14/+6
| | | | | BufReader was really unneccesary here, since I was batch-reading all of this in one go.
* Improved symlink creationVika2021-09-271-5/+78
| | | | | | Now symlink creation works on Windows and creates links relative to the posts, allowing for seamless migrations of the backing directory for true portability and no data lock-in.
* Implemented FileStorage::get_setting and FileStorage::set_settingVika2021-09-273-2/+60
|
* Moved integration tests and allowed the binary to use file backendVika2021-09-264-21/+93
| | | | | | Now the Redis dependencies are optional and only required if you want to test the backend or actually use it in production. The app displays a hint if you try to launch with an unsupported backend.
* Added file updates and fixed a bug with truncated JSON filesVika2021-09-262-3/+154
| | | | | | | | | | | There was a bug where `File::write()` would not write the entire buffer, and this condition was left unchecked by the code. All `File::write()` calls are now replaced with `File::write_all()` which ensures the whole buffer is written to the backing file. Additionally added a smoke check for the file updates. It is in no way comprehensive nor it is able to catch all the possible failures but it's a good way of testing the functionality without way too much hassle.
* Added a WIP file backendVika2021-08-154-84/+399
| | | | | | | Currently unavailable for use and only has basic GET and POST operations implemented. A lot more work is needed to make it truly usable. Locking is implemented using flock() system call on Linux.
* Improved Redis module code qualityVika2021-08-151-13/+10
|
* Revert "Moved mobc to a custom repo"Vika2021-08-102-19/+4
| | | | This reverts commit 1c1d0e504c276ccb3c204aa28750f86610bff248.
* Update flake.lockVika2021-08-101-6/+19
|
* Added Prometheus instrumentationVika2021-08-064-1/+213
| | | | | | I need to instrument the mobc library used for the Redis connection pool, but that can be done later since I am somewhat tired. I don't remember how much I've worked and I need a break... >.<
* Moved mobc to a custom repoVika2021-08-062-4/+19
|
* Added a default food channel for foodstuffsVika2021-08-061-12/+35
|
* Log sent webmentionsVika2021-08-061-0/+1
|
* Refactored the onboarding template into its own fileVika2021-08-062-193/+198
|
* Shortened a connection timeout and installed a lifetime limit for connectionVika2021-08-061-1/+4
|
* Added RUST_LOG variable to NixOS moduleVika2021-08-061-0/+1
|
* Trying to mitigate and log more about the HTTP 500sVika2021-08-051-10/+12
|
* Add LICENSE Vika2021-08-041-0/+661
| | | It was always my intention to license this under AGPLv3, so the project will stay free no matter who hosts it, and no matter where. We should have the freedom to customize our blogs however we want!
* Nulls are VERY evilVika2021-08-041-0/+3
|
* Turns out nulls are evilVika2021-08-041-3/+5
|