From 843d0128ee4b1bc8ebb73ba8f2857637485c4e18 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Mon, 29 Feb 2016 18:32:53 +0000 Subject: Add docs.baserock.org, which renders spec.git as HTML and serves it Change-Id: I99ab72ad50d43da58c867b6d3ccd972b8e3e4bab --- baserock_webserver/etc/cherokee/cherokee.conf | 13 +++++++ .../system/generate-docs.baserock.org.service | 11 ++++++ .../system/generate-docs.baserock.org.timer | 8 ++++ baserock_webserver/generate-docs.baserock.org | 36 ++++++++++++++++++ .../instance-docs.baserock.org-config.yml | 43 ++++++++++++++++++++++ 5 files changed, 111 insertions(+) create mode 100644 baserock_webserver/etc/systemd/system/generate-docs.baserock.org.service create mode 100644 baserock_webserver/etc/systemd/system/generate-docs.baserock.org.timer create mode 100755 baserock_webserver/generate-docs.baserock.org create mode 100644 baserock_webserver/instance-docs.baserock.org-config.yml (limited to 'baserock_webserver') 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 . + + +# 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 -- cgit v1.2.1