New build path variable
[freeradius.git] / raddb / templates.conf
1 # -*- text -*-
2 ##
3 ## templates.conf -- configurations to be used in multiple places
4 ##
5 ##      $Id$
6
7 ######################################################################
8 #
9 #  Version 2.0 has a useful new feature called "templates".
10 #
11 #  Use templates by adding a line in radiusd.conf:
12 #
13 #       $INCLUDE templates.conf
14 #
15 #  The goal of the templates is to have common configuration located
16 #  in this file, and to list only the *differences* in the individual
17 #  sections.  This feature is most useful for sections like "clients"
18 #  or "home_servers", where many may be defined, and each one has
19 #  similar repeated configuration.
20 #
21 #  Something similar to templates can be done by putting common
22 #  configuration into separate files, and using "$INCLUDE file...",
23 #  but this is more flexible, and simpler to understand.  It's also
24 #  cheaper for the server, because "$INCLUDE" makes a copy of the
25 #  configuration for inclusion, and templates are simply referenced.
26 #
27 #  The templates are defined in the "templates" section, so that they
28 #  do not affect the rest of the server configuration.
29 #
30 #  A section can reference a template by using "$template name"
31 #
32 templates {
33           #
34           #  The contents of the templates section are other
35           #  configuration sections that would normally go into
36           #  the configuration files.
37           #
38
39           #
40           #  This is a default template for the "home_server" section.
41           #  Note that there is no name for the section.
42           #
43           #  Any configuration item that is valid for a "home_server"
44           #  section is also valid here.  When a "home_server" section
45           #  is defined in proxy.conf, this section is referenced as
46           #  the template.
47           #
48           #  Configuration items that are explicitly listed in a
49           #  "home_server" section of proxy.conf are used in
50           #  preference to the configuration items listed here.
51           #
52           #  However, if a configuration item is NOT listed in a
53           #  "home_server" section of proxy.conf, then the value here
54           #  is used.
55           #
56           #  This functionality lets you put common configuration into
57           #  a template, and to put only the unique configuration
58           #  items in "proxy.conf".  Each section in proxy.conf can
59           #  then contain a line "$template home_server", which will
60           #  cause it to reference this template.
61           #
62           home_server {
63                         response_window = 20
64                         zombie_period = 40
65                         revive_interval = 120
66                         #
67                         #  Etc.
68           }
69
70           #
71           #  You can also have named templates.  For example, if you
72           #  are proxying to 3 different home servers all at the same
73           #  site, with identical configurations (other than IP
74           #  addresses), you can use this named template.
75           #
76
77           #  Then, each "home_server" section in "proxy.conf" would
78           #  only list the IP address of that home server, and a
79           #  line saying
80           #
81           #             $template example_com
82           #
83           #  That would tell FreeRADIUS to look in the section below
84           #  for the rest of the configuration items.
85           #
86           #  For various reasons, you shouldn't have a "." in the template
87           #  name.  Doing so means that the server will be unable to find
88           #  the template.
89           #
90           example_com {
91                       type = auth
92                       port = 1812
93                       secret = testing123
94                       response_window = 20
95                       #
96                       # Etc...
97           }
98
99           #
100           #  You can have templates for other sections, too, but they
101           #  seem to be most useful for home_servers.
102           #
103           #  For now, you can use templates only for sections in
104           #  radiusd.conf, not sub-sections.  So you still have to use
105           #  the "$INCLUDE file.." method for things like defining
106           #  multiple "sql" modules, each with similar configuration.
107           #       
108 }