This is the main version control repository for the internet domain
name scheme.org
.
DNS zones for the following domains are also managed here.
schemers.org
moved here in January 2023.
schemeworkshop.org
moved here in December 2023.
Scheme.org is divided into projects. Each project corresponds to a
subdomain under scheme.org
. The project ID example
corresponds to
the subdomain example.scheme.org
. That project also controls all
nested subdomains *.example.scheme.org
.
The file projects.pose
holds the ground truth for all project
definitions, including DNS records. Edits should be made to this file.
Each project is responsible for its own servers. This top-level repo does not deal with any project-specific configuration except for DNS records.
The www
project corresponds to www.scheme.org
, the front page of
scheme.org
. The website at this subdomain is generated from
projects.pose
as well as the HTML fragments (doc/*.html
) in this
repo.
The lists
project is responsible for @scheme.org
mailing lists
(TODO).
The redirect
project tracks subdomains that are just HTTP redirects.
The staging
project gives staging subdomains to projects that want
them. For example, www.staging.scheme.org
is a staging version of
www.scheme.org
. Each project must bring its own staging server,
which may be the same as its main server.
Scripts are written for R7RS-small. The WWW scripts use a few Chicken
Scheme eggs. The scripts/*.sh
wrappers use Chicken 5 with the r7rs
egg.
scripts/dns.sh
-- generatedns/scheme.org.zone
based onprojects.pose
.scripts/dnsput.sh scheme.org
-- uploaddns/scheme.org.zone
to Gandi.scripts/dnsput.sh schemers.org
-- uploaddns/schemers.org.zone
to Gandi.scripts/dnsget.sh scheme.org
-- downloaddns/scheme.org.zone
from Gandi.scripts/dnsget.sh schemers.org
-- downloaddns/schemers.org.zone
from Gandi.
scripts/www.sh
-- generate HTML files in thewww
subdirectory based onprojects.pose
anddoc/*.html
.scripts/wwwstaging.sh
-- uploadwww
subdirectory to staging server.scripts/wwwproduction.sh
-- uploadwww
subdirectory to production server.