summaryrefslogtreecommitdiff
path: root/baserock_webserver
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2016-02-29 18:32:53 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2016-03-01 10:47:02 +0000
commit843d0128ee4b1bc8ebb73ba8f2857637485c4e18 (patch)
treec80ef6bba2d0ef6b90c1beac81bf78d4dc4272ef /baserock_webserver
parent4b2f52896a8b63dac96a061772448b41ba06ac94 (diff)
downloadinfrastructure-843d0128ee4b1bc8ebb73ba8f2857637485c4e18.tar.gz
Add docs.baserock.org, which renders spec.git as HTML and serves it
Change-Id: I99ab72ad50d43da58c867b6d3ccd972b8e3e4bab
Diffstat (limited to 'baserock_webserver')
-rw-r--r--baserock_webserver/etc/cherokee/cherokee.conf13
-rw-r--r--baserock_webserver/etc/systemd/system/generate-docs.baserock.org.service11
-rw-r--r--baserock_webserver/etc/systemd/system/generate-docs.baserock.org.timer8
-rwxr-xr-xbaserock_webserver/generate-docs.baserock.org36
-rw-r--r--baserock_webserver/instance-docs.baserock.org-config.yml43
5 files changed, 111 insertions, 0 deletions
diff --git a/baserock_webserver/etc/cherokee/cherokee.conf b/baserock_webserver/etc/cherokee/cherokee.conf
index 6b6a3d7a..987f22ea 100644
--- a/baserock_webserver/etc/cherokee/cherokee.conf
+++ b/baserock_webserver/etc/cherokee/cherokee.conf
@@ -61,6 +61,19 @@ vserver!2!rule!1!handler!rewrite!10!regex = ^.*$
vserver!2!rule!1!handler!rewrite!10!show = 1
vserver!2!rule!1!handler!rewrite!10!substring = /baserock/
vserver!2!rule!1!match = default
+vserver!3!directory_index = index.html
+vserver!3!document_root = /srv/docs.baserock.org
+vserver!3!nick = docs.baserock.org
+vserver!3!rule!3!document_root = /usr/share/cherokee/themes
+vserver!3!rule!3!handler = file
+vserver!3!rule!3!match = directory
+vserver!3!rule!3!match!directory = /cherokee_themes
+vserver!3!rule!2!document_root = /usr/share/cherokee/icons
+vserver!3!rule!2!handler = file
+vserver!3!rule!2!match = directory
+vserver!3!rule!2!match!directory = /cherokee_icons
+vserver!3!rule!1!handler = common
+vserver!3!rule!1!match = default
icons!default = page_white.png
icons!directory = folder.png
icons!file!bomb.png = core
diff --git a/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.service b/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.service
new file mode 100644
index 00000000..93ec6e7f
--- /dev/null
+++ b/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.service
@@ -0,0 +1,11 @@
+[Unit]
+Description = Generate docs.baserock.org content
+
+[Service]
+Type = oneshot
+ExecStart = /home/fedora/generate-docs.baserock.org
+User = fedora
+Group = fedora
+
+[Install]
+WantedBy=default.target
diff --git a/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.timer b/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.timer
new file mode 100644
index 00000000..d78f677b
--- /dev/null
+++ b/baserock_webserver/etc/systemd/system/generate-docs.baserock.org.timer
@@ -0,0 +1,8 @@
+[Unit]
+Description = Generate docs.baserock.org content
+
+[Timer]
+OnUnitActiveSec = 10min
+
+[Install]
+WantedBy = default.target
diff --git a/baserock_webserver/generate-docs.baserock.org b/baserock_webserver/generate-docs.baserock.org
new file mode 100755
index 00000000..581ab5de
--- /dev/null
+++ b/baserock_webserver/generate-docs.baserock.org
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Copyright (C) 2016 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# Generator script for docs.baserock.org website.
+#
+# This can be run as a cron job or Git post-receive hook, to get auto-updating
+# documentation built from Git repos.
+
+
+set -e
+
+cd ~
+if [ ! -d spec.git ]; then
+ git clone git://git.baserock.org/baserock/baserock/spec.git spec.git
+ cd spec.git
+else
+ cd spec.git
+ git checkout master
+ git pull origin master
+fi
+
+~/.local/bin/mkdocs build
diff --git a/baserock_webserver/instance-docs.baserock.org-config.yml b/baserock_webserver/instance-docs.baserock.org-config.yml
new file mode 100644
index 00000000..e5910579
--- /dev/null
+++ b/baserock_webserver/instance-docs.baserock.org-config.yml
@@ -0,0 +1,43 @@
+# Configuration for docs.baserock.org site.
+#
+# This expects to be run after image-config.yml.
+- hosts: webserver
+ gather_facts: False
+ tasks:
+ - name: /srv/docs.baserock.org/
+ file: path=/srv/docs.baserock.org/ owner=fedora state=directory
+
+ - name: git
+ dnf: name=git state=latest
+ sudo: yes
+
+ - name: mkdocs documentation generator
+ pip: name=mkdocs executable=pip3.4 extra_args="--user"
+
+ # A lot of the mkdocs themes are totally broken without Javascript, which
+ # is stupid. This one looks a little bit ugly without Javascript, but it
+ # is mostly usable.
+ - name: mkdocs 'material' theme
+ pip: name=mkdocs-material executable=pip3.4 extra_args="--user"
+
+ - name: generate-docs.baserock.org script
+ copy: src=generate-docs.baserock.org dest=/home/fedora/ mode=755
+
+ - name: generate-docs.baserock.org systemd unit
+ copy: src=etc/systemd/system/generate-docs.baserock.org.service dest=/etc/systemd/system/
+ sudo: yes
+
+ - name: generate-docs.baserock.org systemd timer
+ copy: src=etc/systemd/system/generate-docs.baserock.org.timer dest=/etc/systemd/system/
+ sudo: yes
+
+ # FIXME: it would be much cooler to monitor the output of `gerrit
+ # stream-events`, or have a git post-receive hook installed on
+ # git.baserock.org to trigger this.
+ - name: enable generate-docs.baserock.org timer
+ service: name=generate-docs.baserock.org.timer state=started enabled=yes
+ sudo: yes
+
+ - name: enable generate-docs.baserock.org service
+ service: name=generate-docs.baserock.org.service enabled=yes
+ sudo: yes