Gurty - a CLI tool to setup your GURT Protocol server
Gurty is a command-line interface tool for setting up and managing GURT protocol servers.
Configuration
Gurty uses a TOML configuration file to manage server settings. The gurty.template.toml file provides a complete configuration template with all available options:
Sections
- Server: Basic server settings (host, port, protocol version, connection limits)
- TLS: Certificate and private key configuration for secure connections
- Logging: Logging levels, request/response logging, and log file paths
- Security: File access restrictions, allowed HTTP methods, and rate limiting
- Error Pages: Custom error page templates and default error responses
- Headers: Custom HTTP headers for security and server identification
Using Configuration Files
-
Copy the configuration template:
-
Edit the configuration to match your environment. (optional)
-
Use the configuration file:
Setup for Production
For production deployments, you can use the Gurted Certificate Authority to get proper TLS certificates:
-
Install the Gurted CA CLI:
-
Request a certificate for your domain:
-
Follow the DNS challenge instructions: When prompted, add the TXT record to your domain:
- Go to gurt://dns.web (or your DNS server)
- Login and navigate to your domain
- Add a TXT record with:
- Name:
_gurtca-challenge - Value: (provided by the CLI tool)
- Name:
- Press Enter to continue verification
-
Copy the configuration template and customize:
-
Deploy with CA-issued certificates:
Development Environment Setup
To set up a development environment for GURT, follow these steps:
-
Install mkcert:
# Windows (with Chocolatey) # Or download from: https://github.com/FiloSottile/mkcert/releases -
Install local CA in system:
This installs a local CA in your system certificate store.
-
Generate localhost certificates:
This creates:
localhost+2.pem(certificate)localhost+2-key.pem(private key)
-
Copy the configuration template and customize:
-
Start GURT server with certificates and configuration:
Or specify certificates explicitly: