## MODIFIED Requirements ### Requirement: shadowsocks-rust configuration is templated The relay server's shadowsocks configuration SHALL be generated from a Jinja2 template with variables for port, password, and cipher method. The relay server SHALL have a configurable domain name (`relay_domain`) for use in client configuration generation. #### Scenario: Configuration is generated from template - **WHEN** the shadowsocks role runs - **THEN** a JSON config file is rendered from template with port, password, and encryption method - **THEN** the config file permissions are restricted (readable only by the service user) #### Scenario: Configuration change triggers restart - **WHEN** a variable in `group_vars/relay.yml` is changed and the playbook is re-run - **THEN** the configuration file is updated - **THEN** the ssserver service is restarted