From b944832d593683e54c216d23bb493b302b521e29 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Sat, 18 Oct 2014 14:14:30 +0200 Subject: convert root page to reST like ~kyrias/ --- .well-known/keybase.txt | 93 --------------------------------------------- Makefile | 22 +++++------ mail/config-v1.1.xml | 23 ----------- partials/footer.html | 6 --- partials/meta.html | 10 ----- partials/nav.html | 7 ---- scripts/bupa | 74 ++++++++++++++++++++++++++++++++++++ src/.well-known/keybase.txt | 93 +++++++++++++++++++++++++++++++++++++++++++++ src/index.html | 46 ---------------------- src/index.rst | 40 +++++++++++++++++++ src/sitemap1.xml | 3 ++ src/style.css | 17 +++++---- src/templates/layout.html | 33 ++++++++++++++++ src/templates/page.html | 12 ++++++ 14 files changed, 275 insertions(+), 204 deletions(-) delete mode 100644 .well-known/keybase.txt delete mode 100644 mail/config-v1.1.xml delete mode 100644 partials/footer.html delete mode 100644 partials/meta.html delete mode 100644 partials/nav.html create mode 100755 scripts/bupa create mode 100644 src/.well-known/keybase.txt delete mode 100644 src/index.html create mode 100644 src/index.rst create mode 100644 src/templates/layout.html create mode 100644 src/templates/page.html diff --git a/.well-known/keybase.txt b/.well-known/keybase.txt deleted file mode 100644 index 2d23d7c..0000000 --- a/.well-known/keybase.txt +++ /dev/null @@ -1,93 +0,0 @@ -================================================================== -https://keybase.io/johannes --------------------------------------------------------------------- - -I hereby claim: - - * I am an admin of https://theos.kyriasis.com - * I am johannes (https://keybase.io/johannes) on keybase. - * I have a public key with fingerprint 5134 EF9E AF65 F95B 6BB1 608E 50FB 9B27 3A9D 0BB5 - -To claim this, I am signing this object: - -{ - "body": { - "client": { - "name": "keybase.io node.js client", - "version": "0.4.11" - }, - "key": { - "fingerprint": "5134ef9eaf65f95b6bb1608e50fb9b273a9d0bb5", - "host": "keybase.io", - "key_id": "50FB9B273A9D0BB5", - "uid": "04ed91b0d142316f11dbc0bd0a8b7700", - "username": "johannes" - }, - "merkle_root": { - "ctime": 1403779276, - "hash": "f60a7df50b9b9ae7aa9e1fdd2b2e7d4ec613f5b7d0f5234acd4a815c79cc1fac0aded0398ad7c859751817ae7164a9b99a56001485aca993ee561186ae71b6ca", - "seqno": 23792 - }, - "service": { - "hostname": "theos.kyriasis.com", - "protocol": "https:" - }, - "type": "web_service_binding", - "version": 1 - }, - "ctime": 1403779384, - "expire_in": 157680000, - "prev": "4d6affa5d2fe05944c143a6c2c6cbd874d6a326f2e3ab54eff44ea1e8fb77801", - "seqno": 20, - "tag": "signature" -} - -with the aforementioned key, yielding the PGP signature: - ------BEGIN PGP MESSAGE----- -Version: GnuPG v2.0.22 (GNU/Linux) - -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 -=BczO ------END PGP MESSAGE----- - -And finally, I am proving ownership of this host by posting or -appending to this document. - -View my publicly-auditable identity here: https://keybase.io/johannes - -================================================================== diff --git a/Makefile b/Makefile index 7f975af..5fd4e32 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,25 @@ HTML := index.html CSS := style.css - -PARTIALS := $(addprefix partials/, meta.html nav.html footer.html) WELLKNOWN := $(addprefix .well-known/, keybase.txt) -FILES := $(HTML) $(CSS) robots.txt sitemap.xml sitemap1.xml +FILES := $(HTML) $(CSS) robots.txt sitemap.xml sitemap1.xml \ + $(WELLKNOWN) + +site: build/.well-known/ $(addprefix build/, $(FILES)) -site: $(addprefix build/, $(FILES) $(WELLKNOWN)) +build/%/: + mkdir -P $@ clean: -rm $(addprefix build/, $(FILES)) -build/%.html: src/%.html $(PARTIALS) - @./scripts/awink $< $@ - @echo Compiled $< → $@ - -build/%.css: src/%.css - @install -Dm644 $< $@ - @echo Compiled $< → $@ +build/%.html: src/%.rst + @./scripts/bupa $@ + @echo Built $@ from $< build/%: src/% @install -Dm644 $< $@ - @echo Compiled $< → $@ + @echo Copied $< → $@ build/.well-known/%: .well-known/% @install -Dm644 $< $@ diff --git a/mail/config-v1.1.xml b/mail/config-v1.1.xml deleted file mode 100644 index d6454b1..0000000 --- a/mail/config-v1.1.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - kyriasis.com - Kyriasis Mail - Kyriasis - - theos.kyriasis.com - 143 - STARTTLS - password-cleartext - %EMAILLOCALPART% - - - theos.kyriasis.com - 587 - STARTTLS - password-cleartext - %EMAILLOCALPART% - - - diff --git a/partials/footer.html b/partials/footer.html deleted file mode 100644 index 014a62d..0000000 --- a/partials/footer.html +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/partials/meta.html b/partials/meta.html deleted file mode 100644 index 8e384f7..0000000 --- a/partials/meta.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/partials/nav.html b/partials/nav.html deleted file mode 100644 index cd4b785..0000000 --- a/partials/nav.html +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/scripts/bupa b/scripts/bupa new file mode 100755 index 0000000..1fd06ff --- /dev/null +++ b/scripts/bupa @@ -0,0 +1,74 @@ +#!/usr/bin/env python +"""Usage: bupa + +Options: + -h --help Show this screen. +""" +from jinja2 import Environment, FileSystemLoader +import glob, yaml, docopt + +from docutils import core +from docutils.writers.html4css1 import Writer + +def reST_to_html(s): + return core.publish_parts(s, writer_name='html4css1')['html_body'] + +def filename_to_id(file_name): + return int(file_name.split('/')[-1]. + split('-')[0]. + split('.')[0]) + +class Page(object): + def __init__(self, page_dict): + self.id = None + self.title = page_dict['title'] + self.header = page_dict['header'] + self.date = page_dict['date'] + self.author = page_dict['author'] + if 'author_link' in page_dict: + self.author_link = page_dict['author_link'] + self.body = page_dict['body'][0] + +def parse(filename): + with open(filename, 'r') as file: + data = file.read() + + frontmatter, *body = data.split('\n\n', 1) + frontmatter = frontmatter.partition('\n')[2] + frontmatter = yaml.load(frontmatter) + + page_dict = frontmatter.copy() + page_dict['body'] = body + if not 'header' in page_dict: + page_dict['header'] = page_dict['title'] + + page = Page(page_dict) + return page + + with open('build/journal.html', 'w') as file: + file.write(template.render(entries=entries, title='~/journal', header='The lost journal')) + +def build_page(env, templ_name, pagename): + template = env.get_template(templ_name) + + page = parse('src/'+pagename+'.rst') + page.body = reST_to_html(page.body) + page.article_id = pagename + + with open('build/'+pagename+'.html', 'w') as file: + file.write(template.render(page=page, title=page.title, header=page.header)) + +def main(): + arguments = docopt.docopt(__doc__) + env = Environment(loader=FileSystemLoader('src/templates')) + + if '' in arguments: + file = arguments[''].split('/')[-1] + else: + exit(2) + + if file == 'index.html': + build_page(env, 'page.html', 'index') + +if __name__ == '__main__': + main() diff --git a/src/.well-known/keybase.txt b/src/.well-known/keybase.txt new file mode 100644 index 0000000..2d23d7c --- /dev/null +++ b/src/.well-known/keybase.txt @@ -0,0 +1,93 @@ +================================================================== +https://keybase.io/johannes +-------------------------------------------------------------------- + +I hereby claim: + + * I am an admin of https://theos.kyriasis.com + * I am johannes (https://keybase.io/johannes) on keybase. + * I have a public key with fingerprint 5134 EF9E AF65 F95B 6BB1 608E 50FB 9B27 3A9D 0BB5 + +To claim this, I am signing this object: + +{ + "body": { + "client": { + "name": "keybase.io node.js client", + "version": "0.4.11" + }, + "key": { + "fingerprint": "5134ef9eaf65f95b6bb1608e50fb9b273a9d0bb5", + "host": "keybase.io", + "key_id": "50FB9B273A9D0BB5", + "uid": "04ed91b0d142316f11dbc0bd0a8b7700", + "username": "johannes" + }, + "merkle_root": { + "ctime": 1403779276, + "hash": "f60a7df50b9b9ae7aa9e1fdd2b2e7d4ec613f5b7d0f5234acd4a815c79cc1fac0aded0398ad7c859751817ae7164a9b99a56001485aca993ee561186ae71b6ca", + "seqno": 23792 + }, + "service": { + "hostname": "theos.kyriasis.com", + "protocol": "https:" + }, + "type": "web_service_binding", + "version": 1 + }, + "ctime": 1403779384, + "expire_in": 157680000, + "prev": "4d6affa5d2fe05944c143a6c2c6cbd874d6a326f2e3ab54eff44ea1e8fb77801", + "seqno": 20, + "tag": "signature" +} + +with the aforementioned key, yielding the PGP signature: + +-----BEGIN PGP MESSAGE----- +Version: GnuPG v2.0.22 (GNU/Linux) + +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 +=BczO +-----END PGP MESSAGE----- + +And finally, I am proving ownership of this host by posting or +appending to this document. + +View my publicly-auditable identity here: https://keybase.io/johannes + +================================================================== diff --git a/src/index.html b/src/index.html deleted file mode 100644 index cdc113a..0000000 --- a/src/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - theos/ | theos.kyriasis.com -%include partials/meta.html - - -
-%include partials/nav.html -

