--- /dev/null
+= static mirroring
+
+The static mirroring system mirrors //components//, i.e. directory trees from
+their individual //source// hosts via //static-master// hosts to the
+//static-mirrors//.
+
+The static-master can be configured per source. The mirrors are the same set
+for all components.
+
+== Adding a new static component
+
+Using already configured source and master hosts.
+
+* Pick a component name, e.g., {{{debaday.debian.net}}}
+
+* Pick/Learn source host, pick a master, and add to {{{dsa-puppet/modules/roles/files/static-mirroring/static-components.conf}}}:
+{{{
+ # <master> <service> <source host> <directory> <extra push hosts, comma separated>
+ dillon.debian.org debaday.debian.net dillon.debian.org /srv/debaday.debian.net/htdocs
+}}}
+
+* Give sudo to run the right {{{static-update-component}}} to the appropriate group:
+{{{
+ /usr/sbin/visudo -f dsa-puppet/modules/sudo/files/sudoer
+}}}
+and add something like
+{{{
+ lucas dillon=(staticsync) NOPASSWD: /usr/local/bin/static-update-component debaday.debian.net
+}}}
+
+* Add the vhost config on mirrors:
+{{{
+ vi dsa-puppet/modules/roles/templates/static-mirroring/vhost/static-vhosts-simple.erb
+}}}
+
+* run puppet on the master, the source, and all the mirrors. Check {{{dsa-puppet/hieradata/common.yaml}}.