Commit Graph

187 Commits

Author SHA1 Message Date
Brian Picciano
edadaab792 Remove serve_protocols option for now, it's not useful 2023-07-19 15:24:43 +02:00
Brian Picciano
63f4975d5a Fix deserialization of FlatDomainSettings boolean flags 2023-07-18 19:05:51 +02:00
Brian Picciano
ccd2285b11 Prevent users from seeing proxy config in web interface 2023-07-18 19:00:37 +02:00
Brian Picciano
87c779ebb6 Fix rendering on domain.html 2023-07-18 18:31:36 +02:00
Brian Picciano
7049252787 Support serve_protocols field on domain settings 2023-07-17 20:22:22 +02:00
Brian Picciano
5099f79260 Add ability to add request headers to proxied requests 2023-07-17 16:54:03 +02:00
Brian Picciano
651f3f4bb7 Pass the full domain::Settings into the proxy code 2023-07-17 16:19:25 +02:00
Brian Picciano
8f74757f23 send x-forwarded-proto header from proxy 2023-07-16 17:54:56 +02:00
Brian Picciano
b060cafa8e Fix config to match the README, add proxy to README 2023-07-16 17:43:31 +02:00
Brian Picciano
a917f32f04 Got proxy origin working, more or less 2023-07-16 17:10:13 +02:00
Brian Picciano
9beeffcdcf Revert "Have get_file accept and return structs, which will be easier to extend going forward"
This reverts commit a86020eedf.

Turns out that even with this change proxying won't work properly via
origin::Store, it'll just have to be a special case. I'm keeping the
commit around in case we want this for a later case.
2023-07-16 16:09:37 +02:00
Brian Picciano
4a2ac7460f Initial implementation of proxy module 2023-07-16 16:09:20 +02:00
Brian Picciano
a86020eedf Have get_file accept and return structs, which will be easier to extend going forward 2023-07-16 15:40:20 +02:00
Brian Picciano
c336486f5a Define proxy origin 2023-07-16 15:10:02 +02:00
Brian Picciano
5dd2e756cc Rename domain::Domain to domain::Settings, finished renaming it everywhere 2023-07-16 14:38:48 +02:00
Brian Picciano
5a4ff4ca65 Add secret service.http.form_method field for debugging 2023-07-16 13:55:06 +02:00
Brian Picciano
4483185e75 Add builtin domains to configuration 2023-07-15 19:45:56 +02:00
Brian Picciano
03428cef02 Use an HTTP challenge for ensuring that domains are correctly set up, rather than checking DNS records directly 2023-07-12 20:25:35 +02:00
Brian Picciano
28104f36e1 Add token::MemStore, use it for http01 challenges 2023-07-12 19:01:31 +02:00
Brian Picciano
811aef209a introduce unexpected::Result 2023-07-12 19:01:15 +02:00
Brian Picciano
af1dc183ec Support for CNAME records 2023-07-11 19:16:09 +02:00
Brian Picciano
2693e0eac2 Implement support for AAAA records 2023-07-10 18:23:52 +02:00
Brian Picciano
7d64f44dab Rewrite README with new config file documentation 2023-07-09 17:13:25 +02:00
Brian Picciano
ceb2ba3cf4 Move dns records under service in the config 2023-07-09 16:57:36 +02:00
Brian Picciano
57b56934a9 Switch to using a config file 2023-07-09 16:09:00 +02:00
Brian Picciano
7c68702ab8 Introduce domain::Config 2023-07-09 15:09:40 +02:00
Brian Picciano
80e96c47fb Rename domain::Config to domain::Domain, plus other moving 2023-07-09 14:25:01 +02:00
Brian Picciano
9c1bdc1e8a Introduce origin config 2023-07-09 14:07:07 +02:00
Brian Picciano
254d9c63d0 Config struct for http server 2023-07-09 13:43:38 +02:00
Brian Picciano
9d44593e73 Improve internal server errors significantly 2023-07-08 16:18:45 +02:00
Brian Picciano
a3c823c7b2 Simplify the http service a bunch, better error handling 2023-07-08 16:04:33 +02:00
Brian Picciano
82290d8b0b Get rid of read_file_into, use streams to serve files from domain manager 2023-07-08 15:53:40 +02:00
Brian Picciano
8b75b141f4 Alias BoxByteStream, and test git get_file implementation 2023-07-08 15:22:44 +02:00
Brian Picciano
60b90746fc Implement origin::Store::get_file, to deprecate read_file_into 2023-07-08 14:43:36 +02:00
Brian Picciano
0b790ecc4a Use util::BoxedFuture everywhere, for aesthetics 2023-07-06 18:04:29 +02:00
Brian Picciano
5e264093ec Get rid of origin::Origin trait completely, move read_file_into onto the origin::Store itself 2023-07-05 19:03:51 +02:00
Brian Picciano
773001b158 Changes suggested by clippy 2023-07-04 19:42:12 +02:00
Brian Picciano
6863694293 Pass descr around as a reference, generally 2023-07-04 19:33:03 +02:00
Brian Picciano
95f7f97716 move roadmap to README 2023-07-04 19:09:07 +02:00
Brian Picciano
9c36ae1c7b Test mux store... kinda 2023-07-03 14:30:41 +02:00
Brian Picciano
7a35befffe Don't include Send/Sync in trait requirements 2023-07-03 13:39:44 +02:00
Brian Picciano
fa85fe7fd8 Fix more tests 2023-07-03 13:23:07 +02:00
Brian Picciano
bd96581c6a Don't return Box from constructors 2023-06-29 16:54:55 +02:00
Brian Picciano
0b22801503 Basic, untested implementation of mux origin store 2023-06-29 16:15:15 +02:00
Brian Picciano
dd07bbf7ac Fix tests in git store 2023-06-25 14:52:44 +02:00
Brian Picciano
644d2bab23 Rename to domani 2023-06-25 13:35:59 +02:00
Brian Picciano
fcab32e0f7 Refactor TaskStack some more, allow for deferred syncronous tasks 2023-06-21 17:16:49 +02:00
Brian Picciano
d0f601a9f7 Make TaskStack cancel each task individually, not all at once 2023-06-21 14:29:47 +02:00
Brian Picciano
5e89d21ce3 Fix formatting in domain manager 2023-06-21 14:05:28 +02:00
Brian Picciano
505015a4bd Removed usage of sync::Arc where possible 2023-06-21 14:02:42 +02:00
Brian Picciano
289a185d42 Make domain manager do cert resolving for tls 2023-06-21 13:47:04 +02:00
Brian Picciano
51cb6aadce use Box for origin::Store 2023-06-21 13:24:00 +02:00
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