Dateiverwaltung für die WebBox
ulrich
2021-01-24 644d91d296d1c55faac1e0aa47acf2142837647f
Hilfe-Link angepasst und Hilfe aktualisiert
34 files deleted
11 files added
1 files modified
3840 ■■■■■ changed files
web/META-INF/daten/www/dok/wbx/App.htmi 25 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bedienung.htmi 172 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Betrieb-Docker.htmi 29 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Betrieb.htmi 34 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/apps.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/benutzerverwaltung.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/dateiverwaltung.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/db_neu.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/dbcon.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/dokeditor.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/nutzer-neu.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/rollen.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/speichern-unter.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/startseite.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/texteditor.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Bilder/verwaltung.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/Installation.htmi 24 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/asciidoctor.css 427 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bedienung.html 496 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/File-Server-icon.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/dateiverwaltung.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/dokeditor.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/speichern-unter.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/texteditor.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/wbx-3.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/wbx-4.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/bilder/wbx-firefox.png patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/einrichtung.html 737 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/js-info.htmi 5 ●●●●● patch | view | raw | blame | history
web/proto/flex-versuch-3.html 254 ●●●●● patch | view | raw | blame | history
web/proto/flex-versuch-up.html 256 ●●●●● patch | view | raw | blame | history
web/proto/index.html 112 ●●●●● patch | view | raw | blame | history
web/proto/liste4.html 199 ●●●●● patch | view | raw | blame | history
web/proto/stile.css 58 ●●●●● patch | view | raw | blame | history
web/proto/ui.js 5 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/flex-versuch-2.css 17 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/flex-versuch-2.html 53 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/flex-versuch.css 8 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/flex-versuch.html 55 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/index_alt.html 142 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/liste.html 203 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/liste2.html 113 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/liste3.css 40 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/liste3.html 72 ●●●●● patch | view | raw | blame | history
web/proto/verworfen/liste5.html 302 ●●●●● patch | view | raw | blame | history
web/ui2/js/app.js 2 ●●● patch | view | raw | blame | history
web/META-INF/daten/www/dok/wbx/App.htmi
File was deleted
web/META-INF/daten/www/dok/wbx/Bedienung.htmi
File was deleted
web/META-INF/daten/www/dok/wbx/Betrieb-Docker.htmi
File was deleted
web/META-INF/daten/www/dok/wbx/Betrieb.htmi
File was deleted
web/META-INF/daten/www/dok/wbx/Bilder/apps.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/benutzerverwaltung.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/dateiverwaltung.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/db_neu.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/dbcon.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/dokeditor.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/nutzer-neu.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/rollen.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/speichern-unter.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/startseite.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/texteditor.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Bilder/verwaltung.png
Binary files differ
web/META-INF/daten/www/dok/wbx/Installation.htmi
File was deleted
web/META-INF/daten/www/dok/wbx/asciidoctor.css
New file
@@ -0,0 +1,427 @@
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite::before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
:not(pre)>code.nobreak{word-wrap:normal}
:not(pre)>code.nowrap{white-space:nowrap}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
table.tableblock{max-width:100%;border-collapse:separate}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot,table.frame-ends{border-width:1px 0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
web/META-INF/daten/www/dok/wbx/bedienung.html
New file
@@ -0,0 +1,496 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Ulrich Hilger">
<title>WebBox Bedienung</title>
<link rel="stylesheet" href="asciidoctor.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article toc2 toc-left">
<div id="header">
<h1>WebBox Bedienung</h1>
<div class="details">
<span id="author" class="author">Ulrich Hilger</span><br>
<span id="email" class="email"><a href="mailto:ulrich.hilger@web.de">ulrich.hilger@web.de</a></span><br>
<span id="revnumber">version 3.1,</span>
<span id="revdate">24. Januar 2021</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Inhalt</div>
<ul class="sectlevel1">
<li><a href="#wbx-ueber">1. Über die WebBox</a>
<ul class="sectlevel2">
<li><a href="#wbx-abgrenzung">1.1. Zielgruppe</a></li>
<li><a href="#wbx-lizenz">1.2. Lizenz</a></li>
</ul>
</li>
<li><a href="#wbx-bedienung">2. Bedienung</a>
<ul class="sectlevel2">
<li><a href="#wbx-aufrufen">2.1. WebBox aufrufen</a></li>
<li><a href="#wbx-file-cms">2.2. Dateien bearbeiten</a></li>
<li><a href="#_texteditor">2.3. Texteditor</a></li>
<li><a href="#_speichern">2.4. Speichern</a></li>
<li><a href="#wbx-dok-edit">2.5. Textdokumente bearbeiten</a></li>
<li><a href="#wbx-ordner-verwalten">2.6. Ordner</a></li>
<li><a href="#wbx-neuer-reiter">2.7. Neuer Reiter</a></li>
<li><a href="#wbx-packen">2.8. Ordner packen</a></li>
<li><a href="#wbx-entpacken">2.9. Archiv entpacken</a></li>
<li><a href="#_sichtbarkeit_von_inhalten">2.10. Sichtbarkeit von Inhalten</a></li>
<li><a href="#wbx-inhalte-ansehen">2.11. Inhalte ansehen</a></li>
<li><a href="#_inhalte_hochladen">2.12. Inhalte hochladen</a></li>
<li><a href="#_bilder">2.13. Bilder</a></li>
<li><a href="#wbx-webdav">2.14. WebDAV verwenden</a></li>
<li><a href="#wbx-prod">2.15. Produktive Nutzung</a></li>
</ul>
</li>
<li><a href="#_dokumenthistorie">3. Dokumenthistorie</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="imageblock">
<div class="content">
<img src="bilder/File-Server-icon.png" alt="WebBox">
</div>
</div>
<div class="paragraph">
<p>Das Internet ist als Verbindung von Netzknoten konzipiert, die Inhalte bereit stellen. Die WebBox etabliert einen solchen Netzknoten als persönliche Instanz eines Nutzers und ermöglicht es, eigene Inhalte über das Netz zu verwalten und zu teilen.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-ueber"><a class="anchor" href="#wbx-ueber"></a>1. Über die WebBox</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Mit der WebBox können Inhalte so verwaltet werden, wie es Nutzer vom Desktop handelsüblicher Betriebssyteme her kennen. Zur Bedienung wird nicht mehr als ein Browser benötigt. Von überallher können Texte und Dokumente bearbeitet, Bilder, Musik oder Videos organisiert, kopiert, verschoben oder herauf- und heruntergeladen werden.</p>
</div>
<div class="paragraph">
<p>Die Kopie in einen öffentlichen Ordner genügt und Inhalte erscheinen für jedermann sichtbar im Netz. Der Rest bleibt im privaten Bereich nur für den Nutzer zugänglich, dem sie gehören. Rollen und Berechtigungen können über die Nutzerverwaltung verwaltet werden.</p>
</div>
<div class="paragraph">
<p>Die WebBox etabliert zudem ein relationales Datenbankmanagementsystem und lässt sich mit Java-Webanwendungen beliebig erweitern.</p>
</div>
<div class="sect2">
<h3 id="wbx-abgrenzung"><a class="anchor" href="#wbx-abgrenzung"></a>1.1. Zielgruppe</h3>
<div class="paragraph">
<p>Die Beschreibung in diesem Dokument beschränkt sich auf eine Nutzung mit Linux. Eine WebBox läuft darüber hinaus auch auf anderen Betriebssystemen wie Mac OS oder Windows.</p>
</div>
<div class="paragraph">
<p>Die WebBox ist mit dem Einsatz für einzelne Personen, Familien, oder kleine Arbeitsgruppen im Sinn entstanden. Sie funktioniert unverändert auch für eine größere Anzahl an Benutzern, allerdings ist ein großer Nutzerkreis eher etwas für das Zusammenspiel vieler WebBoxen.</p>
</div>
<div class="paragraph">
<p>Ein Betrieb vieler WebBoxen aus einer Hand erfordert zusätzliche Konfiguration für Cluster, weitere Infrastruktur und deren Orchestrierung. Der Betrieb in einem solchen Szenario ist möglich, aber in diesem Dokument nicht abgedeckt.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-lizenz"><a class="anchor" href="#wbx-lizenz"></a>1.2. Lizenz</h3>
<div class="paragraph">
<p>Die WebBox wird unter den Bedingungen der <a href="https://www.gnu.org/licenses/agpl-3.0.de.html">GNU Affero General Public License</a> bereitgestellt.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-bedienung"><a class="anchor" href="#wbx-bedienung"></a>2. Bedienung</h2>
<div class="sectionbody">
<div class="paragraph">
<p>In diesem Dokument ist die Bedienung einer WebBox beschrieben. Das Dokument <a href="einrichtung.html">Einrichtung</a> enthält darüber hinaus Informationen zu <a href="einrichtung.html#wbx-inst">Installation</a> und <a href="einrichtung.html#wbx-eigenbau">eigener Konfiguration</a>.</p>
</div>
<div class="sect2">
<h3 id="wbx-aufrufen"><a class="anchor" href="#wbx-aufrufen"></a>2.1. WebBox aufrufen</h3>
<div class="paragraph">
<p>Wird nach dem <a href="einrichtung.html#wbx-start-stopp">Start der WebBox</a> im Webbrowser der URL <a href="http://localhost:8089/" class="bare">http://localhost:8089/</a> aufgerufen, erscheint die Startseite der WebBox.</p>
</div>
<div id="wbx-startseite" class="imageblock">
<div class="content">
<img src="bilder/wbx-firefox.png" alt="wbx-browser">
</div>
<div class="title">Abb. 1. die Startseite der WebBox</div>
</div>
<div class="paragraph">
<p>Für die WebBox ist der Port <code>8089</code> voreingestellt, er kann geändert werden wie in der <a href="einrichtung.html#wbx-port">Konfigurationsanleitung</a> beschrieben. Die Standard-Begrüßungsseite kann durch eigene Inhalte ersetzt werden, indem diese Inhalte im Verzeichnis der <a href="einrichtung.html#wbx-root-app">WebBox Root App</a> abgelegt werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-file-cms"><a class="anchor" href="#wbx-file-cms"></a>2.2. Dateien bearbeiten</h3>
<div class="paragraph">
<p>Die WebBox ist mit einer Dateiverwaltung ausgestattet, mit der <a href="https://de.wikipedia.org/wiki/Datei">Dateien</a> erstellt und deren Inhalte bearbeitet werden können. Die Dateiverwaltung der WebBox wird über den Punkt <code>Dateiverwaltung</code> des Menüs oben rechts auf der <a href="#wbx-startseite">Startseite der WebBox</a> aufgerufen.</p>
</div>
<div class="paragraph">
<p>Beim Aufruf erscheint zunächst die Anmeldeseite. Nutzer benötigen die <a href="#wbx-admin-aendern">Rolle</a> <code>ownFileAdmin</code>, um die Dateiverwaltung benutzen zu können. Mit erfolgreicher Anmeldung erscheint die Dateiverwaltung.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="bilder/dateiverwaltung.png" alt="img-wbx-file-cms">
</div>
<div class="title">Abb. 2. Die Dateiverwaltung der WebBox</div>
</div>
<div class="paragraph">
<p>Klick auf das Symbol mit den drei waagerechten Linien oben links öffnet das Menü ("Hamburger-Menü"). Erneutes Anklicken des Symbols schließt das Menü.</p>
</div>
<div class="sect3">
<h4 id="_auswählen_und_öffnen"><a class="anchor" href="#_auswählen_und_öffnen"></a>2.2.1. Auswählen und öffnen</h4>
<div class="paragraph">
<p>Das Anklicken eines Elements in der Dateiverwaltung wählt dieses aus. Das Anklicken eines gewählten Elements öffnet es.</p>
</div>
<div class="paragraph">
<p>Beim Öffnen verwendet die Dateiverwaltung die Dateiendungen, um zu bestimmen, wie eine Datei geöffnet wird. Dateien mit der Endung <code>.txt</code> werden beispielsweise im Texteditor geöffnet.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_texteditor"><a class="anchor" href="#_texteditor"></a>2.3. Texteditor</h3>
<div class="paragraph">
<p>Mit Doppelklick auf den Ordner <code>Persoenlich</code> wird dessen Inhalt angezeigt, anfangs ist dieser leer. Auswahl des Punkts <code>Neuer Text&#8230;&#8203;</code> im Menü oder Klick auf die Schaltfläche mit dem Dokumentsymbol oben rechts öffnet eine neue, leere Textdatei im Texteditor.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="bilder/texteditor.png" alt="img-wbx-txt-editor">
</div>
<div class="title">Abb. 3. der Texteditor der WebBox</div>
</div>
<div class="paragraph">
<p>Hier kann nun beliebiger Textinhalt eingetragen werden. Auswahl des Punkts <code>Speichern</code> oder <code>Speichern unter..</code> im Menü fragt einen Namen für die neue Datei ab.</p>
</div>
</div>
<div class="sect2">
<h3 id="_speichern"><a class="anchor" href="#_speichern"></a>2.4. Speichern</h3>
<div class="imageblock">
<div class="content">
<img src="bilder/speichern-unter.png" alt="img-wbx-file-save-as">
</div>
<div class="title">Abb. 4. der Dialog <em>Datei speichern unter</em></div>
</div>
<div class="paragraph">
<p>Mit Betätigen der Schaltfläche <code>Speichern</code> wird die neue Textdatei unter dem eingetragenen Namen in dem Ordner gespeichert, von dem aus der Texteditor gestartet wurde, in diesem Fall also im Ordner <code>Persoenlich</code>. Die Auswahl <code>Schließen</code> aus dem Menü oder Klick auf die Schaltfläche mit dem "X" oben rechts schließt den Texteditor und es wird wieder der Inhalt des Ordners <code>Persoenlich</code> angezeigt. Dort ist jetzt die neu angelegte Datei dargestellt.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-dok-edit"><a class="anchor" href="#wbx-dok-edit"></a>2.5. Textdokumente bearbeiten</h3>
<div class="paragraph">
<p>Mit der Dateiverwaltung lassen sich auch Textdokumente schreiben und bearbeiten. Die Vorgehensweise ist genauso wie im vorigen Abschnitt für Textdateien beschrieben. Für Textdokumente wird <code>Neues Dokument</code> aus dem Menü gewählt, woraufhin sich der Dokumenteditor der Dateiverwaltung öffnet.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="bilder/dokeditor.png" alt="img-wbx-dok-editor">
</div>
<div class="title">Abb. 5. Der Dokumenteditor der WebBox</div>
</div>
<div class="paragraph">
<p>Hier kann ein Textdokument mit Formatierungen direkt im Browser erstellt und bearbeitet werden, wie man es von üblichen Textverarbeitungen gewohnt ist. Das Speichern oder Bearbeiten erfolgt wie im vorigen Abschnitt beschrieben. Textdokumente werden dabei als reines HTML gespeichert, der Autor benötigt keine HTML-Kenntnisse für das Schreiben oder Bearbeiten. Die Dokumente sind so bestens für die Verwendung im Netz geeignet.</p>
</div>
<div class="paragraph">
<p><strong>Wichtig:</strong> Textdokumente müssen mit der Endung <code>.htmi</code> gespeichert werden, damit die WebBox sie als solche erkennen kann.</p>
</div>
<div class="sect3">
<h4 id="_textdokumente_und_html_seiten"><a class="anchor" href="#_textdokumente_und_html_seiten"></a>2.5.1. Textdokumente und HTML-Seiten</h4>
<div class="paragraph">
<p>Ein Textdokument, wie es mit der WebBox erstellt werden kann, ist einer HTML-Seite ähnlich. Es beinhaltet aber nur den Teil einer HTML-Seite, der im Element <code>body</code> untergebracht ist. Zu vollwertigen HTML-Seiten fehlt den Textdokumenten der WebBox die Gesamtstruktur mit dem Kopf-Teil, dem HTML-Element <code>head</code>.</p>
</div>
<div class="paragraph">
<p>Werden Textdokumente der WebBox mit der Funktion <a href="#wbx-inhalte-ansehen">Inhalte ansehen</a> dargestellt, also über ihren URL aufgerufen, gibt die WebBox das Textdokument wie eine HTML-Seite aus. Mangels Angaben im Kopf der Seite verwendet der Webbrowser Standardeinstellungen für die Gestaltung des Dokuments. Die Darstellung kann deshalb von Browser zu Browser unterschiedlich ausfallen.</p>
</div>
<div class="paragraph">
<p>Wird beim Speichern des Textdokuments die Endung <code>.htmi</code> im Namen angegeben, bettet die WebBox den Inhalt des Textdokuments in eine komplette HTML-Struktur bestehend aus <code>head</code>- und <code>body</code>-Element ein und fügt Verweise auf Gestaltungsvorlagen hinzu (CSS-Stylesheets). Als Gestaltungsvorlage wird das der WebBox beiliegende Stylesheet von Bootstrap <code>$WBX-INST/apps/jslib/bootstrap/css/bootstrap.min.css</code> sowie die Datei <code>stile.css</code> eingebettet. Ist im Ordner, in dem das betreffende Textdokument abgelegt ist, eine Datei <code>stile.css</code> abgelegt, können dem Textdokumente auf diese Weise eigene Gestaltungsvorgaben mitgegeben werden.</p>
</div>
</div>
<div class="sect3">
<h4 id="_textdokumente_als_html_exportieren"><a class="anchor" href="#_textdokumente_als_html_exportieren"></a>2.5.2. Textdokumente als HTML exportieren</h4>
<div class="paragraph">
<p>Um ein Textdokument, das mit der WebBox erstellt wurde, auch ohne eine WebBox einfach im Browser ansehen zu können, muss es als HTML-Seite vorliegen. Mit dem Punkt <code>Export HTML</code> im Menü können alle Textdokumente mit Endung <code>.htmi</code> des aktuell geöffneten Ordners als HTML-Seiten erzeugt werden.</p>
</div>
<div class="paragraph">
<p>Die so erzeugten HTML-Seiten werden in einen Ordner gelegt, der so heißt wie der aktuell geöffnete Ordner nebst Zusatz <code>_html</code>. Der neue Ordner liegt nach dem HTML-Export in dem Ordner, in dem der aktuell geöffnete Ordner liegt.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-ordner-verwalten"><a class="anchor" href="#wbx-ordner-verwalten"></a>2.6. Ordner</h3>
<div class="paragraph">
<p>Mit dem Punkt <code>Neuer Ordner</code> des Menüs oder Klick auf die Schaltfläche mit dem Ordnersymbol oben rechts wird im gerade angezeigten Ordner ein neuer Ordner erstellt. Nach Eingabe eines Ordner-Namens wird der neue Ordner im aktuell geöffneten Ordner angelegt. Ordner und deren Inhalte können mit den Optionen im Menü <code>Bearbeiten</code> verschoben, kopiert oder gelöscht werden. Hierzu werden folgende Schritte ausgeführt</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Inhalt (Ordner oder Datei) durch Anklicken auswählen,</p>
</li>
<li>
<p>Menü <code>Bearbeiten</code> - <code>Kopieren</code> oder <code>Ausschneiden</code> wählen,</p>
</li>
<li>
<p>in den Ordner navigieren, in den der ausgewählte Inhalt verschoben oder kopiert werden soll und</p>
</li>
<li>
<p>Menü <code>Bearbeiten</code> - <code>Einfügen</code> wählen.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Die gewählten Inhalte werden kopiert bzw. verschoben und befinden sich anschließend am gewählten Ort. Zur Auswahl mehrerer Dateien oder Ordner muss beim Anklicken jedes Elements einer Mehrfachauswahl die <code>Strg</code>-Taste festgehalten werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-neuer-reiter"><a class="anchor" href="#wbx-neuer-reiter"></a>2.7. Neuer Reiter</h3>
<div class="paragraph">
<p>Mit dem Punkt <code>Neuer Reiter</code> des Menüs wird der gerade geöffnete <a href="#wbx-ordner-verwalten">Ordner</a> in einem neuen Aktenreiter (Tab) des Browsers geöffnet. Browser ohne Unterstützung der Darstellung mehrerer Tabs öffnen den Ordner in einem neuen Fenster.</p>
</div>
<div class="paragraph">
<p>Gegebenenfalls muss in der Konfiguration des Browsers das Öffnen neuer Tabs oder Fenster für die WebBox erlaubt werden. In diesem Fall wird vom Browser beim Aufruf des Punkts <code>Neuer Reiter</code> die Erlaubnis vom Benutzer abgefragt.</p>
</div>
<div class="paragraph">
<p>Der Uniform Resource Locator (URL) eines so geöffneten Ordners der WebBox erscheint in der Adresszeile des Browsers. Er kann als Lesezeichen zum direkten Aufruf des Ordners genutzt werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-packen"><a class="anchor" href="#wbx-packen"></a>2.8. Ordner packen</h3>
<div class="paragraph">
<p>Der Inhalt des gerade geöffneten Ordners kann mit dem Punkt <code>Sonstiges</code> &#8594; <code>Ordner packen</code> in ein ZIP-Archiv überführt werden. Das ZIP-Archiv heißt so wie der Ordner und liegt anschließend in dem Ordner, der den gepackten Ordner enthält, also eine Ordnerebene höher.</p>
</div>
<div class="paragraph">
<p>Wird beispielsweise der Ordner namens <code>Testordner</code> im Pfad <code>Persoenlich/meine-Daten/Texte</code> geöffnet und auf diese Weise gepackt, liegt anschließend eine ZIP-Datei namens <code>Testordner.zip</code> im Ordner <code>Persoenlich/meine-Daten/Texte</code>.</p>
</div>
<div class="paragraph">
<p>Wird die ZIP-Datei ausgewählt (angeklickt) und der Punkt <code>Ansehen</code> im Menü gewählt, wird die ZIP-Datei heruntergeladen.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-entpacken"><a class="anchor" href="#wbx-entpacken"></a>2.9. Archiv entpacken</h3>
<div class="paragraph">
<p>Ein ZIP-Archiv wird mit dem Punkt <code>Entpacken</code> im Menü <code>Sonstiges</code> entpackt. Der Inhalt wird direkt in den Ordner entpackt, in dem die ZIP-Datei liegt. Es muss vor dem Entpacken ein neuer Ordner angelegt und die ZIP-Datei dorthin verschoben werden, wenn der Inhalt des ZIP-Archivs nicht mit anderen Inhalten vermischt werden soll.</p>
</div>
</div>
<div class="sect2">
<h3 id="_sichtbarkeit_von_inhalten"><a class="anchor" href="#_sichtbarkeit_von_inhalten"></a>2.10. Sichtbarkeit von Inhalten</h3>
<div class="paragraph">
<p>Die WebBox unterscheidet für jeden Benutzer einen öffentlichen und einen nicht öffentlichen, persönlichen Bereich. Im öffentlichen Bereich befindliche Inhalte sind ohne Einschränkung sichtbar. Inhalte im persönlichen Bereich sind nur für den angemeldeten Benutzer sichtbar. Jeder angemeldete Benutzer sieht dabei im persönlichen Bereich nur seine eigenen Inhalte. Beide Bereiche sind mit einem eigenen Uniform Resource Locator (URL) zugänglich:</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/<strong>home</strong>/[benutzername]/</code> (persönliche Inhalte)</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/<strong>data</strong>/[benutzername]/</code> (öffentliche Inhalte)</p>
</div>
<div class="paragraph">
<p>Die URLs für persönliche und öffentliche Inhalte, wie sie oben beschrieben sind, geben dabei Inhalte aus den Ordnern <code>Persoenlich</code> und <code>Oeffentlich</code> der WebBox wieder. Deren Inhalt wird erstellt und verwaltet wie in den folgenden Kapiteln beschrieben.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-inhalte-ansehen"><a class="anchor" href="#wbx-inhalte-ansehen"></a>2.11. Inhalte ansehen</h3>
<div class="paragraph">
<p>Über den Menüpunkt <code>Ansehen</code> wird der Inhalt einer gerade gewählten Datei im Browser angezeigt. Auf diese Weise lässt sich auch der Uniform Resource Locator (URL) bestimmen, mit dem die Datei im Browser direkt aufgerufen werden kann. Es werden so nur Inhalte dargestellt, die im Browser angesehen werden können, z.B. Texte, HTML-Dateien, PDF, Bilder, Videos, usw.</p>
</div>
<div class="paragraph">
<p>Dateien mit nicht darstellbaren Formaten wie z.B. ZIP-Dateien oder Office-Dateien (Microsoft, OpenOffice, LibreOffice) werden heruntergeladen.</p>
</div>
</div>
<div class="sect2">
<h3 id="_inhalte_hochladen"><a class="anchor" href="#_inhalte_hochladen"></a>2.12. Inhalte hochladen</h3>
<div class="paragraph">
<p>Lokale Inhalte werden zur WebBox übertragen und im aktuell geöffneten <a href="#wbx-ordner-verwalten">Ordner</a> abgelegt, wenn sie per Ziehen und Ablegen (Drag and Drop) im gerade geöffneten Ordner der <a href="#wbx-file-cms">Dateiverwaltung</a> 'fallengelassen' werden.</p>
</div>
<div class="paragraph">
<p>Einzelne und mehrere gleichzeitig ausgewählte Dateien können so direkt an die WebBox übertragen werden. Sollen ganze Ordner übertragen werden, müssen diese zuvor als ZIP-Datei gepackt und können nach dem Hochladen mit der WebBox <a href="#wbx-entpacken">entpackt</a> werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="_bilder"><a class="anchor" href="#_bilder"></a>2.13. Bilder</h3>
<div class="paragraph">
<p>Werden Bilder des Typs <code>JPEG</code>, <code>PNG</code> oder <code>GIF</code> auf die WebBox übertragen, übernimmt die WebBox automatisch das Verkleinern des Originals zu gebräuchlichen anderen Formaten.</p>
</div>
<div class="paragraph">
<p>Auf diese Weise müssen nicht die unter Umständen großen Datenmengen des Originalbildes für eine Miniatur-Vorschau übertragen werden. Die so erzeugte Miniaturansicht erscheint für Bilder auch anstelle eines Dateisymbols. Neben der Miniaturansicht lassen sich die folgenden weiteren Bildgrößen erzeugen:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Tabelle 1. Bildgrößen und -endungen</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-center valign-top">Größe (px)</th>
<th class="tableblock halign-center valign-top">Endung</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock">120</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">_tn</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock">240</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">_kl</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock">500</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">_dd</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock">700</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">_mt</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock">1200</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">_gr</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Dem Namen der Originaldatei eines Bildes wird einfach die Endung der gewünschten Größe angehängt um anstelle des Bildes in Originalgröße die gewünschte Größe aufzurufen. Ohne Endung wird das Bild in Originalgröße ausgegeben.</p>
</div>
<div class="paragraph">
<p>Ist beispielsweise eine Bilddatei <code>MeinBild.png</code> im Ordner <code>Persoenlich/Bilder</code> des Nutzers <code>fred</code> abgelegt, kann ihre Minituransicht mit folgendem URL angesehen werden:</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8098/home/fred/Bilder/MeinBild_tn.png</code></p>
</div>
<div class="paragraph">
<p>Bilder können mit Hilfe des <a href="#wbx-dok-edit">Dokumenteditors</a> in Dokumente eingebunden werden. Vom Ablageort des betreffenden Dokuments ausgehend genügt eine relative Pfadangabe. Zum Beispiel könnte ein Dokument im Ordner <code>Persoenlich</code> des Nutzers <code>fred</code> das oben erwähnte Bild mit der relativen Angabe <code>Bilder/MeinBild.png</code> einbinden.</p>
</div>
<div class="sect3">
<h4 id="_bilder_betrachten"><a class="anchor" href="#_bilder_betrachten"></a>2.13.1. Bilder betrachten</h4>
<div class="paragraph">
<p>Ein Bild kann angesehen werden wie in Kapitel <a href="#wbx-inhalte-ansehen">Inhalte ansehen</a> beschrieben. Zudem kann im Menü <code>Sonstiges</code> die Funktion <code>Diashow</code> aufgerufen werden. Damit öffnet sich ein neuer Aktenreiter (Tab) im Browser, der die im aktuellen Ordner befindlichen Bilder als Diashow anzeigt.</p>
</div>
<div class="paragraph">
<p>Die zuvor erwähnte Diashow-Funktion kann auch direkt auf Ordner der Dateiverwaltung der WebBox angewendet werden. Dazu wird die Diashow-Funktion zunächst eingeschaltet, indem der Punkt <code>Diashow einschalten</code> im Menü <code>Sonstiges</code> gewählt wird. Damit wird die standardmäßig ausgeschaltete Diashow-Funktion aktiviert. Anschließend wird ein Ordner geöffnet, der Bilder enthält. Mit Klick auf eines der Bilder wird die Diashow direkt aus dem Ordner heraus gestartet.</p>
</div>
<div class="paragraph">
<p>Sollen Bilder wieder als Dateien in der <a href="#wbx-file-cms">Dateiverwaltung</a> behandelt werden, beispielweise zum Markieren oder Kopieren einzelner Bilddateien, wird die Funktion <code>Diashow ausschalten</code> im Menü gewählt. Damit wird die Diashow-Funktion ausgeschaltet.</p>
</div>
</div>
<div class="sect3">
<h4 id="_bilder_öffentlich_zugänglich_machen"><a class="anchor" href="#_bilder_öffentlich_zugänglich_machen"></a>2.13.2. Bilder öffentlich zugänglich machen</h4>
<div class="paragraph">
<p>Die Diashow-Funktion der WebBox läßt sich auch aus der öffentlichen Ablage heraus verwenden. Es genügt, einen Ordner mit Bilddateien in den Ordner <code>Oeffentlich</code> zu legen um die betreffenden Bilder mit allen zu teilen, die den Namen des Ordners kennen. Der URL zur Diashow ergibt sich aus der Adressleiste des Browsers mit Aufruf der Funktion <code>Diashow</code> aus dem Menü <code>Sonstiges</code>.</p>
</div>
<div class="sect4">
<h5 id="_beispiel"><a class="anchor" href="#_beispiel"></a>Beispiel</h5>
<div class="paragraph">
<p>Ein Ordner mit Bilddateien namens <code>1234567</code> liegt im Ordner <code>Oeffentlich/bilder</code> des Benutzers <code>fred</code>. Diese Bilder können dann über den folgenden URL als Diashow betrachtet werden</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/file-cms/fotos/?o=fred/bilder/1234567</code></p>
</div>
<div class="paragraph">
<p>Kombiniert mit der <a href="#wbx-webdav">WebDAV-Funktion</a> können z.B. Fotos vom Mobilgerät in wenigen Schritten zentral zugänglich gemacht werden.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-webdav"><a class="anchor" href="#wbx-webdav"></a>2.14. WebDAV verwenden</h3>
<div class="paragraph">
<p><a href="https://de.wikipedia.org/wiki/WebDAV">WebDAV</a> ist ein Standardprotokoll für die Verwaltung von Dateien über HTTP oder HTTPS. Es gibt viele Dateiverwaltungs-Apps, die WebDAV unterstützen, beispielsweise auch für iOS oder Android. Mit solchen Programmen ist es sehr einfach, z.B. Fotos vom Mobilgerät auf die WebBox zu übertragen.</p>
</div>
<div class="paragraph">
<p>Über folgende URLs kann per WebDAV auf die WebBox zugegriffen werden.</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/dav</code></p>
</div>
<div class="paragraph">
<p><code>dav://localhost:8089/dav</code></p>
</div>
<div class="paragraph">
<p>Ist die WebBox für den produktiven Betrieb <a href="einrichtung.html#wbx-sichern">abgesichert</a>, beginnen die URLs mit <code>https</code> und <code>davs</code>. Die URLs verweisen auf den Ordner <code>$WBX-INST/data/dav</code> der WebBox. Inhalte dieses Ordners erscheinen im Ordner <code>Austausch</code> der <a href="#wbx-file-cms">Dateiverwaltung</a>, der auf der obersten Ebene der Ablagestruktur zusammen mit den Ordnern <code>Persönlich</code> und <code>Öffentlich</code> zu sehen ist.</p>
</div>
<div class="paragraph">
<p>Wird mit einem WebDAV-fähigen Programm einer der obigen URLs aufgerufen, wird eine Authentifizierung abgefragt. Nur Benutzer der WebBox mit der <a href="einrichtung.html#wbx-admin-aendern">Rolle</a> <code>davNutzer</code> können sich dort anmelden.</p>
</div>
<div class="sect3">
<h4 id="_austausch"><a class="anchor" href="#_austausch"></a>2.14.1. Austausch</h4>
<div class="paragraph">
<p>Per WebDAV zugängliche Inhalte, wie sie im vorigen Abschnitt beschrieben sind, erscheinen im Ordner <code>Austausch</code> auf der obersten Ordnerebene. Sie können dort von jedem Benutzer der WebBox eingesehen werden.</p>
</div>
<div class="paragraph">
<p>Die Inhalte können von dort mit den Punkten <code>Ausschneiden</code> und <code>Einfügen</code> des Menüs <code>Bearbeiten</code> zu einem Ablageort, der dem gerade angemeldeten Benutzers gehört, verschoben, also in die Ordner <code>Oeffentlich</code> oder <code>Persoenlich</code> des jeweiligen Benutzers abgelegt werden.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-prod"><a class="anchor" href="#wbx-prod"></a>2.15. Produktive Nutzung</h3>
<div class="paragraph">
<p>Ist eine WebBox abgesichert, wie in der <a href="einrichtung.html#wbx-sichern">Installationsanleitung</a> beschrieben, kann sie von überallher verwendet werden. Wir gehen für die weitere Beschreibung hier einmal von der Betriebsart hinter einem Proxy aus.</p>
</div>
<div class="paragraph">
<p>Zur Erreichbarkeit 'von außen' ist mindestens die Kenntnis der <a href="https://de.wikipedia.org/wiki/IP-Adresse">IP-Adresse</a> des <a href="https://de.wikipedia.org/wiki/Router">Routers</a> zum Internt erforderlich, hinter dem die WebBox läuft. Besser ist es aber, bei einem entsprechenden Anbieter eine <a href="https://de.wikipedia.org/wiki/Domain_(Internet)">Domain</a> wie etwa <code>example.com</code> zu <a href="https://de.wikipedia.org/wiki/Domain-Registrierung">registrieren</a> und diese auf die IP-Adresse des Routers verweisen zu lassen. Für wechselnde IP-Adressen, wie sie bei heimischen Internet-Anschlüssen vorkommen, kann ein Anbieter für <a href="https://de.wikipedia.org/wiki/Dynamisches_DNS">dynamisches DNS</a> eingeschaltet werden.</p>
</div>
<div class="paragraph">
<p>Sind Domain und dynamisches DNS geschaltet, muss im Router der Port 443 für die Kommunikation über <a href="https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure">HTTPS</a> geöffnet und eine Weiterleitung dieser Anfragen an den Proxy geschaltet werden.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_dokumenthistorie"><a class="anchor" href="#_dokumenthistorie"></a>3. Dokumenthistorie</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Tabelle 2. Änderungen</caption>
<colgroup>
<col style="width: 11.1111%;">
<col style="width: 22.2222%;">
<col style="width: 22.2222%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-center valign-bottom">Nr</th>
<th class="tableblock halign-left valign-bottom">Datum</th>
<th class="tableblock halign-left valign-bottom">Autor</th>
<th class="tableblock halign-left valign-bottom">Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">9. Mai 2020</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Erste Anlage der Version 3 der WebBox</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">10. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Neue Dokumentation Version 3</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">16. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Installation, Sicherung</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">22. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Aufteilung der Dokumentation</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">24. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Neue Bedienoberfläche beschrieben</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 3.1<br>
Letzte Änderung 2021-01-24 13:53:00 +0100
</div>
</div>
<link rel="stylesheet" href="/jslib/highlight-adoc/styles/github.min.css">
<script src="/jslib/highlight-adoc/highlight.min.js"></script>
<script>hljs.initHighlighting()</script>
</body>
</html>
web/META-INF/daten/www/dok/wbx/bilder/File-Server-icon.png
web/META-INF/daten/www/dok/wbx/bilder/dateiverwaltung.png
web/META-INF/daten/www/dok/wbx/bilder/dokeditor.png
web/META-INF/daten/www/dok/wbx/bilder/speichern-unter.png
web/META-INF/daten/www/dok/wbx/bilder/texteditor.png
web/META-INF/daten/www/dok/wbx/bilder/wbx-3.png
web/META-INF/daten/www/dok/wbx/bilder/wbx-4.png
web/META-INF/daten/www/dok/wbx/bilder/wbx-firefox.png
web/META-INF/daten/www/dok/wbx/einrichtung.html
New file
@@ -0,0 +1,737 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Ulrich Hilger">
<title>WebBox Einrichtung</title>
<link rel="stylesheet" href="asciidoctor.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article toc2 toc-left">
<div id="header">
<h1>WebBox Einrichtung</h1>
<div class="details">
<span id="author" class="author">Ulrich Hilger</span><br>
<span id="email" class="email"><a href="mailto:ulrich.hilger@web.de">ulrich.hilger@web.de</a></span><br>
<span id="revnumber">version 3.1,</span>
<span id="revdate">24. Januar 2021</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Inhalt</div>
<ul class="sectlevel1">
<li><a href="#wbx-ueber">1. Über die WebBox</a>
<ul class="sectlevel2">
<li><a href="#wbx-abgrenzung">1.1. Zielgruppe</a></li>
<li><a href="#wbx-lizenz">1.2. Lizenz</a></li>
</ul>
</li>
<li><a href="#wbx-inst">2. Installation</a>
<ul class="sectlevel2">
<li><a href="#wbx-sichern">2.1. WebBox sichern</a></li>
<li><a href="#wbx-zielsystem">2.2. Zielsystem einstellen</a></li>
</ul>
</li>
<li><a href="#wbx-start-stopp">3. Starten und Stoppen</a>
<ul class="sectlevel2">
<li><a href="#_starten">3.1. Starten</a></li>
<li><a href="#_stoppen">3.2. Stoppen</a></li>
<li><a href="#wbx-admin-aendern">3.3. Benutzer anlegen</a></li>
</ul>
</li>
<li><a href="#wbx-bedienung">4. Bedienung</a></li>
<li><a href="#wbx-eigenbau">5. Eigene Konfiguration</a>
<ul class="sectlevel2">
<li><a href="#wbx-dl">5.1. Beschaffung</a></li>
<li><a href="#wbx-einrichten">5.2. Zusammenbau</a></li>
<li><a href="#wbx-daten-apps">5.3. Daten und Apps</a></li>
</ul>
</li>
<li><a href="#wbx-tech-info">6. Technische Infos</a>
<ul class="sectlevel2">
<li><a href="#wbx-struktur">6.1. Ordnerstruktur</a></li>
<li><a href="#wbx-java-konf">6.2. Java</a></li>
<li><a href="#wbx-tc-konf">6.3. Tomcat</a></li>
<li><a href="#wbx-derby-konf">6.4. Derby</a></li>
<li><a href="#wbx-konf-um">6.5. Nutzerverwaltung</a></li>
<li><a href="#wbx-ablage">6.6. Datenablage</a></li>
<li><a href="#wbx-root-app">6.7. WebBox Startseite</a></li>
<li><a href="#wbx-konf-file-cms">6.8. Dateiverwaltung</a></li>
<li><a href="#wbx-lib">6.9. WebBox Lib</a></li>
<li><a href="#wbx-erweitern">6.10. WebBox erweitern</a></li>
</ul>
</li>
<li><a href="#_dokumenthistorie">7. Dokumenthistorie</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="imageblock">
<div class="content">
<img src="bilder/File-Server-icon.png" alt="WebBox">
</div>
</div>
<div class="paragraph">
<p>Das Internet ist als Verbindung von Netzknoten konzipiert, die Inhalte bereit stellen. Die WebBox etabliert einen solchen Netzknoten als persönliche Instanz eines Nutzers und ermöglicht es, eigene Inhalte über das Netz zu verwalten und zu teilen.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-ueber"><a class="anchor" href="#wbx-ueber"></a>1. Über die WebBox</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Mit der WebBox können Inhalte so verwaltet werden, wie es Nutzer vom Desktop handelsüblicher Betriebssyteme her kennen. Zur Bedienung wird nicht mehr als ein Browser benötigt. Von überallher können Texte und Dokumente bearbeitet, Bilder, Musik oder Videos organisiert, kopiert, verschoben oder herauf- und heruntergeladen werden.</p>
</div>
<div class="paragraph">
<p>Die Kopie in einen öffentlichen Ordner genügt und Inhalte erscheinen für jedermann sichtbar im Netz. Der Rest bleibt im privaten Bereich nur für den Nutzer zugänglich, dem sie gehören. Rollen und Berechtigungen können über die Nutzerverwaltung verwaltet werden.</p>
</div>
<div class="paragraph">
<p>Die WebBox etabliert zudem ein relationales Datenbankmanagementsystem und lässt sich mit Java-Webanwendungen beliebig erweitern.</p>
</div>
<div class="sect2">
<h3 id="wbx-abgrenzung"><a class="anchor" href="#wbx-abgrenzung"></a>1.1. Zielgruppe</h3>
<div class="paragraph">
<p>Die Beschreibung in diesem Dokument beschränkt sich auf eine Nutzung mit Linux. Eine WebBox läuft darüber hinaus auch auf anderen Betriebssystemen wie Mac OS oder Windows.</p>
</div>
<div class="paragraph">
<p>Die WebBox ist mit dem Einsatz für einzelne Personen, Familien, oder kleine Arbeitsgruppen im Sinn entstanden. Sie funktioniert unverändert auch für eine größere Anzahl an Benutzern, allerdings ist ein großer Nutzerkreis eher etwas für das Zusammenspiel vieler WebBoxen.</p>
</div>
<div class="paragraph">
<p>Ein Betrieb vieler WebBoxen aus einer Hand erfordert zusätzliche Konfiguration für Cluster, weitere Infrastruktur und deren Orchestrierung. Der Betrieb in einem solchen Szenario ist möglich, aber in diesem Dokument nicht abgedeckt.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-lizenz"><a class="anchor" href="#wbx-lizenz"></a>1.2. Lizenz</h3>
<div class="paragraph">
<p>Die WebBox wird unter den Bedingungen der <a href="https://www.gnu.org/licenses/agpl-3.0.de.html">GNU Affero General Public License</a> bereitgestellt.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-inst"><a class="anchor" href="#wbx-inst"></a>2. Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Zur Installation einer WebBox werden eine Kommandozeile geöffnet und die folgenden Kommandos ausgeführt:</p>
</div>
<div class="listingblock">
<div class="title">Kommandos zur Installation einer WebBox in ein beispielhaftes Benutzerverzeichnis <code>/home/fred</code></div>
<div class="content">
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs"># ins Benutzerverzechnis wechseln
cd /home/fred
# das Installationsskript laden
wget https://uhilger.de/data/pg/webbox/dl/make-wbx
# das Skript ausführbar machen
chmod ug+x make-wbx
# die Teile der WebBox laden und zusammenstellen
./make-wbx</code></pre>
</div>
</div>
<div class="paragraph">
<p>Es werden keine Eingriffe im System der Zielmaschine vorgenommen, alles beschränkt sich auf das Benutzerverzeichnis: Die obigen Kommandos legen im Ordner <code>/home/fred</code> einen neuen Ordner <code>wbx-inst</code> an, laden alle Bestandteile einer WebBox herunter und machen sie ausführbar. Über eine Internet-Verbindung mit 10 Mbit/s oder mehr dauert dieser Vorgang weniger als eine Minute.</p>
</div>
<div id="wbx-ordner" class="paragraph">
<p>Die ausführbare Fassung der WebBox liegt anschließend im Ordner <code>/home/fred/wbx-inst/wbx</code>. Dieser Ordner wird im weiteren Verlauf dieses Dokuments <code>$WBX-INST</code> genannt, d.h., wenn im Dokument <code>$WBX-INST</code> erscheint, ist  <code>/home/fred/wbx-inst/wbx</code> gemeint.</p>
</div>
<div class="paragraph">
<p>Die WebBox kann nun genutzt werden, sollte aber nach dem ersten Ausprobieren für einen produktiven Betrieb <a href="#wbx-sichern">abgesichert</a> werden. Der Start der WebBox erfolgt wie in Kapitel <a href="#wbx-start-stopp">Starten und Stoppen</a> beschrieben. Abweichend vom Betrieb laut Installation kann die WebBox auch mit einer <a href="#wbx-eigenbau">eigenen Konfiguration</a> ausgeführt werden.</p>
</div>
<div class="sect2">
<h3 id="wbx-sichern"><a class="anchor" href="#wbx-sichern"></a>2.1. WebBox sichern</h3>
<div class="paragraph">
<p>Die hier beschriebene Installation ist nur für Testzwecke geeignet. Um eine WebBox sicher <a href="bedienung.adoc#wbx-prod">produktiv zu benutzen</a>, sollte sie zusammen mit einem <a href="https://de.wikipedia.org/wiki/Proxy_(Rechnernetz)">Proxy</a> wie <a href="http://www.lighttpd.net/">Lighttpd</a> betrieben werden. Grob gesagt ist hierfür das Vorgehen wie folgt:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Lighttpd installieren (auf <a href="https://wiki.ubuntuusers.de/lighttpd/">Ubuntu</a> z.B. mit <code>sudo apt-get install lighttpd</code>)</p>
</li>
<li>
<p>Ein <a href="https://de.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>-Zertifikat erzeugen, z.B. bei <a href="https://letsencrypt.org/">Let&#8217;s Encrypt</a></p>
</li>
<li>
<p>Die verschlüsselte Kommunikation unter Verwendung des Zertifikats in der Konfiguration von Lighttpd <a href="https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL">einrichten</a></p>
</li>
<li>
<p>In der Konfiguration von Lighttpd eine Weiterleitung auf die WebBox <a href="https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy">eintragen</a></p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Die Kommunikation erfolgt auf diese Weise verschlüsselt und ist abgesichert gegen das Mitlesen unbefugter Dritter.</p>
</div>
<div class="sect3">
<h4 id="_verschlüsselung_ohne_proxy"><a class="anchor" href="#_verschlüsselung_ohne_proxy"></a>2.1.1. Verschlüsselung ohne Proxy</h4>
<div class="paragraph">
<p>Die WebBox kann auch ohne Proxy verschlüsselt kommunizieren. Für diese Variante ist eine <code>.keystore</code>-Datei im Verzeichnis <code>$WBX-INST/.conf/prg/tc-base/conf</code> erforderlich, in die das <a href="https://de.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>-Zertifikat eingetragen wird. In der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> muss dann ein Konnektor für <a href="https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure">HTTPS</a> konfiguriert werden.</p>
</div>
<div class="paragraph">
<p>Das Vorgehen hierfür ist z.B. im Beitrag <a href="https://uhilger.de/data/doc/2019/12/tomcat-mit-https.md">HTTPS bei Tomcat aktivieren</a> beschrieben.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-zielsystem"><a class="anchor" href="#wbx-zielsystem"></a>2.2. Zielsystem einstellen</h3>
<div class="paragraph">
<p>Das Installationsskript <code>make-wbx</code> ist im Auslieferungszustand für ein 64-Bit x86-Linux konfiguriert. Zur Verwendung auf Maschinen mit anderem Prozessor oder Betriebssystem muss der Uniform Resource Locator (URL) der passenden Java-Version ermittelt werden. Das kann z.B. bei <a href="https://www.azul.com/downloads/zulu-community">Azul</a> oder <a href="https://adoptopenjdk.net/">AdoptOpenJDK</a> geschehen.</p>
</div>
<div class="paragraph">
<p>Der URL muss vor der Ausführung im Parameter <code>JAVA_URL</code> des Skripts <code>make-wbx</code> eingetragen werden.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-start-stopp"><a class="anchor" href="#wbx-start-stopp"></a>3. Starten und Stoppen</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Die WebBox ist standardmäßig darauf eingerichtet, mit den <a href="#wbx-inst">installierten</a> Bestandteilen zu starten. Soll die Ablaufumgebung anders konfiguriert sein, muss vor dem ersten Start das Start- / Stoppskript der WebBox von Hand angepasst werden wie in <a href="#wbx-eigenbau">Eigene Konfiguration</a> beschrieben.</p>
</div>
<div class="sect2">
<h3 id="_starten"><a class="anchor" href="#_starten"></a>3.1. Starten</h3>
<div class="paragraph">
<p>Zum Starten der WebBox wird eine Kommandozeile geöffnet, in den <a href="#wbx-ordner">Ordner der WebBox</a> navigiert und das Kommando zum Start gegeben:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>cd /home/fred/wbx-inst/wbx
./wbx start</pre>
</div>
</div>
<div class="paragraph">
<p>Auf der Kommandozeile erscheint die Meldung <code>WebBox Startsequenz durchgeführt</code>, die WebBox kann <a href="bedienung.adoc#wbx-aufrufen">im Browser aufgerufen werden</a>. Vor der ersten Verwendung müssen noch <a href="#wbx-admin-aendern">Benutzer angelegt</a> werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="_stoppen"><a class="anchor" href="#_stoppen"></a>3.2. Stoppen</h3>
<div class="paragraph">
<p>Das Stoppen der WebBox erfolgt mit folgenden Befehlen auf der Kommandozeile:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>cd /home/fred/wbx-inst/wbx
./wbx stop</pre>
</div>
</div>
<div class="paragraph">
<p>Die WebBox wird heruntergefahren, auf der Kommandozeile erscheint die Meldung <code>WebBox Stoppsequenz durchgeführt</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-admin-aendern"><a class="anchor" href="#wbx-admin-aendern"></a>3.3. Benutzer anlegen</h3>
<div class="paragraph">
<p>Beim ersten Start der WebBox wird automatisch der Benutzer <code>admin</code> mit Kennwort <code>admin</code> erstellt. Dieser Nutzer sollte gleich als Erstes verwendet werden, um einen anderen Benutzer mit Administrationsrechten anzulegen. Der neue Administrator-Benutzer muss mindestens die Rolle <code>nutzerAdmin</code> erhalten.</p>
</div>
<div class="paragraph">
<p>Die dazu erforderliche Nutzerverwaltung wird auf der <a href="bedienung.adoc#wbx-startseite">Startseite</a> der WebBox über das Menü oben rechts aufgerufen. Die Bedienung der Nutzerverwaltung ist in der <a href="https://uhilger.de/data/pg/Nutzerverwaltung/anleitung.adoc#_nutzerverwaltung">Anleitung</a> beschrieben.</p>
</div>
<div class="paragraph">
<p>Sobald nach der Konfiguration die Anmeldung mit dem neu angelegten Adminstrator-Benutzer gelingt, kann später der Benutzer <code>admin</code> gelöscht werden.</p>
</div>
<div class="paragraph">
<p>Zur Bedienung der <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> benötigen Benutzer zudem die Rolle <code>ownFileAdmin</code>. Zum Ändern des eigenen Kennwortes kann Benutzern die Rolle <code>nutzerProfil</code> zugewiesen werden.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-bedienung"><a class="anchor" href="#wbx-bedienung"></a>4. Bedienung</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Die Bedienung der WebBox ist in der <a href="bedienung.adoc">Bedienungsanleitung</a> beschrieben.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-eigenbau"><a class="anchor" href="#wbx-eigenbau"></a>5. Eigene Konfiguration</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Voraussetzungen für die Nutzung der WebBox sind das Installationspaket der WebBox sowie Java, Tomcat und Derby. Diese Bestandteile werden bei der <a href="#wbx-inst">Installation</a> geladen, sie können aber auch einzeln beschafft und zusammengebaut oder aus vorhandenen Beständen genutzt werden.</p>
</div>
<div class="paragraph">
<p>Dies wird hier beispielhaft im Home-Verzeichnis des Benutzers ausgeführt. Auf einem Linux-System sind Benutzerverzeichnisse im Pfad <code>/home</code> angelegt, sie werden deshalb auch Home-Verzeichnis genannt. Das Home-Verzeichnis eines Benutzers namens <code>fred</code> ist zum Beispiel <code>/home/fred</code>.</p>
</div>
<div class="sect2">
<h3 id="wbx-dl"><a class="anchor" href="#wbx-dl"></a>5.1. Beschaffung</h3>
<div class="paragraph">
<p>Alle Teile sind als Freie Software erhältlich. Die noch nicht auf der Zielmaschine vorhandenen Teile können von ihren Produktseiten im Internet heruntergeladen werden:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://www.azul.com/downloads/zulu-community/">Java</a></p>
</li>
<li>
<p><a href="https://tomcat.apache.org">Tomcat</a></p>
</li>
<li>
<p><a href="https://dp.apache.org/derby">Derby</a></p>
</li>
<li>
<p><a href="https://uhilger.de/data/pg/webbox/dl/wbx-3-dist.tar.xz">WebBox</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die heruntergeladenen Dateien finden sich anschließend je nach Konfiguration des Browsers üblicherweise in <code>/home/fred/Downloads</code>, je nach ausgewählter Version unter Namen wie etwa</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Java: <code>zulu11.43.55-ca-jre11.0.9.1-linux_x64.tar.gz</code></p>
</li>
<li>
<p>Tomcat: <code>apache-tomcat-9.0.41.tar.gz</code></p>
</li>
<li>
<p>Derby: <code>db-derby-10.15.2.0-bin.tar.gz</code></p>
</li>
<li>
<p>WebBox: <code>wbx-3-dist.tar.xz</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Diese Dateien werden wie folgt entpackt:</p>
</div>
<div class="listingblock">
<div class="title">Kommandos zum Entpacken der Bestandteile einer WebBox</div>
<div class="content">
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs">cd /home/fred
mkdir -p wbx-inst/{java,tc,db,wbx}
cd Downloads
tar -xf zulu11.43.55-ca-jre11.0.9.1-linux_x64.tar.gz -C ../wbx-inst/java --strip 1
tar -xf apache-tomcat-9.0.41.tar.gz -C ../wbx-inst/tc --strip 1
tar -xf db-derby-10.15.2.0-bin.tar.gz -C ../wbx-inst/db --strip 1
tar -xf wbx-3-dist.tar.xz -C ../wbx-inst/wbx --strip 1</code></pre>
</div>
</div>
<div class="paragraph">
<p>Damit sind die benötigten Programme bereit zur Verwendung. Der Ordner <code>/home/fred/wbx-inst/wbx</code> wird für den Rest dieses Dokuments <code>$WBX-INST</code> genannt. Im nächsten Abschnitt ist beschrieben, wie die WebBox zur Nutzung konfiguriert wird.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-einrichten"><a class="anchor" href="#wbx-einrichten"></a>5.2. Zusammenbau</h3>
<div class="paragraph">
<p>Die WebBox ist standardmäßig so eingerichtet, wie es in <a href="#wbx-inst">Installation</a> und <a href="#wbx-prg-buendeln">Programme bündeln</a> beschrieben ist. Die von der WebBox benötigten Programme <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> können aber auch anders eingebunden werden.</p>
</div>
<div class="sect3">
<h4 id="wbx-vorinst"><a class="anchor" href="#wbx-vorinst"></a>5.2.1. Vorhandene Programme verwenden</h4>
<div class="paragraph">
<p>Sind <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> bereits vor der Installation der WebBox auf der Maschine vorhanden, ist in der Regel bei deren Installation ein systemweiter Pfadeintrag für <code>JAVA_HOME</code>, <code>CATALINA_HOME</code> oder <code>DERBY_HOME</code> gemacht worden. In diesen Fällen können die so vorliegenden Programme von der WebBox mitgenutzt werden. Die Pfadangabe im Start- / Stoppskript der WebBox kann dann auskommentiert bleiben, wie es im Auslieferungszustand der WebBox enthalten ist.</p>
</div>
<div class="listingblock">
<div class="title">Auslieferungszustand der WebBox: Die Ablageorte von Java, Tomcat und Derby sind auskommentiert</div>
<div class="content">
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs"># export JAVA_HOME=
# export CATALINA_HOME=
# export DERBY_HOME=</code></pre>
</div>
</div>
<div class="paragraph">
<p>Diese Betriebsart entspricht der Anordnung gemäß folgendem Schaubild.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="bilder/wbx-3.png" alt="WebBox">
</div>
<div class="title">Abb. 1. die WebBox mit vorhandenen Programmen</div>
</div>
<div class="sect4">
<h5 id="_programme_von_anderer_stelle_einbinden"><a class="anchor" href="#_programme_von_anderer_stelle_einbinden"></a>Programme von anderer Stelle einbinden</h5>
<div class="paragraph">
<p>Sollen Teile der für die WebBox erforderlichen Ablaufumgebung anders eingebunden sein, müssen die Pfade zu <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> im Start- und Stoppskript, der Datei <code>$WBX-INST/wbx</code>, eingetragen werden wie im folgenden Beispiel.</p>
</div>
<div class="listingblock">
<div class="title">Beispiel für die Angabe individueller Ablageorte von Java, Tomcat und Derby</div>
<div class="content">
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs">export JAVA_HOME=/home/fred/wbx-inst/java
export CATALINA_HOME=/home/fred/wbx-inst/tc
export DERBY_HOME=/home/fred/wbx-inst/db</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="wbx-prg-buendeln"><a class="anchor" href="#wbx-prg-buendeln"></a>5.2.2. Programme bündeln</h4>
<div class="paragraph">
<p>Eine weitere Variante ist es, <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> in den Ordner der WebBox zu kopieren und mit der WebBox zu bündeln. Die dafür vorgesehenen Ordner sind</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>$WBX-INST/.conf/prg/java</code></p>
</li>
<li>
<p><code>$WBX-INST/.conf/prg/tc-home</code> (nur <code>CATLAINA_HOME/bin</code> und <code>CATLAINA_HOME/lib</code>)</p>
</li>
<li>
<p><code>$WBX-INST/.conf/prg/derby</code> (nur <code>lib</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Werden Java, Tomcat und Derby in die obigen Ordner der WebBox kopiert, kann das Start- / Stoppskript der WebBox im Auslieferungszustand belassen werden, mit auskommentierten Pfadangaben wie in <a href="#wbx-vorinst">Vorhandene Programme verwenden</a>. Die Nutzung der WebBox kann dann mit allen Bestandteilen aus einem Ordner heraus erfolgen wie im folgenden Schaubild.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="bilder/wbx-4.png" alt="WebBox">
</div>
<div class="title">Abb. 2. die WebBox mit gebündelten Programmen</div>
</div>
<div class="paragraph">
<p>In dieser Variante lässt sich die WebBox mit allen Bestandteilen und Daten einfach transportieren. Es muss stets nur der WebBox-Ordner kopiert werden.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-daten-apps"><a class="anchor" href="#wbx-daten-apps"></a>5.3. Daten und Apps</h3>
<div class="paragraph">
<p>Die Ablageorte für Daten und Apps sind standardmäßig auf die Ordner <code>$WBX-INST/data</code> und <code>$WBX-INST/apps</code> festgelegt. Sie können auf einen beliebigen anderen Ort umgestellt werden, indem im Start- und Stoppskript, der Datei <code>$WBX-INST/wbx</code>, die Einträge der Umgebungsvariablen <code>WBX_DATA</code> und <code>WBX_APPS</code> entsprechend geändert werden.</p>
</div>
<div class="paragraph">
<p>Diese Angaben werden zudem als Java-Systemvariablen <code>wbx.data</code> und <code>wbx.apps</code> an <a href="#wbx-eigenbau">Tomcat</a> weitergereicht. Auf diese Weise können sie 'von außen' auch dem Java-Prozess von Tomcat und allen Webapps übermittelt werden. Ein auf der WebBox laufendes Java-Programm kann die Pfade zu den Daten und Apps der WebBox mit <code>System.getProperty("wbx.data")</code> und <code>System.getProperty("wbx.apps")</code> ermitteln.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="wbx-tech-info"><a class="anchor" href="#wbx-tech-info"></a>6. Technische Infos</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Die WebBox kombiniert die folgendenden Einzelkomponenten zu einer ausführbaren Einheit.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Java (Virtuelle Maschine und Ablaufumgebung)</p>
</li>
<li>
<p>Tomcat (Web- und Applikationsserver)</p>
</li>
<li>
<p>Derby (relationales Datenbanksystem)</p>
</li>
<li>
<p>WebBox Konfiguration</p>
<div class="ulist">
<ul>
<li>
<p>Nutzerverwaltung</p>
<div class="ulist none">
<ul class="none">
<li>
<p>Nutzerdatenbank</p>
</li>
</ul>
</div>
</li>
<li>
<p>Dateiverwaltung</p>
</li>
<li>
<p>Datenablage</p>
</li>
<li>
<p>Root App</p>
</li>
<li>
<p>WebBox Lib</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die Konfiguration dieser Komponenten ist nachfolgend beschrieben.</p>
</div>
<div class="sect2">
<h3 id="wbx-struktur"><a class="anchor" href="#wbx-struktur"></a>6.1. Ordnerstruktur</h3>
<div class="paragraph">
<p>Eine WebBox besitzt die folgende Struktur.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>wbx ............... eine WebBox
  apps ............ Webanwendungen der WebBox-Nutzer
    ROOT .......... Startseite der WebBox
    jslib ......... zentrale JavaScript-Bibliotheken
    fonts ......... zentrale Schriftarten
    um ............ Nutzerverwaltung
    file-cms ...... Dateiverwaltung
  data ............ WebBox Datenablage
    db ............ relationale Datenbanken (von Derby verwaltet)
      udb ......... WebBox Nutzer und Rollen
    home .......... private Daten
    www ........... oeffentliche Daten
    logs .......... Logs
    tc-work ....... Tomcat Cache
    tc-temp ....... Temp-Verzeichnis für Webapps
  .conf ........... interne Inhalte der WebBox
    bin ........... WebBox-Skripte
    prg ........... WebBox-Software
      derby ....... Derby (optional)
      java ........ Java (optional)
      tc-home ..... Tomcat CATALINA_HOME (optional)
        bin ....... Tomcat-Skripte
        conf ...... leer/ungenutzt
        lib ....... Tomcat-Bibliotheken
        logs ...... leer/ungenutzt
        temp ...... leer/ungenutzt
        webapps ... leer/ungenutzt
        work ...... leer/ungenutzt
      tc-base ..... WebBox CATALINA_BASE
        bin ....... nur tomcat-juli.jar
        conf ...... Tomcat-Konfiguration für die WebBox
        lib ....... Bibliotheken für die WebBox
        logs ...... leer/ungenutzt
        temp ...... leer/ungenutzt
        webapps ... leer/ungenutzt
        work ...... leer/ungenutzt</pre>
</div>
</div>
<div class="paragraph">
<p>Der Ordner <code>data</code> ist für veränderliche Daten des Nutzers vorgesehen, die Konfiguration ist in <a href="#wbx-ablage">Datenablage</a> näher erläutert.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-java-konf"><a class="anchor" href="#wbx-java-konf"></a>6.2. Java</h3>
<div class="paragraph">
<p>An der Konfiguration von Java macht die WebBox keine Änderungen.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-tc-konf"><a class="anchor" href="#wbx-tc-konf"></a>6.3. Tomcat</h3>
<div class="paragraph">
<p>Die Konfiguration von Tomcat wurde für die WebBox angepasst und befindet sich in <code>$WBX-INST/.conf/prg/tc-base</code>. Die folgenden Änderungen an der Standardkonfiguration von Tomcat wurden unternommen.</p>
</div>
<div id="wbx-port" class="dlist">
<dl>
<dt class="hdlist1">Port</dt>
<dd>
<p>Der Port der WebBox ist in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> eingestellt. Dort ist im Element <code>Connector</code> das Attribut <code>port</code> standardmäßig auf <code>8089</code> gesetzt. An dieser Stelle kann ohne Auswirkung auf die Konfiguration der WebBox ein beliebiger anderer Port eingetragen werden.</p>
</dd>
<dt class="hdlist1">JarScanner</dt>
<dd>
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/context.xml</code> wurde der Eintrag <code>&lt;JarScanner scanManifest="false"/&gt;</code> hinzugefügt (Quelle: <a href="http://www.skybert.net/java/tomcat-fails-to-scan-jar-file-that-i-never-asked-for/" class="bare">http://www.skybert.net/java/tomcat-fails-to-scan-jar-file-that-i-never-asked-for/</a> ).</p>
</dd>
<dt class="hdlist1">Datenbanktreiber</dt>
<dd>
<p>Zur Verwendung von Derby Datenbanken über den ClientDriver müssen ab Derby 10.15 die folgenden JARs im Classpath sein: <code>derbyclient.jar</code>, <code>derbyshared.jar</code> und <code>derbytools.jar</code>. Diese sind in <code>$WBX-INST/.conf/prg/tc-base/lib</code> abgelegt.</p>
</dd>
<dt class="hdlist1">Ablageort der Log-Dateien</dt>
<dd>
<p>In der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/logging.properties</code> wurden die Ablageorte für Log-Dateien auf das Verzeichnis <code>${wbx.data}/logs</code> umgestellt. In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das Attribut <code>directory</code> für das <code>AccessLogValve</code> auf den Ordner <code>${wbx.data}/logs</code> umgestellt.</p>
</dd>
<dt class="hdlist1">Ablageort für Apps</dt>
<dd>
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das Attribut <code>appBase</code> für den Host <code>localhost</code> auf <code>${wbx.apps}</code> umgestellt.</p>
</dd>
<dt class="hdlist1">Tomcat Work-Ordner</dt>
<dd>
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde im Element <code>Host</code> der Engine <code>Catalina</code> das Attribut <code>workDir</code> hinzugefügt. Es verweist auf <code>${wbx.data}/tc-work/Catalina</code>, damit nicht ins <code>CATALINA_BASE</code>-Verzeichnis geschrieben wird.</p>
</dd>
<dt class="hdlist1">Kontexte <code>data</code> und <code>home</code></dt>
<dd>
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/Catalina/localhost</code> wurden die Dateien <code>data.xml</code> und <code>home.xml</code> angelegt. Sie verweisen auf <code>${wbx.data}/www</code> sowie <code>${wbx.data}/home</code> und sorgen so dafür, dass Tomcat die Inhalte dieser beiden Datenverzeichnisse ausgibt. Deren Anlage beschreibt das Kapitel Dateiverwaltung. Ihre Konfiguration ist im Kapitel Datenablage beschrieben.</p>
</dd>
<dt class="hdlist1">Single Sign-On</dt>
<dd>
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das SingleSignOn valve eingeschaltet. Eine Benutzeranmeldung wirkt über alle Webanwendungen der WebBox hinweg.</p>
</dd>
</dl>
</div>
<div class="sect3">
<h4 id="wbx-tc-klein"><a class="anchor" href="#wbx-tc-klein"></a>6.3.1. Tomcat verkleinern</h4>
<div class="paragraph">
<p>Das Installationspaket von Tomcat ist mehr als 16 MB groß. Für die WebBox ist nur der Inhalt in den Ordnern <code>bin</code> und <code>lib</code> erforderlich. Diese beiden Ordner allein erfordern nur 10 MB. Verzichtet man auch auf Java Server Pages (JSP), lässt sich Tomcat auf 4,8 MB verkleinern.</p>
</div>
<div class="paragraph">
<p>Beim Verzicht auf JSP können alle Klassenbibliotheken weggelassen werden ausser den folgenden:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Tomcat-Ordner <code>lib</code></dt>
<dd>
<p>annotations-api.jar, catalina.jar, catalina-ant.jar, jaspic-api.jar, serlet-api.jar, tomcat-api.jar, tomcat-coyote.jar, tomcat-dbcp.jar, tomcat-jdbc.jar, tomcat-jni.jar, tomcat-util-scan.jar</p>
</dd>
</dl>
</div>
<div class="sect4">
<h5 id="wbx-jsp-aus"><a class="anchor" href="#wbx-jsp-aus"></a>JSP ausschalten</h5>
<div class="paragraph">
<p>Wenn JSP weggelassen werden, müssen diese in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/web.xml</code> deaktiviert werden. Dazu wird das JSP-Servlet und das JSP-Servlet-Mapping auskommentiert, damit die fehlenden JSP-Bibliotheken nicht zu Abbrüchen beim Start des Servers führen.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="wbx-derby-konf"><a class="anchor" href="#wbx-derby-konf"></a>6.4. Derby</h3>
<div class="paragraph">
<p>Mit dem Start der WebBox wird ein <a href="https://db.apache.org/derby/papers/DerbyTut/ns_intro.html">Derby Network Server</a> auf Port 1528 gestartet. Der Port kann im Startskript, der Datei <code>$WBX-INST/.conf/bin/dns</code>, in der Variablen <code>DERBY_PORT</code> geändert werden.</p>
</div>
<div class="paragraph">
<p>Ein geänderter Port für Derby muss auch allen Anwendungen bekannt gegeben werden, die eine Datenbank benutzen. Im Auslieferungszustand der WebBox betrifft das</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Tomcat, Element <code>GlobalNamingResources</code> in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code></p>
</li>
<li>
<p>die Nutzerverwaltung, Datei <code>$WBX-INST/apps/um/META-INF/context.xml</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die oben erwähnte Datei <code>context.xml</code> der Nutzerverwaltung ist ein Beispiel für das Einbinden einer Derby-Datenbank in andere Webanwendungen, die auf der WebBox laufen. Webanwendungen können mit <code>META-INF/context.xml</code> eine JDBC-Datenquelle deklarieren und müssen damit im Programmcode nur den Namen der Datenquelle laut Attribut <code>name</code> verwenden. Einzelheiten der Konfiguration werden so wirksam aus dem Programmcode ferngehalten.</p>
</div>
<div class="paragraph">
<p>Die Verwendung von Derby-Datenbanken in Java-Programmen ist beispielsweise in der <a href="https://uhilger.de/data/pg/baselink/anleitung.adoc">Dokumentation von BaseLink</a> beschrieben.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-konf-um"><a class="anchor" href="#wbx-konf-um"></a>6.5. Nutzerverwaltung</h3>
<div class="paragraph">
<p>Die Nutzerverwaltung ist ein zentraler Bestandteil der WebBox, der Hand in Hand mit der Container Managed Security des Servlet Containers geht. Die WebBox ist in diesem Punkt konform mit der Java-Spezifikation: Webanwendungen auf der Grundlage der Java-Spezifikation können die Authentifizierung und Autorisierung der WebBox nahtlos einbinden.</p>
</div>
<div class="paragraph">
<p>Für die WebBox werden Benutzer und Rollen über eine mitgelieferte Webanwendung in einer relationalen Datenbank gespeichert und verwaltet. Die Konfiguration zur Verwendung der Nutzerdatenbank ist in der <a href="https://uhilger.de/data/pg/Nutzerverwaltung/anleitung.adoc#tc-realm">Anleitung</a> beschrieben und so wie dort beschrieben in der Konfiguration der WebBox im Ordner <code>.conf/prg/tc-base/conf</code> eingerichtet.</p>
</div>
<div class="paragraph">
<p>Die Kennworte von Benutzern werden in der Nutzerdatenbank der WebBox verschlüsselt gespeichert. Sie können bei Einblick in die Datenbank nicht im Klartext gelesen werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-ablage"><a class="anchor" href="#wbx-ablage"></a>6.6. Datenablage</h3>
<div class="paragraph">
<p>In <code>$WBX-INST/data/home</code> liegen Daten, die die WebBox nur an den angemeldeten Benutzer ausgibt. Der Ordner <code>$WBX-INST/data/www</code> enthält öffentliche Daten, die von der WebBox als öffentliche Inhalte ohne Einschränkung ausgeliefert werden. Die Einstellungen hierfür sind in den in ihnen befindlichen Ordnern namens <code>WEB-INF</code> konfiguriert. Diese sind in der Dateiverwaltung der WebBox nicht sichtbar. Ihr Name oder Inhalt darf nicht verändert werden.</p>
</div>
<div class="paragraph">
<p>Die Datenablage kann allerdings so wie sie ist an einen beliebigen anderen Ort verschoben werden. Der neue Ablageort muss dann in der Konfiguration der WebBox vermerkt werden, wie in <a href="#wbx-daten-apps">Daten und Apps</a> beschrieben.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-root-app"><a class="anchor" href="#wbx-root-app"></a>6.7. WebBox Startseite</h3>
<div class="paragraph">
<p>Die Startseite der WebBox befindet sich im Ordner <code>$WBX-INST/apps/ROOT</code>. Sie kann beliebig geändert werden.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-konf-file-cms"><a class="anchor" href="#wbx-konf-file-cms"></a>6.8. Dateiverwaltung</h3>
<div class="paragraph">
<p>Die <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> der WebBox ist eine Java-Webanwendung und befindet sich im Ordner <code>$WBX-INST/apps/file-cms</code>. Die Dateiverwaltung ist speziell für die Verwaltung der Inhalte der <a href="#wbx-ablage">WebBox-Datenablage</a> via Browser ausgelegt und vorkonfiguriert. Sie kann zudem prinzipiell mit beliebigen Datei-Systemen verwendet werden.</p>
</div>
<div class="paragraph">
<p>Ihr Quellcode und weitere Informationen sind im <a href="https://uhilger.de/gitblit/docs/file-cms.git">Code Repository</a> enthalten.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-lib"><a class="anchor" href="#wbx-lib"></a>6.9. WebBox Lib</h3>
<div class="paragraph">
<p>Die Datei <code>wb-lib.jar</code> im Ordner <code>$WBX-INST/.conf/tc-base/lib</code> enthält Java-Klassen, die für die Ausgabe von Inhalten der <a href="#wbx-ablage">WebBox-Datenablage</a> wichtig sind. Weitere Informationen und ihr Quellcode ist im <a href="https://uhilger.de/gitblit/docs/wbx-lib.git">Code Repository</a> enthalten.</p>
</div>
</div>
<div class="sect2">
<h3 id="wbx-erweitern"><a class="anchor" href="#wbx-erweitern"></a>6.10. WebBox erweitern</h3>
<div class="paragraph">
<p>Die WebBox kann mit Webanwendungen erweitert werden, die der <a href="https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf#G14.999461">Java Servlet Spezifikation</a> folgen. Solche Webanwendungen werden gewöhnlich als Dateien mit Endung <code>.war</code> für <strong>w</strong>eb <strong>ar</strong>chive ausgeliefert. Eine <code>.war</code>-Datei wird einfach in den Ordner <code>$WBX-INST/apps</code> gelegt, um die Webanwendung mit der WebBox auszuführen. Wird beispielsweise die Datei <code>meine-app.war</code> so installiert, ist sie aufrufbar mit</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/meine-app/</code></p>
</div>
<div class="paragraph">
<p>Erfordert die App eine Datenbank, wird gewöhnlich die Java Database Connectivity (JDBC) eingesetzt. Die App kann dann das Datenbanksystem der WebBox verwenden wie im Kapitel <a href="#wbx-derby-konf">Derby</a> beschrieben.</p>
</div>
<div class="sect3">
<h4 id="wbx-statischer-inhalt"><a class="anchor" href="#wbx-statischer-inhalt"></a>6.10.1. Statische Webseiten</h4>
<div class="paragraph">
<p>Auf ähnliche Weise können auch statische Inhalte wie HTML-Seiten, Bilder oder Javscript-Programme genutzt werden. Im einfachsten Fall wird ein neuer Ordner im Ordner <code>$WBX-INST/apps</code> erstellt und die betreffenden Inhalte dort hineingelegt. Wird zum Beispiel ein neuer Ordner <code>mein-webinhalt</code> mit einer Datei <code>index.html</code> darin in den Order <code>$WBX-INST/apps</code> gelegt, ist der Inhalt anschließend aufrufbar mit</p>
</div>
<div class="paragraph">
<p><code>http://localhost:8089/mein-webinhalt/</code></p>
</div>
<div class="paragraph">
<p>Auf dieselbe Weise funktionieren statische Inhalte, die in den Ordner <code>$WBX-INST/data/www</code> gelegt werden. Hier ist allerdings der Unterschied, dass sie dort auch mit der <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> der WebBox verwendet werden können.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_dokumenthistorie"><a class="anchor" href="#_dokumenthistorie"></a>7. Dokumenthistorie</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Tabelle 1. Änderungen</caption>
<colgroup>
<col style="width: 11.1111%;">
<col style="width: 22.2222%;">
<col style="width: 22.2222%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-center valign-bottom">Nr</th>
<th class="tableblock halign-left valign-bottom">Datum</th>
<th class="tableblock halign-left valign-bottom">Autor</th>
<th class="tableblock halign-left valign-bottom">Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">9. Mai 2020</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Erste Anlage der Version 3 der WebBox</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">10. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Neue Dokumentation Version 3</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">16. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Installation, Sicherung</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">22. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Aufteilung der Dokumente</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-bottom"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">24. Januar 2021</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Verweise angepasst</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 3.1<br>
Letzte Änderung 2021-01-24 13:47:49 +0100
</div>
</div>
<link rel="stylesheet" href="/jslib/highlight-adoc/styles/github.min.css">
<script src="/jslib/highlight-adoc/highlight.min.js"></script>
<script>hljs.initHighlighting()</script>
</body>
</html>
web/META-INF/daten/www/dok/wbx/js-info.htmi
File was deleted
web/proto/flex-versuch-3.html
File was deleted
web/proto/flex-versuch-up.html
File was deleted
web/proto/index.html
File was deleted
web/proto/liste4.html
File was deleted
web/proto/stile.css
File was deleted
web/proto/ui.js
File was deleted
web/proto/verworfen/flex-versuch-2.css
File was deleted
web/proto/verworfen/flex-versuch-2.html
File was deleted
web/proto/verworfen/flex-versuch.css
File was deleted
web/proto/verworfen/flex-versuch.html
File was deleted
web/proto/verworfen/index_alt.html
File was deleted
web/proto/verworfen/liste.html
File was deleted
web/proto/verworfen/liste2.html
File was deleted
web/proto/verworfen/liste3.css
File was deleted
web/proto/verworfen/liste3.html
File was deleted
web/proto/verworfen/liste5.html
File was deleted
web/ui2/js/app.js
@@ -102,7 +102,7 @@
  };
  
  this.fm_hilfe = function() {
    window.open('/data/dok/wbx-doku.html#wbx-bedienung', '_blank');
    window.open('/data/dok/wbx/bedienung.html#wbx-bedienung', '_blank');
  };
  
  this.fm_toggle_show_slideshow = function() {