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
Brian Picciano
ef8c5827a0
Include template dev config file, ignore the one actually being used
2023-07-27 14:08:43 +02:00
Brian Picciano
cdd0eacdd8
Update gemini proxying according to feedback from the tokio_rustls issue
2023-07-27 12:50:56 +02:00