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