|
|
|
@ -7,6 +7,78 @@ their DNS server. |
|
|
|
|
|
|
|
|
|
[Demo which may or may not be live](https://domiply.mediocregopher.com) |
|
|
|
|
|
|
|
|
|
## Build |
|
|
|
|
|
|
|
|
|
Domiply uses nix flakes for building and setting up the development environment. |
|
|
|
|
|
|
|
|
|
In order to create a release binary: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
nix build |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
A statically compiled binary will be placed in the `result` directory. |
|
|
|
|
|
|
|
|
|
## Configuration |
|
|
|
|
|
|
|
|
|
Domiply is configured via command-line arguments or environment variables: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
--http-domain <HTTP_DOMAIN> |
|
|
|
|
[env: DOMIPLY_HTTP_DOMAIN=] |
|
|
|
|
|
|
|
|
|
--http-listen-addr <HTTP_LISTEN_ADDR> |
|
|
|
|
[env: DOMIPLY_HTTP_LISTEN_ADDR=] [default: [::]:3030] |
|
|
|
|
|
|
|
|
|
--https-listen-addr <HTTPS_LISTEN_ADDR> |
|
|
|
|
E.g. '[::]:443', if given then SSL certs will automatically be retrieved for all domains using LetsEncrypt [env: DOMIPLY_HTTPS_LISTEN_ADDR=] |
|
|
|
|
|
|
|
|
|
--passphrase <PASSPHRASE> |
|
|
|
|
[env: DOMIPLY_PASSPHRASE=] |
|
|
|
|
|
|
|
|
|
--origin-store-git-dir-path <ORIGIN_STORE_GIT_DIR_PATH> |
|
|
|
|
[env: DOMIPLY_ORIGIN_STORE_GIT_DIR_PATH=] |
|
|
|
|
|
|
|
|
|
--domain-checker-target-a <DOMAIN_CHECKER_TARGET_A> |
|
|
|
|
[env: DOMIPLY_DOMAIN_CHECKER_TARGET_A=] |
|
|
|
|
|
|
|
|
|
--domain-checker-resolver-addr <DOMAIN_CHECKER_RESOLVER_ADDR> |
|
|
|
|
[env: DOMIPLY_DOMAIN_CHECKER_RESOLVER_ADDR=] [default: 1.1.1.1:53] |
|
|
|
|
|
|
|
|
|
--domain-config-store-dir-path <DOMAIN_CONFIG_STORE_DIR_PATH> |
|
|
|
|
[env: DOMIPLY_DOMAIN_CONFIG_STORE_DIR_PATH=] |
|
|
|
|
|
|
|
|
|
--domain-acme-store-dir-path <DOMAIN_ACME_STORE_DIR_PATH> |
|
|
|
|
[env: DOMIPLY_DOMAIN_ACME_STORE_DIR_PATH=] |
|
|
|
|
|
|
|
|
|
--domain-acme-contact-email <DOMAIN_ACME_CONTACT_EMAIL> |
|
|
|
|
[env: DOMIPLY_DOMAIN_ACME_CONTACT_EMAIL=] |
|
|
|
|
|
|
|
|
|
-h, --help |
|
|
|
|
Print help |
|
|
|
|
|
|
|
|
|
-V, --version |
|
|
|
|
Print version |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
### HTTPS Support |
|
|
|
|
|
|
|
|
|
Domiply will automatically handle setting up HTTPS via LetsEncrypt for both the |
|
|
|
|
domiply frontend site and all domains which it has been configured to serve. |
|
|
|
|
|
|
|
|
|
By default HTTPS is not enabled, but can be easily enabled by setting the |
|
|
|
|
following arguments: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
--https-listen-addr='[::]:443' |
|
|
|
|
--domain-acme-contact-email='foo@example.com' |
|
|
|
|
--domain-acme-store-dir-path='/some/secure/directory' |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
The contact email can be anything, it doesn't have to be real. The store |
|
|
|
|
directory will have all SSL private keys written to it, and so should be |
|
|
|
|
secured as best as possible. |
|
|
|
|
|
|
|
|
|
## Development |
|
|
|
|
|
|
|
|
|
Domiply uses nix flakes for building and setting up the development environment. |
|
|
|
@ -19,12 +91,6 @@ nix develop |
|
|
|
|
|
|
|
|
|
Within the shell which opens you can do `cargo run` to start a local instance. |
|
|
|
|
|
|
|
|
|
In order to create a release binary: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
nix build |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
## Roadmap |
|
|
|
|
|
|
|
|
|
Check out the `src/service/http_tpl/index.html` file for the current roadmap. |
|
|
|
|