class WireGuard::Admin::Templates::Client

Configuration template for a WireGuard::Admin::Client

Attributes

client[R]
network[R]
servers[R]

Public Class Methods

new(client:, network:, servers:) click to toggle source
Calls superclass method
# File lib/wire_guard/admin/templates/client.rb, line 33
def initialize(client:, network:, servers:)
  @client = client
  @network = network
  @servers = servers
  super(self.class.template, trim_mode: '<>')
end
template() click to toggle source
# File lib/wire_guard/admin/templates/client.rb, line 12
        def self.template
          <<~CLIENT_TEMPLATE
            # WireGuard configuration for <%= client.name %>
            # generated by wg-admin

            [Interface]
            PrivateKey = <%= client.private_key %>
            Address = <%= client.ip %>/<%= network.prefix %>
            <% servers.each do |server| %>

            [Peer]
            PublicKey = <%= server.public_key %>
            EndPoint = <%= server.name %>:<%= server.port %>
            AllowedIPs = <%= server.allowed_ips %>/<%= server.allowed_ips.prefix %>
            PersistentKeepalive = 25
            <% end %>
          CLIENT_TEMPLATE
        end

Public Instance Methods

render() click to toggle source
# File lib/wire_guard/admin/templates/client.rb, line 40
def render
  result(binding)
end