welcome: please sign in

Diff for "DomTool/Examples"

Differences between revisions 2 and 3
Revision 2 as of 2006-12-17 21:40:47
Size: 2423
Editor: AdamChlipala
Comment: Mail
Revision 3 as of 2006-12-17 21:55:46
Size: 3623
Editor: AdamChlipala
Comment: Basic Apache
Deletions are marked like this. Additions are marked like this.
Line 77: Line 77:

= Apache =

== The Model T ==

{{{domain "yourdomain" with
  web "www" with
    (* This is a web host found at www.yourdomain. *)
  end;
end;}}}

Note that the `web` directive also adds the right DNS mapping for your virtual host.

== The Do-It-Yourself ==

{{{domain "yourdomain" with
  vhost "www" with
  end;
end;}}}

This one doesn't add any DNS mappings.

== Using a nonstandard web server ==

{{{domain "yourdomain" with
  web "www" where
    WebNodes = ["fyodor"]
  with
  end;
end;}}}

== Bucking all the trends ==

{{{domain "yourdomain" with
  web "www" where
    DocumentRoot = "/some/random/directory";
    User = "me_web";
    Group = "me_web";
    SSL = true
  with
  end;
end;}}}

== Basic URL handling ==

{{{domain "yourdomain" with
  web "www" with
    alias "/doc" "/usr/local/doc";
    (* Serve all URIs beginning in /doc out of directory /usr/local/doc *)

    scriptAlias "/my-script" "/var/cgi/a-program";
    (* Handle requests for /my-script by calling the CGI program /var/cgi/a-program *)

    errorDocument "404" "not_found.html";
    (* Handle HTTP error code 404 by sending file not_found.html *)
  end;
end;}}}

Here are some example configuration files for DomTool, our distributed configuration management system.

TableOfContents()

1. Domains

1.1. The Model T

If you just want to declare your domain with a www.yourdomain virtual host serving out of ~/public_html/ and all mail forwarded to your mailbox, use: {{{dom "yourdomain" with end;}}}

1.2. Upgraded Model T

If you like everything dom gives you but want to add additional configuration, include it between with..end. For instance, to add an extra web virtual host other: {{{dom "yourdomain" with

  • web "other" with
    • (* More configuration could go here *)
    end;

end;}}}

1.3. The Do-It-Yourself

The lowest-level way of configuring a domain is the domain directive, which does nothing but set up basic DNS parameters and provide a space for including further directives: {{{domain "yourdomain" with

  • (* Your directives here *)

end;}}}

2. DNS

Here's a tour through the available DNS features.

{{{domain "yourdomain" with

  • nameserver "ns.hcoop.net"; nameserver "ns2.hcoop.net"; (* Specify two DNS servers that are authoritative for yourdomain *) dnsIP "host" "1.2.3.4"; (* Add a mapping from host.yourdomain to IP address 1.2.3.4 *) dnsMail 23 "mail.yourdomain"; (* Register mail.yourdomain as an SMTP handler for yourdomain, with priority 23 *) dnsAlias "hcoop" "hcoop.net"; (* Add an alias such that hcoop.yourdomain resolves to the same thing as hcoop.net *) dnsIP "dynamic" "5.6.7.8" where
    • TTL = 100
    end; (* Add an IP mapping with an abnormally low time-to-live of 100 *)

end;}}}

3. Mail

{{{domain "yourdomain" with

  • handleMail; (* HCoop should provide relaying for yourdomain *)

    emailAlias "user1" "user1@gmail.com"; (* Forward mail from user1@yourdomain to user1@gmail.com *) emailAlias "user2" "me"; (* Forward mail from user2@yourdomain to HCoop user me *)

    aliasMulti "pals" ["pal1@yahoo.com", "pal2@prodigy.com", "pal3"]; (* Forward mail from pals@yorudomain to pal1@yahoo.com, pal2@prodigy.com, and HCoop user pal3 *) aliasDrop "spamtrap"; (* Silently drop all mail to spamtrap@yourdomain *) defaultAlias "me"; (* Send all yourdomain mail that doesn't match some local user or other special rule to user me *) catchAllAlias "me"; (* Send all yourdomain mail, period, to user me *)

end;}}}

4. Apache

4.1. The Model T

{{{domain "yourdomain" with

  • web "www" with
    • (* This is a web host found at www.yourdomain. *)
    end;

end;}}}

Note that the web directive also adds the right DNS mapping for your virtual host.

4.2. The Do-It-Yourself

{{{domain "yourdomain" with

  • vhost "www" with end;

end;}}}

This one doesn't add any DNS mappings.

4.3. Using a nonstandard web server

{{{domain "yourdomain" with

  • web "www" where with end;

end;}}}

{{{domain "yourdomain" with

  • web "www" where
    • DocumentRoot = "/some/random/directory"; User = "me_web"; Group = "me_web"; SSL = true

    with end;

end;}}}

4.5. Basic URL handling

{{{domain "yourdomain" with

  • web "www" with
    • alias "/doc" "/usr/local/doc"; (* Serve all URIs beginning in /doc out of directory /usr/local/doc *) scriptAlias "/my-script" "/var/cgi/a-program"; (* Handle requests for /my-script by calling the CGI program /var/cgi/a-program *) errorDocument "404" "not_found.html"; (* Handle HTTP error code 404 by sending file not_found.html *)
    end;

end;}}}

DomTool/Examples (last edited 2022-02-10 16:18:48 by 2603:7080:493d:db56:2d52:b733:fa7c:b161)