Code, configuration, and documentation to support network-local development environments

documentation: Moving config files around to make it easier to immediately clone and use the repository.

+3 -2
.gitignore
··· 1 - # PLC 2 - /plc/did-method-plc 1 + /plc/did-method-plc 2 + /pds/env 3 + docker-compose.yml
+31 -5
README.md
··· 2 2 3 3 Code and configuration to create a network-local development environment. It uses tailscale and can be used to have shared isolated infrastructure that can be used to support individuals and teams. 4 4 5 - ## Configuration 5 + ***Note***: When developing against this network-local development environment using the configured nameserver and PLC instance, you will not be able to mix pyroclastic.cloud identities and external identities unless you take steps to resolve against ***both*** the local PLC instance (`https://plc.internal.ts.net`) as well as `https://plc.directory`. 6 + 7 + ## Requirements 6 8 9 + * Docker Compose 10 + * Tailscale 11 + * DNS enabled 12 + * HTTPS enabled 13 + * The name of your tailnet (i.e. `sneaky-fox.ts.net`) 7 14 8 15 ## Operation 9 16 10 - 1. Configure and start the PLC service. See plc/README.md 17 + 1. Clone this repository 11 18 12 - 2. Configure and start the PDS service. See pds/README.md 19 + 2. Configure and start the PLC service. See plc/README.md 13 20 14 - 3. Configure and start the DNS service. See dns/README.md 21 + 3. Configure and start the PDS service. See pds/README.md 15 22 16 - 4. Configure split-DNS in Tailscale. 23 + 4. Configure and start the DNS service. See dns/README.md 24 + 25 + 5. Configure split-DNS in Tailscale. 17 26 18 27 1. Visit https://tailscale.com/ 19 28 2. Go to the Machines tab and get the internal IP address of `didadmin` 20 29 2. Go to the DNS configuration page 21 30 3. Add a nameserver and select "Custom" 22 31 4. Enter the IP address of the `didadmin`, select "Restrict to domain (Split DNS)", and set the domain to "pyroclastic.cloud" 32 + 33 + ## Usage 34 + 35 + The following services are now available: 36 + 37 + * PLC - https://plc.internal.ts.net 38 + * PDS - https://pds.internal.ts.net 39 + * DNS - didadmin.internal.ts.net:53 40 + * didadmin - https://didadmin.internal.ts.net 41 + * maildev - http://pds.internal.ts.net:1080 42 + 43 + When configuration applications for local/local-network development, use the following configuration: 44 + 45 + ``` 46 + NAMESERVERS=100.100.100.100 47 + PLC_HOSTNAME=https://plc.internal.ts.net 48 + ``` 23 49 24 50 ## Maintenance 25 51
+4 -3
dns/README.md
··· 7 7 8 8 ## Configuration 9 9 10 - This service makes API calls to the local PDS and also exists on a tailscale network. Please make note of any `PLACEHOLDER` and `OPTIONAL` strings in the following files: 10 + This service makes API calls to the local PDS and also exists on a tailscale network. 11 11 12 - In `./docker-compose.yml`: 12 + Copy `docker-compose.example.yml` to `docker-compose.yml` and make the following changes: 13 13 14 14 * Set the `PDS_ADMIN_PASSWORD` environment variable to your PDS admin password. 15 15 * Set the `PDS_HOSTNAME` to the internal hostname of your PDS. (i.e. `pds.sneaky-fox.ts.net`) 16 16 * Optionally, if you are not using the `pyroclastic.cloud` domain (it's fine to leave this as-is) then change that. 17 + * Optional, set the `TS_AUTHKEY` if you are using one. 17 18 18 19 ## Operation 19 20 ··· 25 26 26 27 `docekr compose up tailscale -d` 27 28 28 - If you are using dynamic node registration, you'll need to view the logs and click on the link. 29 + If you are using dynamic machine authentication, you'll need to view the logs and click on the link. 29 30 30 31 `docker compose logs tailscale` 31 32
dns/docker-compose.yml dns/docker-compose.example.yml
+5 -1
pds/README.md
··· 14 14 * `PDS_DID_PLC_URL` value updated to relflect your internal tailnet 15 15 * Optionally, if you are not using the `pyroclastic.cloud` domain (it's fine to leave this as-is) then change that. 16 16 17 + Copy `docker-compose.example.yml` to `docker-compose.yml` and make the following changes: 18 + 19 + * Optional, set the `TS_AUTHKEY` if you are using one. 20 + 17 21 ## Operation 18 22 19 23 1. Create the configuration file and update it accordingly. ··· 22 26 23 27 `docekr compose up tailscale -d` 24 28 25 - If you are using dynamic node registration, you'll need to view the logs and click on the link. 29 + If you are using dynamic machine authentication, you'll need to view the logs and click on the link. 26 30 27 31 `docker compose logs tailscale` 28 32
pds/docker-compose.yml pds/docker-compose.example.yml
+9 -1
plc/README.md
··· 1 1 # PLC 2 2 3 + ## Configuration 4 + 5 + Copy `docker-compose.example.yml` to `docker-compose.yml` and make the following changes: 6 + 7 + * Optional, set the `TS_AUTHKEY` if you are using one. 8 + 9 + ## Operation 10 + 3 11 To start a PLC server, you must build a container from the PLC repository. 4 12 5 13 1. First, clone https://github.com/did-method-plc/did-method-plc ··· 14 22 15 23 `docekr compose up tailscale -d` 16 24 17 - If you are using dynamic node registration, you'll need to view the logs and click on the link. 25 + If you are using dynamic machine authentication, you'll need to view the logs and click on the link. 18 26 19 27 `docker compose logs tailscale` 20 28
plc/docker-compose.yml plc/docker-compose.example.yml