Initial implementation
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.html
|
21
Makefile
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Stuff for make to work make magic.
|
||||
.DEFAULT: all
|
||||
.SUFFIXES: .part .html
|
||||
.PHONY: all
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
|
||||
PAGES = index.html
|
||||
BLOBS = assets/
|
||||
|
||||
all: $(PAGES)
|
||||
|
||||
clean:
|
||||
rm -rf $(PAGES)
|
||||
|
||||
deploy: $(PAGES) $(BLOBS)
|
||||
./deploy.sh $^
|
||||
|
||||
index.html: FORCE
|
||||
./index.html.sh > $@
|
||||
|
||||
FORCE:
|
9
README.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
# e-Durable Tools
|
||||
|
||||
Convenience webpage to quickly access e-Durable services. Static website
|
||||
generated with [Nyll](https://git.sr.ht/~sparrowhawk/nyll). Depends on:
|
||||
|
||||
* `make`
|
||||
* `sh`
|
||||
|
||||
See `Makefile` for usage.
|
7
assets/bootstrap-grid.min.css
vendored
Normal file
8
assets/bootstrap-reboot.min.css
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2020 The Bootstrap Authors
|
||||
* Copyright 2011-2020 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
BIN
assets/edurable-logo.png
Normal file
After Width: | Height: | Size: 25 KiB |
44
assets/main.css
Normal file
|
@ -0,0 +1,44 @@
|
|||
body {
|
||||
width: 900px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#header {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#header-logo {
|
||||
width: 500px;;
|
||||
margin: auto;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.service-logo {
|
||||
max-width: 100%;
|
||||
max-height: 50px;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.vertical-align-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.horizontal-align-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
9
deploy.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
DESTINATION=root@static.recycled.cloud:/var/www/
|
||||
WEBSITE=tools.e-durable.ch
|
||||
|
||||
sftp -b - "$DESTINATION" <<- EOF
|
||||
-rm $WEBSITE/*
|
||||
$(for f in "$@"; do echo "put -R $f $WEBSITE/"; done)
|
||||
EOF
|
47
index.html.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
|
||||
cat << EOF
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>e-Durable Tooling</title>
|
||||
<link rel="stylesheet" href="assets/bootstrap-reboot.min.css">
|
||||
<link rel="stylesheet" href="assets/bootstrap-grid.min.css">
|
||||
<link rel="stylesheet" href="assets/main.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<img id="header-logo" src="assets/edurable-logo.png" />
|
||||
|
||||
<p>
|
||||
Convenience webpage to quickly access e-Durable services. Source on <a
|
||||
href="https://code.recycled.cloud/e-Durable/tools.e-durable.ch">code.recycled.cloud</a>.
|
||||
</p>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="container">
|
||||
EOF
|
||||
|
||||
for entry in services/*; do
|
||||
cat <<- EOF
|
||||
<div class="row">
|
||||
<div class="col-3 horizontal-align-center vertical-align-center">
|
||||
<img src="$entry/logo.png" class="service-logo" />
|
||||
</div>
|
||||
<div class="col-3 vertical-align-center">
|
||||
<a href="$(cat "$entry/url")">$(basename "$entry")</a>
|
||||
</div>
|
||||
<div class="col-6 vertical-align-center">
|
||||
$(cat "$entry/description")
|
||||
</div>
|
||||
</div>
|
||||
EOF
|
||||
done
|
||||
|
||||
cat << EOF
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
1
services/code.recycled.cloud/description
Normal file
|
@ -0,0 +1 @@
|
|||
Our very own software forge: git repositories and simple issue tracking.
|
BIN
services/code.recycled.cloud/logo.png
Normal file
After Width: | Height: | Size: 38 KiB |
1
services/code.recycled.cloud/url
Normal file
|
@ -0,0 +1 @@
|
|||
https://code.recycled.cloud
|
1
services/files.recycled.cloud/description
Normal file
|
@ -0,0 +1 @@
|
|||
File sharing, syncing and online edition for e-Durable folk.
|
BIN
services/files.recycled.cloud/logo.png
Normal file
After Width: | Height: | Size: 38 KiB |
1
services/files.recycled.cloud/url
Normal file
|
@ -0,0 +1 @@
|
|||
https://files.recycled.cloud
|
1
services/lists.recycled.cloud/description
Normal file
|
@ -0,0 +1 @@
|
|||
Mailing lists infrastructure - specifying every single recipient is very error prone... and a pain! This service also keeps archives of conversations.
|
BIN
services/lists.recycled.cloud/logo.png
Normal file
After Width: | Height: | Size: 32 KiB |
1
services/lists.recycled.cloud/url
Normal file
|
@ -0,0 +1 @@
|
|||
https://lists.recycled.cloud
|
1
services/odoo.e-durable.ch/description
Normal file
|
@ -0,0 +1 @@
|
|||
Our very own ERP (Enterprise Resource Planning) platform. You'll find services ranging from time tracking to sales management.
|
BIN
services/odoo.e-durable.ch/logo.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
1
services/odoo.e-durable.ch/url
Normal file
|
@ -0,0 +1 @@
|
|||
https://odoo.e-durable.ch
|
1
services/talk.recycled.cloud/description
Normal file
|
@ -0,0 +1 @@
|
|||
A dedicated Jitsi instance for ourselves and our friends. It's a simple way to host audio and video calls - with a few extra features such as screen sharing and text chat.
|
BIN
services/talk.recycled.cloud/logo.png
Normal file
After Width: | Height: | Size: 5 KiB |
8
services/talk.recycled.cloud/logo.svg
Normal file
After Width: | Height: | Size: 12 KiB |
1
services/talk.recycled.cloud/url
Normal file
|
@ -0,0 +1 @@
|
|||
https://talk.recycled.cloud
|
1
services/wiki.e-durable.ch/description
Normal file
|
@ -0,0 +1 @@
|
|||
Internal documentation and procedures - you can't go around this one!
|
BIN
services/wiki.e-durable.ch/logo.png
Normal file
After Width: | Height: | Size: 200 KiB |
1
services/wiki.e-durable.ch/logo.svg
Normal file
After Width: | Height: | Size: 45 KiB |