diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e356319d --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.asciidoctor +.cache +? + +# Antora files +_public +_archive + +# IDEs - Temporary +.vscode + +# Autogenerated STEM files during PDF generation +stem-*.svg +diagram-*.svg + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..df3e38d6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,47 @@ +variables: + PROJECT_NAME: vshn-application-catalog + MASTER_SEARCH_IMAGE: vshn/embedded-search-engine:1.3 + MAIN_IMAGE: registry.appuio.ch/vshn-application-catalog/vshn-application-catalog-main:latest + SEARCH_IMAGE: registry.appuio.ch/vshn-application-catalog/vshn-application-catalog-search:latest + +stages: + - build + - deploy + +.build-docker: + stage: build + image: docker:stable + services: + - docker:dind + tags: + - dockerbuild + script: + - docker login -u gitlab-ci -p ${APPUIO_REGISTRY_TOKEN} registry.appuio.ch + - docker pull $MAIN_IMAGE || true + - docker build --cache-from $MAIN_IMAGE -t $MAIN_IMAGE -f deployment/main/Dockerfile . + - if [ ${CI_COMMIT_REF_NAME} == "master" ]; then docker push $MAIN_IMAGE; fi + - docker pull $MASTER_SEARCH_IMAGE || true + - docker build --cache-from $SEARCH_IMAGE -t $SEARCH_IMAGE -f deployment/search/Dockerfile . + - if [ ${CI_COMMIT_REF_NAME} == "master" ]; then docker push $SEARCH_IMAGE; fi + +develop:build: + extends: .build-docker + except: + - master + +master:build: + extends: .build-docker + only: + - master + +master:deploy: + stage: deploy + image: docker.io/appuio/oc:v3.11 + environment: + name: production + url: https://application-catalog.vshn.ch + script: + - oc -n ${PROJECT_NAME} apply -f deployment/ + - oc -n ${PROJECT_NAME} rollout latest dc/vshn-application-catalog + only: + - master diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc new file mode 100644 index 00000000..8bda8419 --- /dev/null +++ b/CHANGELOG.adoc @@ -0,0 +1,9 @@ += CHANGELOG + +== Version 1.0 + +* Project created by Tobias Brunner > +* First version + +TODO: Remember to update this file regularly + diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..1e60e3dd --- /dev/null +++ b/Makefile @@ -0,0 +1,67 @@ +pages := $(shell find . -type f -name '*.adoc') +out_dir := ./_public + +docker_cmd ?= docker +docker_opts ?= --rm --tty --user "$$(id -u)" + +antora_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}":/antora vshn/antora:2.3.3 +antora_opts ?= --cache-dir=.cache/antora + +asciidoctor_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}":/documents/ asciidoctor/docker-asciidoctor asciidoctor +asciidoctor_pdf_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}":/documents/ vshn/asciidoctor-pdf:1.5.3 --attribute toclevels=1 +asciidoctor_epub3_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}":/documents/ vshn/asciidoctor-epub3:1.4.1 --attribute toclevels=1 +asciidoctor_opts ?= --destination-dir=$(out_dir) +asciidoctor_kindle_opts ?= --attribute ebook-format=kf8 + +vale_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}"/docs/modules/ROOT/pages:/pages vshn/vale:2.6.1 --minAlertLevel=error /pages +hunspell_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}":/spell vshn/hunspell:1.7.0 -d en,vshn -l -H _public/**/*.html +htmltest_cmd ?= $(docker_cmd) run $(docker_opts) --volume "$${PWD}"/_public:/test wjdp/htmltest:v0.12.0 +preview_cmd ?= $(docker_cmd) run --rm --publish 35729:35729 --publish 2020:2020 --volume "${PWD}":/preview/antora vshn/antora-preview:2.3.4 --antora=docs --style=vshn + +.PHONY: all +all: html pdf +documents: pdf manpage kindle epub + +# This will clean the Antora Artifacts, not the npm artifacts +.PHONY: clean +clean: + rm -rf $(out_dir) '?' .cache + +.PHONY: check +check: + $(vale_cmd) && cd docs && ./check_orphans.py + +.PHONY: syntax +syntax: html + $(hunspell_cmd) + +.PHONY: htmltest +htmltest: html pdf epub kindle manpage + $(htmltest_cmd) + +.PHONY: preview +preview: + $(preview_cmd) + +.PHONY: html pdf manpage epub kindle +html: $(out_dir)/index.html +pdf: $(out_dir)/application-catalog.pdf +manpage: $(out_dir)/application-catalog.1 +epub: $(out_dir)/application-catalog.epub +kindle: $(out_dir)/application-catalog-kf8.epub + +$(out_dir)/index.html: playbook.yml $(pages) + $(antora_cmd) $(antora_opts) $< + +$(out_dir)/%.1: docs/%.adoc $(pages) + $(asciidoctor_cmd) --backend=manpage --attribute doctype=manpage $(asciidoctor_opts) $< + +$(out_dir)/%.pdf: docs/%.adoc $(pages) + $(asciidoctor_pdf_cmd) $(asciidoctor_opts) $< + +$(out_dir)/%.epub: docs/%.adoc $(pages) + $(asciidoctor_epub3_cmd) $(asciidoctor_opts) $< + +$(out_dir)/%-kf8.epub: docs/%.adoc $(pages) + $(asciidoctor_epub3_cmd) $(asciidoctor_kindle_opts) $(asciidoctor_opts) $< + diff --git a/README.adoc b/README.adoc new file mode 100644 index 00000000..b46d09dd --- /dev/null +++ b/README.adoc @@ -0,0 +1,47 @@ += VSHN Application Catalog + +This is an https://antora.org/[Antora] documentation website, available at https://application-catalog.docs.vshn.ch. + +== Basic Antora Setup + +* The documentation pages are stored in the `docs/modules/ROOT/pages` folder. +* Images are stored in the `docs/modules/ROOT/assets/images` folder. +* E-book specific files are located in the `docs/ebook` folder, including the https://www.gimp.org/[Gimp] template of the cover. + +== Different Kinds of Antora Websites + +There are two possible Antora projects: + +* Those including both a `playbook.yml` and `docs/antora.yml` files; and +* Those only including one of them and not the other. + +The file `docs/antora.yml` defines a documentation component including several modules. It specifies the name and entry point of a component. + +On the other hand, the file `playbook.yml` is used to coalesce various documentation components into one website. It specifies the build order and the style to apply to the final website. + +If your project only requires to be documented, but does _not_ take the responsibility for the build process of the documentation, you can remove the `.gitlab-ci.yml`, `Makefile`, and `playbook.yml` files. + +On the other hand, projects in charge of documentation building do not always include documentation themselves; in those cases the `docs` folder can be safely deleted, only leaving the `playbook.yml` file. + +== Usage + +. `make preview` to launch a "live preview" version of the documentation. +. `make html` to create the Antora website in the `_public` subfolder. +. `make pdf epub kindle manpage` to create the corresponding e-books in the `_public` subfolder. +. `make clean` to remove all build products. + +== Docker + +You can create a Docker image out of this project: + +[source,bash] +---- +$ docker build -t application-catalog -f deployment/main/Dockerfile . +$ docker run --rm --detach --publish 8080:8080 application-catalog +---- + +The project includes sample YAML files for a suitable Kubernetes deployment. + +== GitLab + +This project includes a ready-to-use `.gitlab-ci.yml` file for GitLab integration. diff --git a/deployment/deployment.yaml b/deployment/deployment.yaml new file mode 100644 index 00000000..b0f4c6e5 --- /dev/null +++ b/deployment/deployment.yaml @@ -0,0 +1,50 @@ +apiVersion: v1 +kind: DeploymentConfig +metadata: + name: vshn-application-catalog + labels: + app: vshn-application-catalog +spec: + replicas: 1 + template: + metadata: + labels: + app: vshn-application-catalog + spec: + containers: + - name: vshn-application-catalog-main + image: docker-registry.default.svc:5000/vshn-application-catalog/vshn-application-catalog-main:latest + imagePullPolicy: Always + readinessProbe: + httpGet: + path: "/index.html" + port: 8080 + periodSeconds: 60 + livenessProbe: + httpGet: + path: "/index.html" + port: 8080 + periodSeconds: 60 + initialDelaySeconds: 5 + ports: + - name: http + containerPort: 8080 + protocol: TCP + - name: vshn-application-catalog-search + image: docker-registry.default.svc:5000/vshn-application-catalog/vshn-application-catalog-search:latest + imagePullPolicy: Always + readinessProbe: + httpGet: + path: "/search?q=readinessProbe" + port: 3000 + periodSeconds: 60 + livenessProbe: + httpGet: + path: "/search?q=livenessProbe" + port: 3000 + periodSeconds: 60 + initialDelaySeconds: 5 + ports: + - name: http + containerPort: 3000 + protocol: TCP diff --git a/deployment/main/Dockerfile b/deployment/main/Dockerfile new file mode 100644 index 00000000..7f635677 --- /dev/null +++ b/deployment/main/Dockerfile @@ -0,0 +1,50 @@ +# ---------- STEP 1 ---------- +# Build the documentation in web format +FROM vshn/antora:2.3.3 AS antora + +WORKDIR /build +COPY . /build +RUN make html antora_cmd=antora antora_opts=--fetch + +# ---------- STEP 2 ---------- +# Build the documentation in manpage format +FROM asciidoctor/docker-asciidoctor AS asciidoctor + +# The base image uses `/documents` as workdir, but has also declared this a +# volume. This results in files written there to be lost in following steps. +WORKDIR /build +COPY . /build +RUN make manpage asciidoctor_cmd=asciidoctor + +# ---------- STEP 3 ---------- +# Build the documentation in PDF +FROM vshn/asciidoctor-pdf:1.5.3 AS asciidoctor-pdf + +# The base image uses `/documents` as workdir, but has also declared this a +# volume. This results in files written there to be lost in following steps. +WORKDIR /build +COPY . /build +RUN generate-vshn-pdf docs/application-catalog.adoc + +# ---------- STEP 4 ---------- +# Build the documentation in PDF +FROM vshn/asciidoctor-epub3:1.4.1 AS asciidoctor-epub3 + +# The base image uses `/documents` as workdir, but has also declared this a +# volume. This results in files written there to be lost in following steps. +WORKDIR /build +COPY . /build +RUN generate-vshn-epub3 docs/application-catalog.adoc --attribute !ebook-validate +RUN generate-vshn-epub3 docs/application-catalog.adoc --attribute ebook-format=kf8 --attribute !ebook-validate --out-file=docs/application-catalog.mobi + +# ---------- STEP 5 ---------- +# Docker image only containing nginx and the freshly built documentation +FROM vshn/nginx:1.18.0 + +# Finally, copy the contents of the documentation to be served +COPY --from=antora /build/_public /usr/share/nginx/html +COPY --from=asciidoctor ["/build/_public/application-catalog.1", "/usr/share/nginx/html/"] +COPY --from=asciidoctor-pdf ["/build/docs/application-catalog.pdf", "/usr/share/nginx/html/"] +COPY --from=asciidoctor-epub3 ["/build/docs/application-catalog.epub", "/usr/share/nginx/html/"] +COPY --from=asciidoctor-epub3 ["/build/docs/application-catalog.mobi", "/usr/share/nginx/html/"] + diff --git a/deployment/route.yaml b/deployment/route.yaml new file mode 100644 index 00000000..f5a89f1e --- /dev/null +++ b/deployment/route.yaml @@ -0,0 +1,18 @@ +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: vshn-application-catalog + labels: + app: vshn-application-catalog + annotations: + kubernetes.io/tls-acme: "true" +spec: + host: application-catalog.appuioapp.ch + port: + targetPort: http + tls: + insecureEdgeTerminationPolicy: Redirect + termination: edge + to: + kind: Service + name: vshn-application-catalog diff --git a/deployment/search/Dockerfile b/deployment/search/Dockerfile new file mode 100644 index 00000000..b692c133 --- /dev/null +++ b/deployment/search/Dockerfile @@ -0,0 +1,20 @@ +# ---------- STEP 1 ---------- +# Index the project files +FROM vshn/antora-indexer-cli:1.6 as indexer + +WORKDIR /build +COPY . /build + +RUN \ + mkdir /index && \ + antora-indexer --antora /build/docs --write files --output /index/files.json && \ + antora-indexer --antora /build/docs --write index --output /index/lunr.json + +# ---------- STEP 2 ---------- +# Docker image only containing the search engine and the freshly built index +FROM vshn/embedded-search-engine:1.3 + +# Copy the index of the search engine +COPY --from=indexer /index/files.json /site/index/files.json +COPY --from=indexer /index/lunr.json /site/index/lunr.json + diff --git a/deployment/service.yaml b/deployment/service.yaml new file mode 100644 index 00000000..4fc841b5 --- /dev/null +++ b/deployment/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: vshn-application-catalog + labels: + app: vshn-application-catalog +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: http + selector: + app: vshn-application-catalog + type: ClusterIP diff --git a/docs/antora.yml b/docs/antora.yml new file mode 100644 index 00000000..89b764bb --- /dev/null +++ b/docs/antora.yml @@ -0,0 +1,6 @@ +name: ac +title: VSHN Application Catalog +version: master +start_page: ROOT:index.adoc +nav: +- modules/ROOT/nav.adoc diff --git a/docs/application-catalog.adoc b/docs/application-catalog.adoc new file mode 100644 index 00000000..ab508b0a --- /dev/null +++ b/docs/application-catalog.adoc @@ -0,0 +1,93 @@ +// Settings for manpage +ifdef::backend-manpage[] += vshn-application-catalog(1) +:manname: application-catalog +:mantitle: VSHN Application Catalog +:leveloffset: +1 +endif::[] + +:author: VSHN AG +:revdate: {docdate} +:revnumber: 1.0 +:email: tobias.brunner@vshn.ch +:copyright: CC-BY-SA 3.0 +:doctitle: VSHN Application Catalog +:producer: VSHN AG +:creator: Tobias Brunner +:description: VSHN Application Catalog +:keywords: VSHN, application, catalog +:front-cover-image: ebook/images/cover.png +:lang: en +:imagesdir: {docdir}/modules/ROOT/assets/images + + +// Settings for PDF +ifdef::backend-pdf[] +// :media: prepress +:title-logo-image: image:{docdir}/ebook/images/logo.png[Logo,100,100] +:leveloffset: +1 +endif::[] + +// Settings for EPUB3 +ifdef::backend-epub3[] +:imagesdir: modules/ROOT/assets/images +:imagesoutdir: {docdir}/modules/ROOT/assets/images +:leveloffset: +1 +endif::[] + +// Settings for Kindle (inherits values from EPUB3) +ifdef::ebook-format-kf8[] +endif::[] + + + +// Include chapters: always leave blank spaces between the includes! +[preface] +include::modules/ROOT/pages/index.adoc[] + + + +// Part header +ifdef::backend-pdf[] +// Parts must have level +:leveloffset: -1 + += Part 1: First Part + +image::vshn_logo.png[] + +[partintro] +-- +This is a longer description of this part +-- + +:leveloffset: +1 +endif::[] + +include::modules/ROOT/pages/second.adoc[] + +include::modules/ROOT/pages/diagram.adoc[] + +include::modules/ROOT/pages/math.adoc[] + +include::modules/ROOT/pages/source.adoc[] + + + +// Special sections at the end +[appendix] +include::../CHANGELOG.adoc[] + +[appendix] +include::../README.adoc[] + +// Copyright information and other details +[colophon] +include::modules/ROOT/pages/colophon.adoc[] + + + +ifdef::backend-pdf[] +[index] += Index +endif::[] diff --git a/docs/ebook/images/cover.png b/docs/ebook/images/cover.png new file mode 100644 index 00000000..aec1a363 Binary files /dev/null and b/docs/ebook/images/cover.png differ diff --git a/docs/ebook/images/cover.xcf b/docs/ebook/images/cover.xcf new file mode 100644 index 00000000..9dfa2e68 Binary files /dev/null and b/docs/ebook/images/cover.xcf differ diff --git a/docs/ebook/images/logo.png b/docs/ebook/images/logo.png new file mode 100644 index 00000000..328dcb49 Binary files /dev/null and b/docs/ebook/images/logo.png differ diff --git a/docs/modules/ROOT/assets/images/appuio.svg b/docs/modules/ROOT/assets/images/appuio.svg new file mode 100644 index 00000000..788d6a04 --- /dev/null +++ b/docs/modules/ROOT/assets/images/appuio.svg @@ -0,0 +1,61 @@ + + + + Logo Appuio SCP-Prod RGB + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/appuio_title.svg b/docs/modules/ROOT/assets/images/appuio_title.svg new file mode 100644 index 00000000..7fce1362 --- /dev/null +++ b/docs/modules/ROOT/assets/images/appuio_title.svg @@ -0,0 +1,3793 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + landscape_compact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/aws.svg b/docs/modules/ROOT/assets/images/aws.svg new file mode 100644 index 00000000..cd27e724 --- /dev/null +++ b/docs/modules/ROOT/assets/images/aws.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/azure.svg b/docs/modules/ROOT/assets/images/azure.svg new file mode 100644 index 00000000..cd96a7d3 --- /dev/null +++ b/docs/modules/ROOT/assets/images/azure.svg @@ -0,0 +1,72 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/chrome.svg b/docs/modules/ROOT/assets/images/chrome.svg new file mode 100644 index 00000000..fc0b3398 --- /dev/null +++ b/docs/modules/ROOT/assets/images/chrome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/cloudflare.svg b/docs/modules/ROOT/assets/images/cloudflare.svg new file mode 100644 index 00000000..fe65b365 --- /dev/null +++ b/docs/modules/ROOT/assets/images/cloudflare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/cncf.svg b/docs/modules/ROOT/assets/images/cncf.svg new file mode 100644 index 00000000..344c6b31 --- /dev/null +++ b/docs/modules/ROOT/assets/images/cncf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/cri-o.svg b/docs/modules/ROOT/assets/images/cri-o.svg new file mode 100644 index 00000000..ac39a7b2 --- /dev/null +++ b/docs/modules/ROOT/assets/images/cri-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/crossplane.svg b/docs/modules/ROOT/assets/images/crossplane.svg new file mode 100644 index 00000000..00e83068 --- /dev/null +++ b/docs/modules/ROOT/assets/images/crossplane.svg @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/digital-ocean.svg b/docs/modules/ROOT/assets/images/digital-ocean.svg new file mode 100644 index 00000000..a27ae74d --- /dev/null +++ b/docs/modules/ROOT/assets/images/digital-ocean.svg @@ -0,0 +1 @@ +digital_ocean_logo \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/docker-hub.svg b/docs/modules/ROOT/assets/images/docker-hub.svg new file mode 100644 index 00000000..05a53c7c --- /dev/null +++ b/docs/modules/ROOT/assets/images/docker-hub.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/docker.svg b/docs/modules/ROOT/assets/images/docker.svg new file mode 100644 index 00000000..54ef7b7d --- /dev/null +++ b/docs/modules/ROOT/assets/images/docker.svg @@ -0,0 +1,121 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/dropbox.svg b/docs/modules/ROOT/assets/images/dropbox.svg new file mode 100644 index 00000000..d9397f87 --- /dev/null +++ b/docs/modules/ROOT/assets/images/dropbox.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/exoscale.svg b/docs/modules/ROOT/assets/images/exoscale.svg new file mode 100644 index 00000000..bc89b3e9 --- /dev/null +++ b/docs/modules/ROOT/assets/images/exoscale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/git.svg b/docs/modules/ROOT/assets/images/git.svg new file mode 100644 index 00000000..b9f8248f --- /dev/null +++ b/docs/modules/ROOT/assets/images/git.svg @@ -0,0 +1,33 @@ + +image/svg+xml diff --git a/docs/modules/ROOT/assets/images/github.svg b/docs/modules/ROOT/assets/images/github.svg new file mode 100644 index 00000000..50884bd8 --- /dev/null +++ b/docs/modules/ROOT/assets/images/github.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/gitlab.svg b/docs/modules/ROOT/assets/images/gitlab.svg new file mode 100644 index 00000000..a96a0e8a --- /dev/null +++ b/docs/modules/ROOT/assets/images/gitlab.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + H: 2.5 x + 1/2 x + 1x + 1x + + 1x + + 1x + + diff --git a/docs/modules/ROOT/assets/images/gmail.svg b/docs/modules/ROOT/assets/images/gmail.svg new file mode 100644 index 00000000..005ff691 --- /dev/null +++ b/docs/modules/ROOT/assets/images/gmail.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/golang.svg b/docs/modules/ROOT/assets/images/golang.svg new file mode 100644 index 00000000..43ce1816 --- /dev/null +++ b/docs/modules/ROOT/assets/images/golang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/google-cloud.svg b/docs/modules/ROOT/assets/images/google-cloud.svg new file mode 100644 index 00000000..18b0e483 --- /dev/null +++ b/docs/modules/ROOT/assets/images/google-cloud.svg @@ -0,0 +1,96 @@ + + + + + + + + + + +]> + + + + + + + + +Cloud_Logo_Nav + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/google.svg b/docs/modules/ROOT/assets/images/google.svg new file mode 100644 index 00000000..3790851d --- /dev/null +++ b/docs/modules/ROOT/assets/images/google.svg @@ -0,0 +1,2 @@ + + diff --git a/docs/modules/ROOT/assets/images/heroku.svg b/docs/modules/ROOT/assets/images/heroku.svg new file mode 100644 index 00000000..26cca967 --- /dev/null +++ b/docs/modules/ROOT/assets/images/heroku.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/hetzner.svg b/docs/modules/ROOT/assets/images/hetzner.svg new file mode 100644 index 00000000..f5812ee2 --- /dev/null +++ b/docs/modules/ROOT/assets/images/hetzner.svg @@ -0,0 +1 @@ +Element 1 \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/ibm.svg b/docs/modules/ROOT/assets/images/ibm.svg new file mode 100644 index 00000000..ed09cde6 --- /dev/null +++ b/docs/modules/ROOT/assets/images/ibm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/jelastic.svg b/docs/modules/ROOT/assets/images/jelastic.svg new file mode 100644 index 00000000..7a92e1fc --- /dev/null +++ b/docs/modules/ROOT/assets/images/jelastic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/kubernetes.svg b/docs/modules/ROOT/assets/images/kubernetes.svg new file mode 100644 index 00000000..bedd3b88 --- /dev/null +++ b/docs/modules/ROOT/assets/images/kubernetes.svg @@ -0,0 +1,84 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/mariadb.svg b/docs/modules/ROOT/assets/images/mariadb.svg new file mode 100644 index 00000000..daba7cf7 --- /dev/null +++ b/docs/modules/ROOT/assets/images/mariadb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/microsoft.svg b/docs/modules/ROOT/assets/images/microsoft.svg new file mode 100644 index 00000000..2a40d043 --- /dev/null +++ b/docs/modules/ROOT/assets/images/microsoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/minio.svg b/docs/modules/ROOT/assets/images/minio.svg new file mode 100644 index 00000000..696d9705 --- /dev/null +++ b/docs/modules/ROOT/assets/images/minio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/mysql.svg b/docs/modules/ROOT/assets/images/mysql.svg new file mode 100644 index 00000000..7e9f97de --- /dev/null +++ b/docs/modules/ROOT/assets/images/mysql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/nginx.svg b/docs/modules/ROOT/assets/images/nginx.svg new file mode 100644 index 00000000..d59247f9 --- /dev/null +++ b/docs/modules/ROOT/assets/images/nginx.svg @@ -0,0 +1,185 @@ + +image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/office-365.svg b/docs/modules/ROOT/assets/images/office-365.svg new file mode 100644 index 00000000..8cb6da7f --- /dev/null +++ b/docs/modules/ROOT/assets/images/office-365.svg @@ -0,0 +1,87 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/openshift.svg b/docs/modules/ROOT/assets/images/openshift.svg new file mode 100644 index 00000000..7265f229 --- /dev/null +++ b/docs/modules/ROOT/assets/images/openshift.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/pivotal.svg b/docs/modules/ROOT/assets/images/pivotal.svg new file mode 100644 index 00000000..3a14e86a --- /dev/null +++ b/docs/modules/ROOT/assets/images/pivotal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/podman.svg b/docs/modules/ROOT/assets/images/podman.svg new file mode 100644 index 00000000..135624a4 --- /dev/null +++ b/docs/modules/ROOT/assets/images/podman.svg @@ -0,0 +1,531 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/modules/ROOT/assets/images/prometheus.svg b/docs/modules/ROOT/assets/images/prometheus.svg new file mode 100644 index 00000000..5c51f66d --- /dev/null +++ b/docs/modules/ROOT/assets/images/prometheus.svg @@ -0,0 +1,50 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/puzzle-itc.svg b/docs/modules/ROOT/assets/images/puzzle-itc.svg new file mode 100644 index 00000000..ac1ebf58 --- /dev/null +++ b/docs/modules/ROOT/assets/images/puzzle-itc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/python.svg b/docs/modules/ROOT/assets/images/python.svg new file mode 100644 index 00000000..c775d1ca --- /dev/null +++ b/docs/modules/ROOT/assets/images/python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/rancher.svg b/docs/modules/ROOT/assets/images/rancher.svg new file mode 100644 index 00000000..7096925e --- /dev/null +++ b/docs/modules/ROOT/assets/images/rancher.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/red-hat.svg b/docs/modules/ROOT/assets/images/red-hat.svg new file mode 100644 index 00000000..404f9c6f --- /dev/null +++ b/docs/modules/ROOT/assets/images/red-hat.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/salesforce.svg b/docs/modules/ROOT/assets/images/salesforce.svg new file mode 100644 index 00000000..343c230b --- /dev/null +++ b/docs/modules/ROOT/assets/images/salesforce.svg @@ -0,0 +1,20 @@ + + + + +logo-salesforce +Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/slack.svg b/docs/modules/ROOT/assets/images/slack.svg new file mode 100644 index 00000000..4bbb277f --- /dev/null +++ b/docs/modules/ROOT/assets/images/slack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/switzerland.svg b/docs/modules/ROOT/assets/images/switzerland.svg new file mode 100644 index 00000000..2ca497b4 --- /dev/null +++ b/docs/modules/ROOT/assets/images/switzerland.svg @@ -0,0 +1,6 @@ + + +Coat of Arms of Switzerland + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/vshn.svg b/docs/modules/ROOT/assets/images/vshn.svg new file mode 100644 index 00000000..caa2b61c --- /dev/null +++ b/docs/modules/ROOT/assets/images/vshn.svg @@ -0,0 +1,84 @@ + + + + .st0{fill:#4081CB;} + .st1{fill:#295283;} + + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/assets/images/vshn_logo.png b/docs/modules/ROOT/assets/images/vshn_logo.png new file mode 100644 index 00000000..ea4ad596 Binary files /dev/null and b/docs/modules/ROOT/assets/images/vshn_logo.png differ diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc new file mode 100644 index 00000000..a362243e --- /dev/null +++ b/docs/modules/ROOT/nav.adoc @@ -0,0 +1,16 @@ +* xref:index.adoc[Home] + +.Pages +* xref:second.adoc[Second Page] +* xref:diagram.adoc[Diagram Sample] +* xref:math.adoc[Math Equations] +* xref:source.adoc[Source Code] + +.About this documentation +* xref:colophon.adoc[Colophon] + +.Downloads +* link:/application-catalog.pdf[PDF] +* link:/application-catalog.epub[EPUB] +* link:/application-catalog.mobi[Kindle] +* link:/application-catalog.1[man page] diff --git a/docs/modules/ROOT/pages/colophon.adoc b/docs/modules/ROOT/pages/colophon.adoc new file mode 100644 index 00000000..d3ccc637 --- /dev/null +++ b/docs/modules/ROOT/pages/colophon.adoc @@ -0,0 +1,9 @@ += Colophon + +image::vshn_logo.png[] + +Copyright © 2014-{localyear} https://vshn.ch/[VSHN AG]–All Rights Reserved. + +Published in Switzerland on {localdatetime}. + +Created with https://antora.org/[Antora] and https://asciidoctor.org/[Asciidoctor]. diff --git a/docs/modules/ROOT/pages/diagram.adoc b/docs/modules/ROOT/pages/diagram.adoc new file mode 100644 index 00000000..c84cf1a2 --- /dev/null +++ b/docs/modules/ROOT/pages/diagram.adoc @@ -0,0 +1,34 @@ += Diagrams + +This example shows how to embed a text-based ((diagram)) in your documentation. + +You can use all the formats supported in our Kroki instance; more information at https://vshn-kroki.appuioapp.ch and https://kroki.io. + +[ditaa, diagram-sample, svg] +.... + +-------------+ + | | + | Exponential | + | | + +-------------+ + | + lambda | + v ++-------------+ +-------------+ +-------------+ +| | tau | | lambda | | +| Lognormal |---------->| Gamma |<----------| Poisson | +| | | |---+ | | ++-------------+ +-------------+ | +-------------+ + | ^ ^ | beta + | tau | | | + | tau | +---------+ + | +-------------+ + +------------------>| | + | Normal | + | |----+ + +-------------+ | + ^ | mu + | | + +-------+ +.... + diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc new file mode 100644 index 00000000..78a22c3a --- /dev/null +++ b/docs/modules/ROOT/pages/index.adoc @@ -0,0 +1,77 @@ += VSHN Application Catalog + +// This is a single line comment! + +//// +This is a multiline comment! +This is a multiline comment! +This is a multiline comment! +//// + + +This is the ((first page)) of this new ((documentation)) website made with https://antora.org/[Antora]. + +== Images + +// You can add images with the image:: statement: + +image::vshn_logo.png[] + +== Various SVG Logos + +// TODO: Delete unused asset files from the final documentation + +More in the `docs/modules/ROOT/assets/images` folder: + +image:azure.svg[width=150] +image:google-cloud.svg[width=150] +image:slack.svg[width=150] + +image:aws.svg[width=150] +image:red-hat.svg[width=150] +image:docker.svg[width=150] + +== Font Awesome Icons + +Font Awesome icons: icon:tags[] icon:heart[size=2x,role="red"] + +Download VSHN handbook: icon:download[link="https://handbook.vshn.ch/handbook.pdf"] + +More icons here: https://fontawesome.com/icons?d=gallery&m=free + +== Admonition Blocks + +// Admonition blocks are useful to call for attention + +TIP: This is a tip + +NOTE: This is a note + +WARNING: This is a warning + +CAUTION: You have been warned + +IMPORTANT: This is very important + +== Bullet Points + +// Use the star symbol, not the dash (like in Markdown!) + +* Foo +* Bar +* World + +== Numbered List + +// No need to write down the numbers, just use dots + +. First +. Second +. First + +== Definition List + +// Useful when explaining technical terms + +Thing:: A thing is defined here +Another Thing:: Another thing is defined here diff --git a/docs/modules/ROOT/pages/math.adoc b/docs/modules/ROOT/pages/math.adoc new file mode 100644 index 00000000..b0b20d51 --- /dev/null +++ b/docs/modules/ROOT/pages/math.adoc @@ -0,0 +1,22 @@ += Math Formulas + +This page shows how to integrate ((math)) content in your documentation. + +Using standard latexmath:[\LaTeX] syntax, as a ((block)): + +// Use the statements below to deactivate `vale` temporarily +ifndef::backend-pdf[] +pass:[] +endif::[] + +[stem] +++++ +\sqrt{37} = \sqrt{\frac{73^2-1}{12^2}} \approx \frac{73}{12} (1 - \frac{1}{2\cdot73^2}) +++++ + +Another one, ((inline)): stem:[\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}] + +// Use the statements below to re-enable `vale` validation for the rest of the text +ifndef::backend-pdf[] +pass:[] +endif::[] diff --git a/docs/modules/ROOT/pages/second.adoc b/docs/modules/ROOT/pages/second.adoc new file mode 100644 index 00000000..63d0df6d --- /dev/null +++ b/docs/modules/ROOT/pages/second.adoc @@ -0,0 +1,13 @@ += Second Page + +This is the second page. Words and phrases surrounded with `((` and `))` will be added to the PDF index. They are ignored in all other formats. + +Quis nulla est enim mollit pariatur pariatur minim sit minim labore proident velit aute. Consequat enim qui mollit sunt laboris tempor. Id sit ut anim ea aute sunt et ad. + +Irure adipisicing aliqua aute veniam cillum reprehenderit. Cupidatat anim veniam quis est non cupidatat et velit et eu consectetur aliquip adipisicing. Fugiat ((pariatur)) sunt ea duis commodo est sint sint ipsum aute in minim ad consequat. Aliqua duis aliquip occaecat consequat minim velit eu irure eu nisi non excepteur. Deserunt nulla sunt veniam nisi officia officia ullamco commodo anim et reprehenderit irure cupidatat. + +Reprehenderit anim mollit eiusmod nulla nisi amet fugiat ullamco veniam aliqua voluptate. Nisi qui ad amet do veniam ipsum. Laborum cillum labore irure veniam deserunt cupidatat ex ((reprehenderit)) sint do. Laboris culpa eiusmod ex amet tempor aute proident non aute cupidatat reprehenderit qui. Elit ex aliqua labore laboris reprehenderit consectetur aliqua ullamco excepteur. Lorem est non nulla voluptate pariatur officia adipisicing. + +Sit dolore magna exercitation ipsum nulla sint aliqua veniam do officia. Ad esse voluptate culpa laborum esse deserunt sit. Ex velit Lorem duis deserunt. + +Ea do sunt exercitation laboris Lorem et nostrud occaecat nulla. Aliquip esse eiusmod eu sint irure minim minim. Qui ((ullamco)) ea exercitation excepteur Lorem ipsum reprehenderit labore adipisicing irure cupidatat ex amet dolore. Exercitation minim aliqua ex adipisicing ad occaecat in. diff --git a/docs/modules/ROOT/pages/source.adoc b/docs/modules/ROOT/pages/source.adoc new file mode 100644 index 00000000..57dfa45e --- /dev/null +++ b/docs/modules/ROOT/pages/source.adoc @@ -0,0 +1,31 @@ += Source Code + +This page demonstrates the insertion of source code in a page. + +// You can use callouts to give context to certain lines of code + +[source,go] +---- +package main + +import ( + "fyne.io/fyne/app" + "fyne.io/fyne/widget" +) + +func main() { + a := app.New() // <1> + w := a.NewWindow("Hello") + w.SetContent(widget.NewVBox( + widget.NewLabel("Hello Fyne!"), + widget.NewButton("Quit", func() { // <2> + a.Quit() + }), + )) + w.ShowAndRun() // <3> +} +---- + +<1> Birth of a new app +<2> The magic of lambdas +<3> Now you can see it diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 00000000..44eef4fd --- /dev/null +++ b/playbook.yml @@ -0,0 +1,35 @@ +site: + title: VSHN Application Catalog + url: https://application-catalog.docs.vshn.ch + start_page: ac::index.adoc + keys: + google_analytics: '' +content: + sources: + - url: . # The current folder is a git repo + branches: HEAD # "HEAD" uses whichever branch is currently checked out + start_path: docs + edit_url: 'https://git.vshn.net/vshn/application-catalog/edit/develop/{path}' +ui: + bundle: + + url: https://github.com/vshn/antora-ui-default/releases/download/1.7/ui-bundle.zip + + snapshot: false +asciidoc: + attributes: + page-pagination: '' + hide-uri-scheme: '' + experimental: '' + stem: '' + icons: font + kroki-server-url: https://vshn-kroki.appuioapp.ch + kroki-fetch-diagram: '' + extensions: + - asciidoctor-kroki +output: + destinations: + - provider: fs + path: ./_public + clean: true +