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

DNS#

The DNS component does several things:

  1. It uses CoreDNS as a split-DNS nameserver for resolving local handles.
  2. It provides a small HTTP application for generating new handles for testing purposes.

Configuration#

This service makes API calls to the local PDS and also exists on a tailscale network.

Copy docker-compose.example.yml to docker-compose.yml and make the following changes:

  • Set the PDS_ADMIN_PASSWORD environment variable to your PDS admin password.
  • Set the PDS_HOSTNAME to the internal hostname of your PDS. (i.e. pds.sneaky-fox.ts.net)
  • Optionally, if you are not using the pyroclastic.cloud domain (it's fine to leave this as-is) then change that.
  • Optional, set the TS_AUTHKEY if you are using one.

Operation#

  1. First, build the didadmin tool.

    docker build -f ./didadmin/Dockerfile -t didadmin ./didadmin/

  2. Bring networking up.

    docker compose up tailscale -d

    If you are using dynamic machine authentication, you'll need to view the logs and click on the link.

    docker compose logs tailscale

  3. Generate an SSL certificate for the node. Be sure to change internal.ts.net to whatever your Tailnet name is (i.e. sneaky-fox.ts.net)

    docker compose exec tailscale /bin/sh -c "tailscale cert --cert-file /mnt/tls/cert.pem --key-file /mnt/tls/cert.key didadmin.internal.ts.net"

  4. Bring didadmin up.

    docker compose up app -d

    When this first starts, it'll create the /etc/coredns/database.db and /etc/coredns/Corefile files inside the container.

  5. Bring coredns and the proxy up.

    docker compose up -d

  6. Ensure the PLC and PDS services are running, and split-DNS is configured before using.

Usage#

In a browser, visit https://didadmin.sneaky-fox.ts.net/ and use the form to create accounts on the local PDS.