theos/

-
- -
-

Welcome to theos.kyriasis.com

- -

Theos is a server under the kyriasis domain owned and operated by kyrias, who also owns kyriasis.com itself. (Albeit not the server that the A/AAAA records on kyriasis.com points to for historical reasons.) -

- -

Services running on theos:

-
    -
  • HTTP services using the NGINX HTTP server
  • -
  • An LDAP tree running on OpenLDAP
  • -
  • Email services using OpenSMTPD and Dovecot
  • -
  • A Kerberos realm using the MIT Kerberos implementation and the OpenLDAP backend
  • -
  • Git hosting using a combination of cgit and a slighly modified version of gitolite and OpenSSH for Kerberos authentication
  • -
- -

All users with shell access have the option of getting an email under the kyriasis.com domain, web hosting under the theos.kyriasis.com domain or possibly under a custom subdomain, and public git hosting. (All git-push access requites using Kerberos for ssh authentication.) -

-
- - - -

Last updated

-

- -%include partials/footer.html - - diff --git a/src/index.rst b/src/index.rst new file mode 100644 index 0000000..5de7122 --- /dev/null +++ b/src/index.rst @@ -0,0 +1,40 @@ +.. frontmatter + title: theos/ + date: 2014-10-18 + author: Johannes Löthberg + author_link: ~kyrias/about.html + +Welcome to theos.kyriasis.com +----------------------------- + +Theos is a server under the kyriasis domain owned and operated by kyrias_, who also owns kyriasis.com itself. (Albeit not the server that the A/AAAA records on kyriasis.com points to for historical reasons.) + +Services running on theos: +------------------------------ + +* HTTP services using the NGINX_ HTTP server +* An LDAP tree running on OpenLDAP_ +* Email services using OpenSMTPD_ and Dovecot_ +* A Kerberos realm using the `MIT Kerberos`_ implementation and the OpenLDAP backend +* Git hosting using a combination of cgit_ and a slighly modified version of gitolite_ and OpenSSH for Kerberos authentication + +All users with shell access have the option of getting an email under the kyriasis.com domain, web hosting under the theos.kyriasis.com domain or possibly under a custom subdomain, and public git hosting. (All git-push access requites using Kerberos for ssh authentication.) + +User pages +---------- + +.. role:: raw-html(raw) + :format: html + +* kyrias_ +* Arch-TK_ + +.. _kyrias: https://theos.kyriasis.com/~kyrias/ +.. _Arch-TK: https://theos.kyriasis.com/~arch-tk/ +.. _NGINX: http://nginx.org/ +.. _OpenLDAP: http://www.openldap.org/ +.. _OpenSMTPD: https://www.opensmtpd.org/ +.. _Dovecot: http://www.dovecot.org/ +.. _MIT Kerberos: http://web.mit.edu/kerberos/ +.. _cgit: http://git.zx2c4.com/cgit/about/ +.. _gitolite: http://gitolite.com diff --git a/src/sitemap1.xml b/src/sitemap1.xml index abffc65..83cdf95 100644 --- a/src/sitemap1.xml +++ b/src/sitemap1.xml @@ -6,4 +6,7 @@ http://git.kyriasis.com + + https://theos.kyriasis.com:6697/ + diff --git a/src/style.css b/src/style.css index 13a5255..07d8ad2 100644 --- a/src/style.css +++ b/src/style.css @@ -53,7 +53,7 @@ header h1 { color: #222; } -#content > p:first-of-type:first-letter { +#welcome-to-theos-kyriasis-com > p:first-of-type:first-letter { float: left; color: #903; font-size: 3rem; @@ -64,31 +64,34 @@ header h1 { font-family: 'Georgia'; } @media (max-width: 767px) { - #content > p:first-of-type:first-letter { + #welcome-to-theos-kyriasis-com > p:first-of-type:first-letter { padding-top: 0.3rem; padding-right: 0.2rem; font-size: 2.7rem; } } -#users h3 { +#user-pages h1 { margin: 0 0 -0.5rem 0; } -#users ul { +#user-pages ul { list-style-type: none; padding: 0 0 0 0.5rem; } - -#users ul li { +#user-pages ul li { padding-bottom: 0.25rem; } -.info-right { +p#last-upd, p#author { font-size: 14px; text-align: right; margin: 0; } +div.section h1 { + font-size: 19px; +} + .botborder { border-bottom: 0.15rem; border-bottom-style: dotted; diff --git a/src/templates/layout.html b/src/templates/layout.html new file mode 100644 index 0000000..22625f5 --- /dev/null +++ b/src/templates/layout.html @@ -0,0 +1,33 @@ + + + + + {{ title }} + + + + +{% block head %}{% endblock %} + + +
+ +

{{ header }}

+
+ +{% block content %}{% endblock %} +
+
+

+ © 2014 + by Johannes Löthberg +

+
+ + diff --git a/src/templates/page.html b/src/templates/page.html new file mode 100644 index 0000000..3c5d29a --- /dev/null +++ b/src/templates/page.html @@ -0,0 +1,12 @@ +{% extends 'layout.html' %} + +{% block content %} + +{% endblock content %} -- cgit v1.2.3-54-g00ecf