Commit Graph

185 Commits

Author SHA1 Message Date
Brian Picciano
7dd52839b1 Use TaskStack to clean up startup/shutdown logic significantly 2023-06-21 13:15:42 +02:00
Brian Picciano
f2374cded5 Use TaskSet to cleanly shut down the http service 2023-06-19 20:57:26 +02:00
Brian Picciano
43f4b98b38 Move handle_request onto service as a method 2023-06-19 20:12:15 +02:00
Brian Picciano
506037dcd0 Moved service tasks internally, main crashes on shutdown though 2023-06-18 15:57:51 +02:00
Brian Picciano
7ea97b2617 Get rid of lifetime on Service 2023-06-18 15:10:06 +02:00
Brian Picciano
1f9ae0038f restructure service module 2023-06-18 14:53:25 +02:00
Brian Picciano
dbc912a9d3 add sync_cert method to domain manager 2023-06-18 14:46:52 +02:00
Brian Picciano
6da68dc042 stop domain manager's inner tasks on shutdown 2023-06-18 14:28:46 +02:00
Brian Picciano
6941ceec8e Remove final Boxed types 2023-06-18 13:53:02 +02:00
Brian Picciano
3d3dfb34ed Got rid of Boxed acme types 2023-06-18 13:44:19 +02:00
Brian Picciano
52f87dc625 Get rid of origin::store::BoxedManager and domain::manager::BoxedManager 2023-06-18 13:12:26 +02:00
Brian Picciano
4317d7f282 Simplify git origin a bit 2023-06-17 16:04:26 +02:00
Brian Picciano
420f1ff42a implement error::unexpected, use it everywhere
This is an improved form of the previous `error::Unexpected` type, now
with more capabilities and generally better naming.
2023-06-17 15:41:39 +02:00
Brian Picciano
42a033a50b Fixes from clippy 2023-06-13 21:36:12 +02:00
Brian Picciano
01b47fb010 Add real logging 2023-06-13 21:33:43 +02:00
Brian Picciano
d93d4accba Added ability to list all domains 2023-05-23 12:32:56 +02:00
Brian Picciano
f7107de96b Fixed crash on unknown cert 2023-05-23 12:15:06 +02:00
Brian Picciano
08b35f6b21 Fix acme challenges not taking priority over origins 2023-05-20 15:24:32 +02:00
Brian Picciano
7d4f754eec Update readme and index 2023-05-20 15:13:48 +02:00
Brian Picciano
9c2bd4e49a cleaned up https parameter handling a bit 2023-05-20 14:51:36 +02:00
Brian Picciano
0fd832efdd clippy suggestions 2023-05-20 14:34:45 +02:00
Brian Picciano
e29de0d29c got HTTPS fully working 2023-05-20 14:29:03 +02:00
Brian Picciano
4f98a9a244 store certs and private keys as generic DER+PEM strings, not using openssl crate 2023-05-19 21:21:34 +02:00
Brian Picciano
209daacf1b save private key generated during acme handshake 2023-05-19 14:16:14 +02:00
Brian Picciano
06cda77772 Periodically refresh certs for all domains 2023-05-19 13:27:00 +02:00
Brian Picciano
5b26396106 change http_domain into a domain::Name 2023-05-19 12:36:01 +02:00
Brian Picciano
4cd5234519 use a FuturesOrdered wait group 2023-05-19 12:29:37 +02:00
Brian Picciano
4e412d0677 Got acme working, syncing for http_domain works 2023-05-19 12:09:41 +02:00
Brian Picciano
6d8799ce8c Got acme manager implemented, still untested. Not hooked up to user domains yet. 2023-05-18 22:39:12 +02:00
Brian Picciano
0f42327a57 Implemented acme store, started on manager 2023-05-18 12:22:35 +02:00
Brian Picciano
a7e74ac5dd Move origin syncing to within manager 2023-05-17 14:37:23 +02:00
Brian Picciano
7daa864739 add mock for domain manager 2023-05-17 14:09:16 +02:00
Brian Picciano
1fdd023f50 Replace usage of boxed dyn errors with new error::Unexpected 2023-05-17 14:08:17 +02:00
Brian Picciano
45597ab8d8 Use GATs in domain manager trait 2023-05-17 12:34:24 +02:00
Brian Picciano
cab7a837a7 Introduced separate 'Boxed' traits, to allow for mocks 2023-05-16 17:17:47 +02:00
Brian Picciano
d9676a4ce7 Issues from clippy 2023-05-16 16:20:01 +02:00
Brian Picciano
b608496aaa Fix small goof in index copy 2023-05-15 23:01:57 +02:00
Brian Picciano
93a9e21e93 Fix A record checking 2023-05-15 23:01:24 +02:00
Brian Picciano
5fa89593ae Update source code link in index 2023-05-15 22:18:59 +02:00
Brian Picciano
e5ce19e850 use IPv4 for now 2023-05-15 22:16:29 +02:00
Brian Picciano
e9dc6ba090 Update warning on homepage to be clearer 2023-05-15 21:42:12 +02:00
Brian Picciano
ef2c179a68 show existing domain info on get page 2023-05-15 21:40:05 +02:00
Brian Picciano
6c32af061b Polish up the FE a bit 2023-05-15 21:34:50 +02:00
Brian Picciano
6d68b4e5ab Implemented periodic origin syncing 2023-05-15 21:18:33 +02:00
Brian Picciano
8f1c0cce22 Implement serving of origins 2023-05-15 20:25:07 +02:00
Brian Picciano
c1b6d982ef Switch to AAAA records 2023-05-15 18:26:49 +02:00
Brian Picciano
774fbe06da switch to using bamboo.css 2023-05-15 18:03:16 +02:00
Brian Picciano
e3c13123db Switched to hyper, cleaned up manager lifetimes, got domain_sync working 2023-05-15 17:46:55 +02:00
Brian Picciano
26ebda90e8 Use async dns client, pass tokio runtime into the checker constructor 2023-05-14 11:44:50 +02:00
Brian Picciano
f9801af166 rename to domiply 2023-05-13 16:39:54 +02:00
Brian Picciano
6e88ab967f Fix up init, implement sync (maybe) 2023-05-13 16:34:51 +02:00
Brian Picciano
f3394acaf1 refactor renderer in service 2023-05-13 15:37:24 +02:00
Brian Picciano
50d450eb2c implement error pages 2023-05-13 15:22:47 +02:00
Brian Picciano
130581d61e got basic system for passing configs back and forth with URL working 2023-05-12 18:27:23 +02:00
Brian Picciano
9e724d3903 got manager being shared properly into render context 2023-05-12 16:43:28 +02:00
Brian Picciano
7718735215 use a validated domain name type, rather than a raw string 2023-05-12 16:43:05 +02:00
Brian Picciano
cf3b11862c Got basic index page, started on new domain page 2023-05-12 14:51:10 +02:00
Brian Picciano
a3c41ee4d6 Add config option for http listen address 2023-05-12 11:17:15 +02:00
Brian Picciano
21b5b99022 got basic html templating engine working 2023-05-11 19:34:05 +02:00
Brian Picciano
742523d0a0 make git origin store types private 2023-05-11 14:31:48 +02:00
Brian Picciano
386b02023c implement most of main, including config and http server 2023-05-11 14:25:51 +02:00
Brian Picciano
796b90e91d move git store to its own file 2023-05-11 11:54:25 +02:00
Brian Picciano
a0bdf610d9 small note in origin store 2023-05-11 11:53:27 +02:00
Brian Picciano
79ba735fd6 Use GATs to remove dynamic dispatch when using origin store 2023-05-11 11:47:38 +02:00
Brian Picciano
d1842943cd Add locks around git store syncing and getting 2023-05-10 15:12:34 +02:00
Brian Picciano
e5b64f4968 initial implementation of domain manager 2023-05-10 13:34:33 +02:00
Brian Picciano
a704c7ad34 implement hash for config 2023-05-09 16:40:40 +02:00
Brian Picciano
f2a3c78a83 re-organize imports for clarity 2023-05-09 16:37:06 +02:00
Brian Picciano
a8c96f9a2e implement error trait on domain config store errors 2023-05-09 13:52:21 +02:00
Brian Picciano
97071c1b87 make dns checker errors implement error trait 2023-05-09 13:44:57 +02:00
Brian Picciano
be84742e94 make origin store errors be actual errors, and implement a mock 2023-05-09 13:40:49 +02:00
Brian Picciano
696c92a292 tried getting the origin store mock working, but couldn't 2023-05-08 18:34:39 +02:00
Brian Picciano
4460aae75a keep refactoring git store to make this iterator work nice 2023-05-08 17:18:28 +02:00
Brian Picciano
53e253b362 refactor Store to return an Origin 2023-05-08 13:47:21 +02:00
Brian Picciano
563f072e09 implement domain config store 2023-05-07 18:07:31 +02:00
Brian Picciano
7b60814681 add mock domain checker 2023-05-07 17:17:04 +02:00
Brian Picciano
2d57353244 initial implementation of domain::Checker 2023-05-07 17:06:51 +02:00
Brian Picciano
71dcc94e29 refactor errors in store.rs 2023-05-07 14:33:22 +02:00
Brian Picciano
a7d5819a78 fixes from clippy 2023-05-07 13:22:55 +02:00
Brian Picciano
c921e8a479 rustfmt 2023-05-07 13:03:59 +02:00
Brian Picciano
599ad7f4dc Implement all_descrs on the store 2023-05-06 15:38:43 +02:00
Brian Picciano
a4febdc40e implement git store write_file 2023-05-04 18:13:44 +02:00
Brian Picciano
2663838af0 implement git store sync (maybe) 2023-05-04 14:56:31 +02:00
Brian Picciano
72df0f0b21 Implemented origin::Descr 2023-05-03 12:53:33 +02:00
Brian Picciano
b79298f7b8 init 2023-05-03 09:58:06 +02:00