Commit Graph

200 Commits

Author SHA1 Message Date
57ee5ff30e Pass origin::Descr::Git url around in parsed form, perform stricter validation on it 2024-01-21 23:24:09 +01:00
ac66ebf6cc Fixed how unexpected Option errors were being worded 2024-01-21 23:19:00 +01:00
78b67a02ad Make origin::Store::sync async
In order for this method to make sense as an async, the returned box
must have its lifetime tied to the store. This did not jive well with
the mock implementation of origin::Store, so I ditched that, along with
the mux tests which depended on it. Oh well.
2024-01-21 16:18:31 +01:00
6dd53f96d8 Handle requested path being a directory correctly 2024-01-16 14:31:32 +01:00
6a611c371c Retrieve domain settings within each service, rather than in domain manager
This allows for fewer dependencies when initializing the services, and
more precise handling of the different cases.
2024-01-15 18:07:49 +01:00
43502f82f9 Remove platform suffix from binary produced by default flake target 2024-01-15 17:07:55 +01:00
4009f0da48 Use hyper-reverse-proxy fork with fixed host header behavior: 2024-01-14 17:41:46 +01:00
658ac62347 Fix bug in http proxy where response headers would be deduplicated
The fix was, ultimately, to upgrade hyper-reverse-proxy to an unreleased
version.
2024-01-14 16:43:33 +01:00
92254047b2 Remove https requirement to use external_domains 2024-01-14 16:03:25 +01:00
c95f4b9b39 Split domain manager "sync all domains" task into separate ones
Each new task corresponds to syncing a particular kind of thing for each
domain, e.g. origins, https certs, etc...
2024-01-14 15:51:12 +01:00
70c78b823a add task_stack.push_spawn_periodically, use for domain manager sync job 2024-01-14 14:40:14 +01:00
dbb8e442c8 Fixes from clippy 2024-01-10 10:42:48 +01:00
9c6e3c6240 Update README with release build instructions 2024-01-09 11:24:54 +01:00
7e5aeb5f28 Fix windows build, add release target 2024-01-09 11:17:52 +01:00
c65a201222 Update nix flake with a devShells (plus many other improvements)
A lot of improvements got imported into here based on my work on the
garage nix setup.
2024-01-08 20:31:16 +01:00
0ed265db6f Add arm6vl (rpi) build 2023-11-15 20:39:15 +01:00
ada434032b Got windows cross-compilation working
The resulting binary is still untested, but it _does_ compile!

This required re-jiggering basically everything about the nix flake,
including replacing the toolchain management to fenix.
2023-11-14 22:49:49 +01:00
4ded1c4ab4 Use builtin tokio ctrl-c rather than signal-hook-tokio
signal-hook-tokio does not support windows, and the builtin ctrl-c
function does everything domani really needs.
2023-11-11 21:39:40 +01:00
023dffe70c Add support for i686-linux 2023-11-10 12:58:11 +01:00
dce01bd31b Fix cross-compilation 2023-11-09 23:52:07 +01:00
ab2e5fb55a Refactor nix flake to allow cross compiling 2023-11-08 21:40:25 +01:00
6cabb9b742 Honor proxied_domains' https_disabled when doing https redirects 2023-08-25 19:01:30 +02:00
0b5b2cb3f3 Refactor how the configuration is documented 2023-08-25 18:44:55 +02:00
0b02400f4e Redirect HTTP requests when HTTPS is enabled 2023-08-25 13:21:46 +02:00
eadb53db0b Implement external domain cert syncing 2023-08-22 20:37:10 +02:00
49ac208286 License under the AGPLv3 2023-08-21 17:18:12 +02:00
Brian Picciano
65933b5cb3 Fix color scheme for dark mode 2023-08-09 16:15:39 +02:00
Brian Picciano
f56acd65b0 More polish to the interface, grammar edits from Kelly 2023-08-05 11:24:04 +02:00
Brian Picciano
bd6684ea2a Even more polish of the web experience 2023-08-04 18:48:04 +02:00
Brian Picciano
17070b30b3 Polish up user interface somewhat 2023-08-04 16:16:55 +02:00
Brian Picciano
c0006e40ce Small bug fixes in interface 2023-08-04 15:04:56 +02:00
Brian Picciano
36052de0c1 Remove apex zone check 2023-08-04 15:02:47 +02:00
Brian Picciano
92f7d3d52a Ensure that the interface_domain gets a cert requested for it 2023-08-04 12:31:04 +02:00
Brian Picciano
818c728258 Move interface_domain under domain configuration 2023-08-04 10:34:09 +02:00
Brian Picciano
083976935c Fix release build 2023-08-03 17:32:32 +02:00
Brian Picciano
0e164f739d Small fixes after some testing 2023-08-03 16:28:28 +02:00
Brian Picciano
dcbf45ec85 Allow for disabling https for proxied domains 2023-08-03 14:58:49 +02:00
Brian Picciano
7a1a2297d4 Move proxy config into domain (bigger change than it sounds like) 2023-08-03 14:14:51 +02:00
Brian Picciano
b44fd575a9 Rename primary_domain to interface_domain, and make it optional 2023-08-03 11:18:31 +02:00
Brian Picciano
e67cd6725a Return all domains from all_domains
This fixes an issue where the domain manager sync job wouldn't have
synced private builtin domains ever.
2023-08-03 10:29:57 +02:00
Brian Picciano
7f8e40c19f Fixed tests for git and acme::store 2023-08-03 10:02:03 +02:00
Brian Picciano
337f3c9cef Do cert syncing within domain manager 2023-08-02 19:59:05 +02:00
Brian Picciano
96b38f2c97 Support for gemini fully fleshed out 2023-08-01 16:44:16 +02:00
Brian Picciano
d429b51cf8 Fix self-signed cert generation, not_before is required apparently 2023-07-31 20:48:00 +02:00
Brian Picciano
8a530d4f7d Fix static file index.gmi 2023-07-31 20:47:14 +02:00
Brian Picciano
5a15f07872 Include builtins in origin syncing 2023-07-27 16:43:09 +02:00
Brian Picciano
24e4dc42b1 Add static directory, useful for testing 2023-07-27 16:42:19 +02:00
Brian Picciano
795817f99d Implement gemini cert store 2023-07-27 16:09:44 +02:00
Brian Picciano
4c1f843048 Move Certificate and PrivateKey into their own tls module 2023-07-27 14:29:04 +02:00
Brian Picciano
7a9ae81376 rename sync_cert to sync_https_cert 2023-07-27 14:12:22 +02:00