f41bf8ef5c2e0ead43af038607c87e7791f34e9e..f18429188bb1d7e0926a1587b1d5b93de8436a9a
2022-06-30 Jan Ulrich Hasecke
Gliederung angepasst und Outline-Datei erstellt
f18429 diff | tree
2022-06-30 Jan Ulrich Hasecke
Lua-Skript
f2839f diff | tree
2022-06-30 Jan Ulrich Hasecke
Pandoc-ConTeXt Branch
261280 diff | tree
85 files added
10185 ■■■■■ changed files
Pipfile 13 ●●●●● patch | view | raw | blame | history
Pipfile.lock 246 ●●●●● patch | view | raw | blame | history
rename.sh 5 ●●●●● patch | view | raw | blame | history
source/.~lock.test.odt# 1 ●●●● patch | view | raw | blame | history
source/einfuehrung/index.md 142 ●●●●● patch | view | raw | blame | history
source/einstieg/#index.md# 23 ●●●●● patch | view | raw | blame | history
source/einstieg/.#index.md 1 ●●●● patch | view | raw | blame | history
source/einstieg/benutzer-anlegen/index.md 135 ●●●●● patch | view | raw | blame | history
source/einstieg/datenbank/index.md 145 ●●●●● patch | view | raw | blame | history
source/einstieg/domain/index.md 117 ●●●●● patch | view | raw | blame | history
source/einstieg/email/index.md 271 ●●●●● patch | view | raw | blame | history
source/einstieg/index.md 23 ●●●●● patch | view | raw | blame | history
source/einstieg/passwort/index.md 127 ●●●●● patch | view | raw | blame | history
source/einstieg/ssh-key/index.md 42 ●●●●● patch | view | raw | blame | history
source/einstieg/webspace/index.md 216 ●●●●● patch | view | raw | blame | history
source/glossar.md 126 ●●●●● patch | view | raw | blame | history
source/index.md 58 ●●●●● patch | view | raw | blame | history
source/mail/index.md 268 ●●●●● patch | view | raw | blame | history
source/metadata.yml 4 ●●●● patch | view | raw | blame | history
source/outline.txt 87 ●●●●● patch | view | raw | blame | history
source/plattform/backup/index.md 12 ●●●●● patch | view | raw | blame | history
source/plattform/index.md 8 ●●●●● patch | view | raw | blame | history
source/plattform/monitoring/index.md 12 ●●●●● patch | view | raw | blame | history
source/plattform/netze/index.md 45 ●●●●● patch | view | raw | blame | history
source/plattform/rechenzentren/index.md 37 ●●●●● patch | view | raw | blame | history
source/plattform/redundanz/index.md 10 ●●●●● patch | view | raw | blame | history
source/plattform/replikation/index.md 11 ●●●●● patch | view | raw | blame | history
source/project.lua 38 ●●●●● patch | view | raw | blame | history
source/referenz/backup/index.md 52 ●●●●● patch | view | raw | blame | history
source/referenz/benutzer/index.md 89 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbank-webfrontend/index.md 7 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbank-zugriff/index.md 12 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/datenbanken-nutzer/index.md 21 ●●●●● patch | view | raw | blame | history
source/referenz/datenbanken/index.md 19 ●●●●● patch | view | raw | blame | history
source/referenz/domain/domain-optionen/index.md 89 ●●●●● patch | view | raw | blame | history
source/referenz/domain/domainverwaltung/index.md 114 ●●●●● patch | view | raw | blame | history
source/referenz/domain/index.md 58 ●●●●● patch | view | raw | blame | history
source/referenz/domain/subdomains/index.md 46 ●●●●● patch | view | raw | blame | history
source/referenz/email/autoconfig/index.md 39 ●●●●● patch | view | raw | blame | history
source/referenz/email/emailalias-paketuser/index.md 9 ●●●●● patch | view | raw | blame | history
source/referenz/email/index.md 37 ●●●●● patch | view | raw | blame | history
source/referenz/email/postausgangsserver/index.md 38 ●●●●● patch | view | raw | blame | history
source/referenz/email/posteingangsserver/index.md 15 ●●●●● patch | view | raw | blame | history
source/referenz/email/size-email/index.md 7 ●●●●● patch | view | raw | blame | history
source/referenz/email/webmail/index.md 7 ●●●●● patch | view | raw | blame | history
source/referenz/hostkeys/index.md 123 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/domain/index.md 150 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/emailaddress/index.md 135 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/emailaliases/index.md 83 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/index.md 66 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/mysqldb/index.md 79 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/mysqluser/index.md 79 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/postgresqldb/index.md 72 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/postgresqluser/index.md 83 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/q/index.md 22 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/skript/index.md 294 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/syntax/index.md 65 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/user/index.md 105 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/webfrontend/index.md 8 ●●●●● patch | view | raw | blame | history
source/referenz/htaccess/index.md 94 ●●●●● patch | view | raw | blame | history
source/referenz/index.md 12 ●●●●● patch | view | raw | blame | history
source/referenz/logging/index.md 70 ●●●●● patch | view | raw | blame | history
source/referenz/php/index.md 61 ●●●●● patch | view | raw | blame | history
source/referenz/tls/eigene-tls-zertifikate/index.md 17 ●●●●● patch | view | raw | blame | history
source/referenz/tls/filemap-mit-ssl/index.md 49 ●●●●● patch | view | raw | blame | history
source/referenz/tls/filemap-ohne-ssl/index.md 48 ●●●●● patch | view | raw | blame | history
source/referenz/tls/index.md 21 ●●●●● patch | view | raw | blame | history
source/referenz/tls/letsencrypt/index.md 45 ●●●●● patch | view | raw | blame | history
source/referenz/tls/standard/index.md 14 ●●●●● patch | view | raw | blame | history
source/referenz/tls/varianten/index.md 24 ●●●●● patch | view | raw | blame | history
source/referenz/wartungsfenster/index.md 26 ●●●●● patch | view | raw | blame | history
source/referenz/webpaket/index.md 55 ●●●●● patch | view | raw | blame | history
source/referenz/webpaket/speicherbelegung/index.md 44 ●●●●● patch | view | raw | blame | history
source/referenz/webpaket/verzeichnisebenen-domain-admin/index.md 155 ●●●●● patch | view | raw | blame | history
source/referenz/webpaket/verzeichnisebenen-email-nutzer/index.md 19 ●●●●● patch | view | raw | blame | history
source/referenz/webpaket/verzeichnisebenen-paket-admin/index.md 54 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/eigenes-zonefile-deaktivieren/index.md 5 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/eigenes-zonefile/index.md 29 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/expandiertes-standard-zonefile/index.md 36 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/expansion-platzhalter/index.md 88 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/index.md 20 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/kontrolle-aenderungen/index.md 34 ●●●●● patch | view | raw | blame | history
source/referenz/zonefile/platzhalter/index.md 90 ●●●●● patch | view | raw | blame | history
source/test.html 4829 ●●●●● patch | view | raw | blame | history
source/test.odt patch | view | raw | blame | history
Pipfile
New file
@@ -0,0 +1,13 @@
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
sphinx = "*"
sphinx-rtd-theme = "*"
[dev-packages]
[requires]
python_version = "3.9"
Pipfile.lock
New file
@@ -0,0 +1,246 @@
{
    "_meta": {
        "hash": {
            "sha256": "7205e21d1d077da165229a43df71ccc4632036cd489e3b52253d96ad687c038f"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.9"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "alabaster": {
            "hashes": [
                "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359",
                "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"
            ],
            "version": "==0.7.12"
        },
        "babel": {
            "hashes": [
                "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9",
                "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
            ],
            "version": "==2.9.1"
        },
        "certifi": {
            "hashes": [
                "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
                "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
            ],
            "version": "==2021.10.8"
        },
        "charset-normalizer": {
            "hashes": [
                "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
                "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
            ],
            "markers": "python_version >= '3'",
            "version": "==2.0.12"
        },
        "docutils": {
            "hashes": [
                "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125",
                "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"
            ],
            "version": "==0.17.1"
        },
        "idna": {
            "hashes": [
                "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
                "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
            ],
            "markers": "python_version >= '3'",
            "version": "==3.3"
        },
        "imagesize": {
            "hashes": [
                "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c",
                "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"
            ],
            "version": "==1.3.0"
        },
        "importlib-metadata": {
            "hashes": [
                "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6",
                "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"
            ],
            "markers": "python_version < '3.10'",
            "version": "==4.11.3"
        },
        "jinja2": {
            "hashes": [
                "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119",
                "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9"
            ],
            "version": "==3.1.1"
        },
        "markupsafe": {
            "hashes": [
                "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003",
                "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88",
                "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5",
                "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7",
                "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a",
                "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603",
                "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1",
                "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135",
                "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247",
                "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6",
                "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601",
                "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77",
                "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02",
                "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e",
                "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63",
                "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f",
                "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980",
                "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b",
                "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812",
                "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff",
                "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96",
                "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1",
                "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925",
                "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a",
                "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6",
                "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e",
                "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f",
                "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4",
                "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f",
                "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3",
                "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c",
                "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a",
                "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417",
                "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a",
                "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a",
                "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37",
                "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452",
                "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933",
                "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a",
                "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"
            ],
            "version": "==2.1.1"
        },
        "packaging": {
            "hashes": [
                "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
                "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
            ],
            "version": "==21.3"
        },
        "pygments": {
            "hashes": [
                "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65",
                "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"
            ],
            "version": "==2.11.2"
        },
        "pyparsing": {
            "hashes": [
                "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea",
                "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"
            ],
            "version": "==3.0.7"
        },
        "pytz": {
            "hashes": [
                "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7",
                "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"
            ],
            "version": "==2022.1"
        },
        "requests": {
            "hashes": [
                "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
                "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
            ],
            "version": "==2.27.1"
        },
        "snowballstemmer": {
            "hashes": [
                "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1",
                "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"
            ],
            "version": "==2.2.0"
        },
        "sphinx": {
            "hashes": [
                "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6",
                "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"
            ],
            "index": "pypi",
            "version": "==4.5.0"
        },
        "sphinx-rtd-theme": {
            "hashes": [
                "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8",
                "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"
            ],
            "index": "pypi",
            "version": "==1.0.0"
        },
        "sphinxcontrib-applehelp": {
            "hashes": [
                "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a",
                "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"
            ],
            "version": "==1.0.2"
        },
        "sphinxcontrib-devhelp": {
            "hashes": [
                "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e",
                "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
            ],
            "version": "==1.0.2"
        },
        "sphinxcontrib-htmlhelp": {
            "hashes": [
                "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07",
                "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"
            ],
            "version": "==2.0.0"
        },
        "sphinxcontrib-jsmath": {
            "hashes": [
                "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178",
                "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"
            ],
            "version": "==1.0.1"
        },
        "sphinxcontrib-qthelp": {
            "hashes": [
                "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72",
                "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"
            ],
            "version": "==1.0.3"
        },
        "sphinxcontrib-serializinghtml": {
            "hashes": [
                "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd",
                "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"
            ],
            "version": "==1.1.5"
        },
        "urllib3": {
            "hashes": [
                "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
                "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
            ],
            "version": "==1.26.9"
        },
        "zipp": {
            "hashes": [
                "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
                "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
            ],
            "version": "==3.8.0"
        }
    },
    "develop": {}
}
rename.sh
New file
@@ -0,0 +1,5 @@
for file in *.md; do
    dir=${file%%.*}
        mkdir -p "$dir"
            mv "$file" "$dir/index.md"
          done
source/.~lock.test.odt#
New file
@@ -0,0 +1 @@
Jan Ulrich Hasecke,juh,plato,30.06.2022 17:11,file:///home/juh/.config/libreoffice/4;
source/einfuehrung/index.md
New file
@@ -0,0 +1,142 @@
# Einleitung {#kap-einfuehrung}
![image](../images/header/souveraenitaet.png)
Dieses Handbuch richtet sich an Anwender, welche ihre Internetprojekte
bei der Hostsharing eG betreiben möchten. Es bietet einen Überblick über
die Infrastruktur, eine Einführung in deren Nutzung sowie eine
Beschreibung typischer Prozesse.
Unser besonderer Dank gilt allen, die zu diesem Handbuch beigetragen
haben, insbesondere: Purodha Blissenbach, Christian Günter, Jan Ulrich
Hasecke, Michael Hierweck, Peter Hormanns, Uwe Müller, Veit Schiele,
Dominic Schlegel und Lars Trebing.
## Managed Operations Platform
Die Hostsharing eG betreibt für ihre Mitglieder eine [Managed Operations
Platform](https://www.hostsharing.net/features/) für den Betrieb von
Web-Anwendungen. Die gesamte bereitgestellte Infrastruktur -- von der
Hardware über Netze bis zur Softwareumgebung mit ihren administrativen
Tools -- wird von der Hostsharing eG bereitgestellt, gewartet,
aktualisiert und überwacht, sodass sich die Mitglieder auf den Betrieb
ihrer indviduellen Internetangebote konzentrieren können. Das Angebot
wird durch passende Beratungs- und Unterstützungsleistungen abgerundet.
## Web-Pakete
Die Mitglieder nutzen die Managed Operations Platform in Form von
Web-Paketen.
Ein Web-Paket stellt einen Verbund von Benutzerkennungen, Domains,
E-Mail-Adressen, Postfächern, Datenbanken und weiteren Funktionen dar,
welchem Ressourcen wie Speicherplatz und Datentransfervolumen zugeordnet
sind.
Ein Web-Paket ermöglicht die Nutzung von:
-   Web-Anwendungen
-   Daemons
-   E-Mail-Infrastruktur
-   Domains und Subdomains
-   TLS-Verschlüsselung
-   Datenbanken
-   verschiedenen Programmiersprachen
Web-Pakete eignen sich zum Betrieb eines oder mehrerer Internetangebote.
Jedes Mitglied kann beliebig viele Web-Pakete bestellen und verwalten.
Ein Web-Paket kann einzeln als [Managed
Webspace](https://www.hostsharing.net/angebote/managed-webspace/)
gebucht werden. Auf einem [Managed
Server](https://www.hostsharing.net/angebote/managed-server/) können ein
oder mehrere Web-Pakete betrieben werden.
## Managed Webspace
![image](../images/icons/icon-managedwebspace.*){width="30.0%"}
Mit der Buchung eines Managed Webspace erhält das Mitglied ein Webpaket,
welches auf einem Server untergebracht ist, dessen Ressourcen sich die
Mitglieder teilen (Shared Hosting). Mitglieder können mehrere Managed
Webspaces buchen und erhalten mit jeder Buchung ein weiteres Web-Paket.
Mit der Buchung von Managed Webspace erhält das Mitglied Speicherplatz
zugewiesen, ein Traffic-Kontingent und ein Kontingent von
Benutzerkonten, Datenbanken und E-Mail-Adressen. Diese Ressourcen sind
modular zubuchbar. CPU und RAM werden gemeinsam genutzt.
## Managed Server
![image](../images/icons/icon-managedserver.*){width="30.0%"}
Mit der Buchung eines Managed Servers erhält das Mitglied Speicherplatz,
CPU und RAM dediziert zugewiesen sowie ein Traffic-Kontingent. Diese
Ressourcen sind modular zubuchbar. Das Mitglied kann beliebig viele
Benutzerkonten, Datenbanken und E-Mail-Adressen einrichten und sie in
Form von Web-Paketen mandantenfähig gruppieren. Um einen Managed Server
nutzen zu können, werden also auf diesem wenigstens ein, bei Bedarf auch
mehrere Web-Pakete eingerichtet.
Verschiedene Managed Server eines Mitglieds können auf Wunsch über
interne Netze miteinander verbunden werden, um sichere Kommunikation
zwischen Komponenten eines verteilten Deployments zu realisieren.
Mehrere Mitglieder können sich einen Managed Server teilen. Ein
Reselling an Endkunden ist möglich.
## Best Practice
Mitglieder von Hostsharing können den Aufbau ihrer Webanwendungen sehr
frei gestalten, denn Hostsharing bietet ein hohes Maß an Flexibilität.
Dennoch ist es sinnvoll, bei der Organisation seiner Webanwendungen
bestimmte Verfahrensweisen zu beachten, die erfahrungsgemäß die
Sicherheit erhöhen. Dazu gehört vor allem die Nutzung der Vorteile, die
das Linux-Betriebssystem aufgrund seiner Mehrbenutzerfähigkeit bietet.
### Pro Anwendung ein Benutzer
Wenn auf einem Linux-Betriebssystem zwei Anwendungen (A und B) unter
verschiedenen Benutzern (`xyz00-a` und `xyz00-b`) laufen, sind sie in
gewisser Hinsicht gegeneinander abgeschottet. Wenn es einem Angreifer
gelingt, durch eine Sicherheitslücke in Anwendung A die Benutzerrechte
von `xyz00-a` zu erlangen, kann er mit diesen Rechten im Heimverzeichnis
von `xyz00-a` jeden beliebigen Schaden anrichten. Im Heimverzeichnis von
`xyz00-b` besitzt er jedoch keine Lese- und Schreibrechte, sodass er
dort auch keine Schäden verursachen kann.
Deshalb gilt es bei Hostsharing als Best Practice für jede Domain und
jede Anwendung einen eigenen Benutzer anzulegen. Hostsharing hat
verschiedene Benutzerrollen vorgesehen, die jeweils spezifische Aufgaben
übernehmen. Die Rollen werden in `kap-benutzerrollen`{.interpreted-text
role="numref"} ausführlich erklärt.
## Weitere Informationsquellen
Wenn Ihnen dieses Handbuch nicht weiterhilft, können Sie die folgenden
Informationsquellen nutzen.
Das Hostsharing Wiki
:   Das [Hostsharing
    Wiki](https://wiki.hostsharing.net/index.php?title=Hauptseite) wird
    von den Mitgliedern der Hostsharing eG gepflegt. Es enthält vor
    allem
    [Installationsanleitungen](https://wiki.hostsharing.net/index.php?title=Kategorie:Installationsanleitungen)
    für die diversen Webanwendungen, die unsere Mitglieder auf der
    Managed Operations Platform betreiben.
Die Support-Mailingliste
:   Die Mitglieder der Hostsharing eG helfen sich gegenseitig auf der
    [Support-Mailingliste](https://lists.hostsharing.net/mailman/listinfo/support).
    Sie müssen die Mailingliste abonnieren, um Fragen zu stellen. Werfen
    Sie einen Blick in das Mailinglisten-Archiv, bevor Sie Ihre Frage
    stellen. Unter Umständen wurde sie schon beantwortet.
Der Hostsharing-Service
:   Falls Sie ein besonderes Problem mit Ihrem Web-Paket haben, können
    Sie per E-Mail den [Hostsharing-Service](service@hostsharing.net)
    direkt fragen. In dringenden Fällen können Sie den Service auch
    telefonisch unter der Nummer +49 40 2093313-11 erreichen.
source/einstieg/#index.md#
New file
@@ -0,0 +1,23 @@
# Einführung in HSAdmin {#kap-hsadmin-einstieg}
![image](../images/header/nachhaltigkeit.png)
Für einen erfolgreichen Start mit Hostsharing wird hier schrittweise
gezeigt, wie ein Benutzer eine Domain mit E-Mail-Adresse und eine
Datenbank in einem neuen Web-Paket angelegt wird. Die Einrichtung
erfolgt mit dem Webfrontend von `HSAdmin`{.interpreted-text
role="program"}. Freunde der Konsole können alle Schritte mit der
CLI-Variante `hsscript`{.interpreted-text role="program"} erledigen.
::: only
html
## Rundgang durch HSAdmin
:::
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Erster-Rundgang-HSAdmin.webm"></video>
```
::: {.toctree maxdepth="1"}
passwort benutzer-anlegen domain webspace ssh-key email datenbank
:::
source/einstieg/.#index.md
New file
@@ -0,0 +1 @@
juh@plato.10031:1656576076
source/einstieg/benutzer-anlegen/index.md
New file
@@ -0,0 +1,135 @@
# Domain-Benutzer anlegen
Bevor wir eine Domain aufschalten, müssen wir einen Benutzer mit der
Rolle `Domain-Admin`{.interpreted-text role="role"} anlegen. Rufen Sie
dazu das Webfrontend von HSAdmin über den Link
<https://admin.hostsharing.net> auf und loggen Sie sich mit der
Benutzerkennung des `Paket-Admin`{.interpreted-text role="role"} ein. In
unserem Beispiel ist das `xyz00`.
Gehen Sie in den Bereich `Web-Paket`{.interpreted-text role="guilabel"}
und dort in das Menü `Benutzer/Postfach`{.interpreted-text
role="guilabel"}. Klicken Sie nun auf das Plus-Symbol
`Neuen Eintrag anlegen`{.interpreted-text role="guilabel"}. Es öffnet
sich das in `fig-domain-admin-anlegen`{.interpreted-text role="numref"}
gezeigte Menü zum Anlegen eines neuen Benutzers.
::: {#fig-domain-admin-anlegen}
![Das Menü zum Anlegen eines neuen
Benutzers.](../images/hsadmin-da-anlegen-1.*){width="100.0%"}
:::
Die Felder für den Benutzer und das Passwort sind rot umrandet. Das
zeigt an, dass Sie diese Felder bearbeiten müssen. Das Kürzel für den
Paket-Admin ist bereits eingetragen. Sie müssen lediglich nach dem
Bindestrich eine Bezeichnung eingeben, die Ihnen sinnvoll erscheint.
Während das Kürzel am Anfang (z.B. `xyz00`) zwingend vorgegeben ist,
können Sie die Bezeichnung dahinter frei wählen. Denken Sie an den Zweck
des Benutzers. Er verwaltet eine oder mehrere Domains. Wenn Sie in Ihrem
Web-Paket nur eine Domain verwalten wollen, können Sie den Benutzer zum
Beispiel `xyz00-domain` nennen. Wenn der Benutzer mehrere Domains
verwalten soll, kann sein Name zur verständlichen Kennzeichung
`xyz00-doms` lauten. Und wenn Sie mehrere Domains mit unterschiedlichen
Domain-Admins in einem Paket verwalten wollen, können Sie in den Namen
auch die jeweilige Domain einfügen, wie zum Beispiel
`xyz00-hs_example.de`. Wir empfehlen aus Sicherheitsgründen für jede
Domain einen eigenen Domain-Admin anzulegen. In
`kap-hsscript-skript`{.interpreted-text role="numref"} erfahren Sie, wie
Sie mit Hilfe eines Skripts die Anlage neuer Domains und neuer
Domain-Admins vereinfachen können.
::: admonition
Beachten Sie die Namenskonvention
Alle Benutzernamen beginnen mit dem Kürzel für das Paket, in unserem
Beispiel `xyz00`. Ergänzungen können mit einem Bindestrich abgetrennt
werden wie zum Beispiel in dem Benutzernamen für den Domain-Admin
`xyz00-doms`. Es ist nur ein Bindestrich zulässig. Weitere gültige
Trennzeichen zur Verbesserung der Lesbarkeit sind ein Punkt und der
Unterstrich. Es sind also folgende Benutzernamen für Domain-Benutzer
möglich: `xyz00-example_de`, `xyz00-example.de` oder
`xyz00-hs_example.de`.
:::
Durch die Anlage eines Domain-Admins erzeugen Sie einen Unix-Benutzer
mit einer eigenen Verzeichnisstruktur in Ihrem Webpaket. Die Arbeit mit
verschiedenen Benutzern dient der Sicherheit. Falls durch eine
Sicherheitslücke in einer Website jemand Zugang zum Verzeichnis des
Domain-Admins erhält, kann er nur dort Schaden anrichten und nicht im
gesamten Web-Paket, das von dem Paket-Admin verwaltet wird. Lesen Sie
mehr dazu in `kap-benutzerrollen`{.interpreted-text role="numref"}.
Es ist möglich einem Domain-Admin mehrere Domains zuzuordnen. Die Ordner
und Dateien für jede einzelne Domain befinden sich dann alle im
Heimverzeichnis des Domain-Admins im Ordner `/doms`{.interpreted-text
role="file"}. Dieses Vorgehen, das der leichteren Übersicht dient,
reduziert die Sicherheit, da mehrere Domains mit einem Unix-Benutzer
betrieben werden. Wenn Sie unsicher sind, welches Vorgehen Sie bei der
Organisation Ihrer Websites nutzen sollen, fragen Sie den Service.
In `fig-domain-admin-ausgefuellt`{.interpreted-text role="numref"} sehen
Sie ein Beispiel mit dem Benutzernamen `xyz00-doms`.
::: {#fig-domain-admin-ausgefuellt}
![Das ausgefüllte Formular zur Anlage eines
Benutzers.](../images/hsadmin-da-anlegen-2.*){width="100.0%"}
:::
Bei der Anlage eines Benutzers müssen Sie folgendes berücksichtigen:
Benutzer/Postfach
:   Der Benutzername muss immer mit dem Kürzel des Paket-Admins
    beginnen. Wenn Sie als Paket-Admin in HSAdmin eingeloggt sind, ist
    das Kürzel schon im Formular eingetragen.
Passwort
:   HSAdmin erzwingt ein Passwort mit einer Mindestlänge von 6 Zeichen.
    Es muss aus Kleinbuchstaben, Großbuchstaben, Ziffern und
    Sonderzeichen bestehen, wobei Zeichen aus mindestens drei dieser
    Gruppen verwendet werden müssen.
Kurzbeschreibung
:   In der Kurzbeschreibung können Sie Informationen vermerken, die
    Ihnen helfen, den Benutzer zuzuordnen.
Shell-/Kommando-Interpreter
:   Domain-Admins benötigen eine Shell. Wählen Sie deshalb zum Beispiel
    `/bin/bash`{.interpreted-text role="command"} aus.
Quota (Soft-Limit)
:   Hiermit können Sie dem Benutzer und seinen Daten ein
    Festplatten-Quota zuteilen. Man unterscheidet das Soft- und das
    Hard-Limit. Lesen Sie mehr dazu in `kap-quota`{.interpreted-text
    role="numref"}. Wenn Sie nichts eintragen, wird kein gesondertes
    Quota für den Benutzer gesetzt. Lassen Sie die beiden Felder im
    Zweifelsfall leer.
Quota (Hard-Limit)
:   Das Hard-Limit des Quota.
Bestätigen Sie die Anlage mit `OK`{.interpreted-text role="guilabel"}.
Nach der Anlage erscheint der neue Benutzer in der Liste des Menüs
`Benutzer/Postfach`{.interpreted-text role="guilabel"}.
::: {#fig-domain-admin-angelegt}
![Der neue Domain-Admin ist
angelegt.](../images/hsadmin-da-anlegen-3.*){width="100.0%"}
:::
::: admonition
Best Practice
Legen Sie für jede Domain einen gesonderten Domain-Admin an. Nutzen Sie
dabei zum Beispiel das Namensschema `xyz00-hs_example.de`.
:::
```{=latex}
\clearpage
```
source/einstieg/datenbank/index.md
New file
@@ -0,0 +1,145 @@
# Datenbank einrichten
Wenn Sie für eine Webanwendung eine MySQL- oder PostgreSQL-Datenbank
benötigen, können Sie die Datenbank und den Datenbanknutzer in
`HSAdmin`{.interpreted-text role="command"} anlegen.
::: hint
::: title
Hint
:::
Aus Lizenzgründen pflegt Hostsharing die von MySQL abgespaltene
Open-Source-Datenbank MariaDB. Das Benutzer-Interface von HSAdmin
spricht noch von MySQL. Der Einfachheit halber sprechen wir in dieser
Anleitung deshalb noch von MySQL.
:::
Beim Anlegen einer Datenbank ist die Reihenfolge entscheidend:
1.  Zunächst den Datenbanknutzer anlegen, den Verwalter der jeweiligen
    Datenbank
2.  die Datenbank anlegen.
::: only
html
## Videoanleitung
:::
```{=html}
<video width="640" height="480" controls src="https://media.hostsharing.net/Datenbank-anlegen.webm"></video>
```
### Datenbanknutzer anlegen
Melden Sie sich mit dem Paket-Admin (`xyz00`) bei HSAdmin unter
<https://admin.hostsharing.net> an und gehen Sie in den Bereich
`Web-Paket`{.interpreted-text role="guilabel"}.
Klicken Sie das Menü `MySQL-Benutzer`{.interpreted-text role="guilabel"}
an. Es wird die Liste der MySQL-Benutzer angezeigt, die wie
`fig-hsadmin-mysql-benutzer`{.interpreted-text role="numref"} zeigt,
noch leer ist.
::: {#fig-hsadmin-mysql-benutzer}
![Das Menü `MySQL-Benutzer`{.interpreted-text role="guilabel"} mit der
leeren Liste der
Datenbanknutzer.](../images/hsadmin-mysql-benutzer.*){width="100.0%"}
:::
Klicken Sie auf das Plus-Icon `Neuen Eintrag anlegen`{.interpreted-text
role="guilabel"}. Es erscheint folgende Eingabemaske:
::: {#fig-hsadmin-mysql-benutzer-anlegen}
![Das Menü zum Anlegen eines
Datenbanknutzers.](../images/hsadmin-mysql-benutzer-anlegen.*){width="100.0%"}
:::
Die Felder werden wie folgt ausgefüllt:
MySQL-Benutzer:
:   xyz00_dbuser
Passwort:
:   \*\*\*\*
Merken Sie sich den Benutzernamen und das Passwort, da Sie beides bei
der Konfiguration Ihrer Webanwendung benötigen.
Mit dem Button `OK`{.interpreted-text role="guilabel"} wird der Eintrag
gespeichert.
Der neue Datenbanknutzer erscheint nun in der Liste des Menüs
`MySQL-Benutzer`{.interpreted-text role="guilabel"}.
::: {#fig-hsadmin-mysql-benutzer-angelegt}
![Der neu angelegte Datenbanknutzer erscheint in der
Liste.](../images/hsadmin-mysql-benutzer-angelegt.*){width="100.0%"}
:::
::: attention
::: title
Attention
:::
Beachten Sie, dass der Name eines Datenbankbenutzers immer mit dem
Paketnamen (in unserem Beispiel `xyz00`) gefolgt von einem Unterstrich
beginnen muss. Es darf kein Minuszeichen nach dem Paketnamen benutzt
werden. Zusammen mit den Zeichen danach darf der Name des
Datenbankbenutzers höchstens 16 Zeichen lang sein, zum Beispiel
`xyz00_wordpress` (15 Zeichen).
:::
### Datenbank anlegen
Nun können Sie die Datenbank für Ihre Webanwendung anlegen. Gehen Sie in
das Menü `MySQL-Datenbank`{.interpreted-text role="guilabel"}. Die Liste
der Datenbanken ist noch leer. Klicken Sie auf das Plus-Icon
`Neuen Eintrag anlegen`{.interpreted-text role="guilabel"}.
Es öffnet sich das Menü zum Anlegen einer Datenbank.
::: {#fig-hsadmin-mysql-db-anlegen}
![Das Menü zum Anlegen einer
Datenbank.](../images/hsadmin-mysql-db-anlegen.*){width="100.0%"}
:::
Die Felder hier:
MySQL-Datenbank
:   xyz00_dbmysql
MySQL-Benutzer
:   xyz00_dbuser
Zeichenkodierung
:   UTF8
Mit dem Button `OK`{.interpreted-text role="guilabel"} wird der Eintrag
gespeichert. Die neue Datenbank erscheint in der Liste der Datenbanken.
::: attention
::: title
Attention
:::
Beachten Sie, dass der Name einer Datenbank immer mit dem Paketnamen (in
unserem Beispiel `xyz00`) gefolgt von einem Unterstrich beginnen muss.
Es darf kein Minuszeichen nach dem Paketnamen benutzt werden. Zusammen
mit den Zeichen danach darf der Name der Datenbank höchstens 16 Zeichen
lang sein, zum Beispiel `xyz00_wpressdb` (14 Zeichen).
:::
::: {#fig-hsadmin-mysql-db-angelegt}
![Die neue Datenbank erscheint in der
Liste.](../images/hsadmin-mysql-db-angelegt.*){width="100.0%"}
:::
```{=latex}
\clearpage
```
source/einstieg/domain/index.md
New file
@@ -0,0 +1,117 @@
# Domain anlegen und bestellen
Eine Domain wird in zwei Schritten angelegt:
1.  Die Domain im Web-Paket aufschalten
2.  Die Domain im Domainbestellsystem bestellen
Aus technischen Gründen ist es sinnvoll, diese Reihenfolge einzuhalten.
Die automatische Konnektierung einer neu bestellten Domain erfolgt nur,
wenn sie in HSAdmin bereits angelegt ist.
## Domain in HSAdmin anlegen {#kap-hsadmin-domain-anlegen}
Melden Sie sich in HSAdmin als `Paket-Admin`{.interpreted-text
role="role"} (im Beispiel: `xyz00`) an. Wechseln Sie in den Bereich
`Web-Paket`{.interpreted-text role="guilabel"}, wählen Sie Ihr Web-Paket
aus und öffnen Sie das Menü `Domain`{.interpreted-text role="guilabel"}.
Die Liste (siehe `fig-hsadmin-domain-anlegen-0`{.interpreted-text
role="numref"}) ist leer, da noch keine Domain angelegt wurde.
::: {#fig-hsadmin-domain-anlegen-0}
![Das leere Menü mit den
Domains.](../images/hsadmin-domain-anlegen-0.*){width="100.0%"}
:::
Klicken Sie auf das Plus-Symbol
`Neuen Eintrag anlegen`{.interpreted-text role="guilabel"} und es öffnet
sich das in `fig-hsadmin-domain-anlegen-1`{.interpreted-text
role="numref"} gezeigt Menü.
::: {#fig-hsadmin-domain-anlegen-1}
![Das Menü zur Aufschaltung einer Domain bei
Hostsharing.](../images/hsadmin-domain-anlegen-1.*){width="100.0%"}
:::
Tragen Sie hier den Namen der Domain ein, die Sie anlegen wollen und
wählen Sie den `Domain-Admin`{.interpreted-text role="role"} aus, in
dessen Benutzerverzeichnis die Verzeichnisse der Domain angelegt werden
sollen.
::: attention
::: title
Attention
:::
In diesem Menü ist der Benutzer, mit dem Sie sich eingeloggt haben,
vorausgewählt. Wenn dies der Paket-Admin (z.B. `xyz00`) ist, wählen Sie
den gewünschten Domain-Admin aus.
:::
Bestätigen Sie die Eingaben mit `OK`{.interpreted-text role="guilabel"}.
Damit ist die Domain in dem Web-Paket `xyz00` technisch angelegt. Sie
erscheint in der Liste im Menü `Domain`{.interpreted-text
role="guilabel"}.
::: {#fig-hsadmin-domain-anlegen-2}
![Die neu angelegte Domain erscheint in der
Liste.](../images/hsadmin-domain-anlegen-2.*){width="100.0%"}
:::
Wenn Sie die Domain auswählen und das Editier-Symbol
`Ausgewählten Eintrag bearbeiten`{.interpreted-text role="guilabel"}
anklicken, können Sie die eben erstellte Domain bearbeiten.
`fig-hsadmin-domain-bearbeiten`{.interpreted-text role="numref"} zeigt
das Bearbeitungsmenü.
::: {#fig-hsadmin-domain-bearbeiten}
![Das Bearbeitungsmenü einer
Domain.](../images/hsadmin-domain-bearbeiten.*){width="100.0%"}
:::
Das Menü zeigt den Domainnamen, den Domain-Admin, das Erstellungsdatum,
die Domain-Optionen (siehe `kap-domain-optionen`{.interpreted-text
role="numref"}) und die gültigen Subdomains (siehe
`kap-ref-subdomains`{.interpreted-text role="numref"}). Ändern Sie hier
zunächst nichts.
Wenn Sie im Feld `gültige Subdomains`{.interpreted-text role="guilabel"}
ein `*` als Wildcard eintragen, können Sie sehr einfach leichtgewichtige
Subdomains erzeugen. Was innerhalb von HSAdmin als leichtgewichtige
Subdomain bezeichnet wird, erfahren Sie in
`kap-ref-subdomains`{.interpreted-text role="numref"}
::: only
html
### Videoanleitung
:::
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Domain-einrichten.webm"></video>
```
## Domain im Domainbestellsystem bestellen
Anschließend kann die Domain hs-example.de unter dem Link
<https://www.domain-bestellsystem.de> bestellt werden. Die Login-Daten
dafür wurden Ihnen auf einem separatem Weg mitgeteilt.
## Domain löschen
Beim Löschen einer Domain gehen Sie am besten folgendermaßen vor.
1.  Die Domain im Domainbestellsystem löschen
2.  Die Domain in HSAdmin löschen
Es ist die umgekehrte Reihenfolge wie bei der Bestellung einer Domain.
Wenn Sie eine Domain an einen anderen Domainverwalter übertragen wollen,
müssen Sie die Domain im Domainbestellsystem *in den Transfer geben*.
Löschen Sie die Domain in HSAdmin erst, wenn die Löschung der Domain
erfolgt ist bzw. wenn die Domain transferiert und bei einem anderen
Hoster aufgeschaltet wurde.
```{=latex}
\clearpage
```
source/einstieg/email/index.md
New file
@@ -0,0 +1,271 @@
# E-Mail einrichten
In diesem Kapitel werden zwei E-Mail-Adressen für eine neue Domain
angelegt:
-   Die erste E-Mail-Adresse wird einem Postfach im Webpaket zugeordnet
-   Die zweite E-Mail-Adresse wird einer externen E-Mail-Adresse
    zugeordnet.
## E-Mail-Adresse für Postfach im Webpaket {#kap-postfach-anlegen}
Wir werden zunächst ein neues Postfach für Peter Mustermann anlegen und
dieses Postfach danach einer neu eingerichteten E-Mail-Adresse zuordnen.
### Neuen E-Mail-Benutzer anlegen
Melden Sie sich als `Paket-Admin`{.interpreted-text role="role"} (in
unserem Beispiel `xyz00`) bei HSAdmin an. Klicken Sie auf das Webpaket,
in dem Sie einen neuen E-Mail-Benutzer anlegen möchten, in unserem
Beispiel ist das `xyz00`, und gehen Sie dann in den Bereich
`Benutzer/Postfach`{.interpreted-text role="guilabel"}. Klicken Sie auf
das Plussymbol für `Neuen Eintrag anlegen`{.interpreted-text
role="guilabel"}.
Tragen Sie anschließend die Zugangsdaten des neuen E-Mail-Benutzers ein.
In unserem Beispiel in
`fig-hsadmin-pa-postfach-anlegen`{.interpreted-text role="numref"}
lautet der Benutzernamen `xyz00-mail_pm`.
::: {#fig-hsadmin-pa-postfach-anlegen}
![Die Angaben für ein neues
Postfach.](../images/hsadmin-pa-postfach-anlegen.*){width="100.0%"}
:::
E-Mail-Benutzer bekommen keine Shell zugeordnet. Stattdessen wird beim
Einloggen das Programm `/usr/bin/passwd`{.interpreted-text role="file"}
gestartet. Speichern Sie den neuen Eintrag mit `OK`{.interpreted-text
role="guilabel"}. Das neue Konto erscheint nun in der Liste der
Benutzer.
::: {#fig-hsadmin-pa-postfach-angelegt}
![Das Postfach für Peter Mustermann erscheint in der
Liste.](../images/hsadmin-pa-postfach-angelegt.*){width="100.0%"}
:::
### Neues Postfach einer neuen E-Mail-Adresse zuordnen
Wir werden nun für Peter Mustermann eine neue E-Mail-Adresse anlegen und
das neue Postfach dieser Adresse zuordnen.
Melden Sie sich als `Paket-Admin`{.interpreted-text role="role"} (in
unserem Beispiel `xyz00`) bei HSAdmin an. Gehen Sie nach dem Einloggen
in den Bereich `Domain`{.interpreted-text role="guilabel"}, in dem Ihre
Domains aufgeführt sind.
Wählen Sie die Domain aus, für die Sie eine E-Mail-Adresse einrichten
wollen. Im Hauptfenster werden die wesentlichen Informationen zur
ausgewählten Domain angezeigt (siehe (siehe
`fig-hsadmin-pa-domain-info`{.interpreted-text role="numref"})
::: {#fig-hsadmin-pa-domain-info}
![Die Informationen zur Domain werden
angezeigt](../images/hsadmin-pa-domain-info.*){width="100.0%"}
:::
Klicken Sie auf das Menü `E-Mail-Adresse`{.interpreted-text
role="guilabel"}, damit die E-Mail-Adressen angezeigt werden, die
bereits für die Domain eingerichtet wurden (siehe
`fig-hsadmin-pa-domain-emails`{.interpreted-text role="numref"}).
::: {#fig-hsadmin-pa-domain-emails}
![Die bereits angelegten
E-Mail-Adressen.](../images/hsadmin-pa-domain-emails.*){width="100.0%"}
:::
Drei E-Mail-Adressen werden automatisch angelegt, wenn Sie eine Domain
eingerichtet haben:
abuse
:   Das ist die Adresse, an die Meldungen bei missbräuchlicher
    Verwendung der Domain versendet werden. Die vollständige Adresse
    lautet in unserem Beispiel <abuse@hs-example.de>
postmaster
:   Das ist die Adresse derjenigen Person, die für die E-Mail-Postfächer
    und das E-Mail-System der Domain verantwortlich ist.
webmaster
:   Das ist die Adresse des Webmasters, der für die Webauftritte unter
    der Domain technisch verantwortlich ist.
Alle E-Mails an diese Adressen werden in der Voreinstellung an das
Postfach des zuständigen `Domain-Admin`{.interpreted-text role="role"}
ausgeliefert.
Klicken Sie nun auf das `+`{.interpreted-text role="guilabel"}-Symbol,
damit sich das Menü zum Anlegen einer neuen E-Mail-Adresse öffnet.
::: {#fig-hsadmin-email-postfach-anlegen}
![Anlegen einer E-Mail-Adresse mit
Postfach](../images/hsadmin-email-postfach-anlegen-1.*){width="100.0%"}
:::
Die Felder im Einzelnen:
lokaler Teil
:   der Teil der E-Mail-Adresse vor dem @-Zeichen, in unserem Beispiel
    `pm`.
Subdomain
:   bleibt hier leer, da eine E-Mail-Adresse für die Hauptdomain
    angelegt wird.
Domain
:   Hier erscheint die Domain, für die die Adresse eingerichtet wird. In
    unserem Fall: hs-example.de
Postfach/Weiterleitung
:   In den Auswahlmenüs können Sie E-Mail-Adresse oder Postfach
    auswählen. Im Beispiel leiten wir die E-Mails an das Postfach des
    Domain-Admin `xyz00-mail_pm`
Bestätigen mit dem Button `OK`{.interpreted-text role="guilabel"}.
Die neue E-Mail-Adresse wird nun in der Liste aufgeführt.
::: {#fig-hsadmin-email-postfach-angelegt}
![Die neue E-Mail-Adresse ist angelegt und erscheint in der
Liste](../images/hsadmin-email-postfach-angelegt.*){width="100.0%"}
:::
Peter Mustermann ist nun unter der Adresse `pm@hs-example.de` erreichbar
und kann die Mails mit seinem neuen E-Mail-Konto abrufen.
In `kap-emails-lesen`{.interpreted-text role="numref"} wird beschrieben,
wie Peter Mustermann seine Mails über ein Webinterface oder mit Hilfe
eines E-Mail-Programms lesen kann.
```{=latex}
\clearpage
```
::: only
html
### Videoanleitung
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/E-Mail-Adresse-und-Postfach-einrichten.webm"></video>
```
:::
## E-Mail-Adresse mit Weiterleitung an externe Mail-Adresse
Um eine weitere E-Mail-Adresse anzulegen die E-Mails an eine *externe*
E-Mail-Adresse leitet, wird in der Eingabemaske bei:
Postfach/Weiterleitung: *E-Mail-Adresse* ausgewählt und dahinter dann
die externe Mail-Adresse, hier <peter@mustermann.de>, eingetragen.
::: {#fig-hsadmin-email-weiterleitung-1}
![Eingehende E-Mails sollen an eine externe E-Mail-Adresse
weitergeleitet
werden.](../images/hsadmin-email-weiterleitung-anlegen.*){width="100.0%"}
:::
Liste der angelegten E-Mail-Adressen:
::: {#fig-hsadmin-email-weiterleitung-2}
![Auch die zweite neue E-Mail-Adresse erscheint in der
Liste](../images/hsadmin-email-weiterleitung-angelegt.*){width="100.0%"}
:::
```{=latex}
\clearpage
```
::: todo
MOS: Die erste E-Mail-Adresse <pm@hs-example.de> steht beim Screenshot
nicht mehr in der Liste (sondern <info@hs-example.de>)
:::
## E-Mail-Alias einrichten {#kap-email-alias}
Wenn Sie mehrere Domains mit jeweils einem Domain-Admin verwalten, so
landen E-Mails an die zwingend vorgegebenen Systemempfänger `abuse@`,
`postmaster@` und `webmaster@` in der Voreinstellung im Postfach des
jeweiligen Domain-Admin. All diese Postfächer regelmäßig zu
kontrollieren, ist aufwändig. Deshalb gibt es bei Hostsharing die
Möglichkeit E-Mail-Aliase einzurichten. Da ein E-Mail-Alias bei der
Mailzustellung bevorzugt behandelt wird, können Sie unter dem Namen der
Domain-Admins ein E-Mail-Alias einrichten und zum Beispiel an das
Postfach des Paket-Admins weiterleiten oder die E-Mail-Adresse des
Verantwortlichen.
Rufen Sie dazu HSAdmin unter `https://admin.hostsharing.net` auf und
gehen Sie in den Bereich `Web-Paket`{.interpreted-text role="guilabel"}.
Wählen Sie das entsprechende Web-Paket aus und öffnen Sie, wie in
`fig-hsadmin-email-alias-1`{.interpreted-text role="numref"} gezeigt,
den Reiter `E-Mail-Alias`{.interpreted-text role="guilabel"}.
::: {#fig-hsadmin-email-alias-1}
![Der Reiter E-Mail-Alias in
HSAdmin](../images/hsadmin-email-alias-1.*){width="100.0%"}
:::
Klicken Sie auf das Pluszeichen, um ein neues E-Mail-Alias hinzuzufügen.
Es öffnet sich das in `fig-hsadmin-email-alias-2`{.interpreted-text
role="numref"} gezeigte Formular. Das Kürzel für das Web-Paket ist
bereits in das Formularfeld eingetragen.
::: {#fig-hsadmin-email-alias-2}
![Das Formular zum Hinzufügen eines neuen Alias. Das Paketkürzel ist
bereits eingetragen.](../images/hsadmin-email-alias-2.*){width="100.0%"}
:::
Sie können eine E-Mail-Adresse angeben wie in
`fig-hsadmin-email-alias-3`{.interpreted-text role="numref"}.
::: {#fig-hsadmin-email-alias-3}
![Umleitung an eine
E-Mail-Adresse](../images/hsadmin-email-alias-3.*){width="100.0%"}
:::
Sie können aber auch das Postfach eines anderen Benutzers eintragen; in
`fig-hsadmin-email-alias-4`{.interpreted-text role="numref"}
beispielsweise das Postfach des Paket-Admins. Das Formularfeld bietet
Ihnen alle verfügbaren Postfächer zur Auswahl an.
::: {#fig-hsadmin-email-alias-4}
![Umleitung an ein
Postfach](../images/hsadmin-email-alias-4.*){width="100.0%"}
:::
Und zu guter Letzt können Sie auch an ein anderes E-Mail-Alias umleiten.
Bestätigen Sie Ihre Eingabe mit `OK`{.interpreted-text role="guilabel"}.
Das neue Alias erscheint anschließend in der Liste (siehe
`fig-hsadmin-email-alias-5`{.interpreted-text role="numref"}).
::: {#fig-hsadmin-email-alias-5}
![](../images/hsadmin-email-alias-5.*)
:::
Gehen Sie beim Anlegen von E-Mail-Aliases systematisch vor, damit Sie in
komplexen Situationen nicht den Überblick verlieren. Leiten Sie E-Mails
an Domain-Admins beispielsweise immer an den Paket-Admin weiter oder an
denjenigen, der für die Domain verantwortlich ist. Das System ist sehr
flexibel, sodass Sie die Verantwortlichkeiten gut abbilden können und
auch für spezielle Wünsche Ihrer Benutzer immer eine gute Lösung finden.
::: admonition
Hinweis
Nutzen Sie E-Mail-Aliases möglichst nicht, um E-Mails, die an eine
Funktionsadresse wie `sekretariat@` oder `vertriebsteam@` geht, an
einzelne Benutzer weiterzuleiten. In diesem Fall ist es übersichtlicher,
wenn Sie bei der Einrichtung der E-Mail-Adresse gleich mehrere
Postfächer als Ziel angeben. Alternativ können Sie auch einen Benutzer
einrichten (zum Beispiel für das Sekretariat `xyz00-sek`) und im
Heimverzeichnis des Benutzers eine `.forward`{.interpreted-text
role="file"}-Datei pflegen, die die E-Mail-Adresse aller Empfänger
enthält.
:::
```{=latex}
\clearpage
```
source/einstieg/index.md
New file
@@ -0,0 +1,23 @@
# Einführung in HSAdmin {#kap-hsadmin-einstieg}
![image](../images/header/nachhaltigkeit.png)
Für einen erfolgreichen Start mit Hostsharing wird hier schrittweise
gezeigt, wie ein Benutzer eine Domain mit E-Mail-Adresse und eine
Datenbank in einem neuen Web-Paket angelegt wird. Die Einrichtung
erfolgt mit dem Webfrontend von `HSAdmin`{.interpreted-text
role="program"}. Freunde der Konsole können alle Schritte mit der
CLI-Variante `hsscript`{.interpreted-text role="program"} erledigen.
::: only
html
## Rundgang durch HSAdmin
:::
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Erster-Rundgang-HSAdmin.webm"></video>
```
::: {.toctree maxdepth="1"}
passwort benutzer-anlegen domain webspace ssh-key email datenbank
:::
source/einstieg/passwort/index.md
New file
@@ -0,0 +1,127 @@
# Erstes Einloggen und Änderung des Passworts {#kap-erstes-einloggen}
Wir gehen im Folgenden davon aus, dass der Service für Sie ein Web-Paket
eingerichtet hat und Sie per E-Mail die Zugangsdaten bekommen haben. In
der Regel wird der Service Ihnen den Benutzernamen des
`Paket-Admin`{.interpreted-text role="role"} zusenden. Sie erkennen dies
daran, dass der Benutzername sich aus der Mitgliederkennung und einer
Zahl zusammensetzt. In unserem Beispiel ist das `xyz00`.
::: hint
::: title
Hint
:::
Sie werden auf der Hostsharing-Plattform mit verschiedenen Benutzernamen
arbeiten, von denen einige genau definierte Rollen auf der Plattform
ausüben. Ausführlich werden die Benutzerrollen in
`kap-benutzerrollen`{.interpreted-text role="numref"} beschrieben.
:::
## Änderung des Passworts
Zunächst sollten Sie das Passwort, das Sie vom Service erhalten haben,
ändern. Rufen Sie in Ihrem Browser <https://admin.hostsharing.net> auf,
um sich in `HSAdmin`{.interpreted-text role="program"} einzuloggen. Sie
sehen das in Abb. `fig-hsadmin-login-xyz00`{.interpreted-text
role="numref"} gezeigte Login-Fenster von HSAdmin.
::: {#fig-hsadmin-login-xyz00}
![Das Login-Fenster von
HSAdmin](../images/hsadmin-login-xyz00.*){width="70.0%"}
:::
Loggen Sie sich mit den Zugangsdaten ein, die Sie vom Service erhalten
haben.
Nach dem Einloggen werden Sie zu dem in Abb.
`fig-hsadmin-start-paketadmin`{.interpreted-text role="numref"}
dargestellten Startbildschirm von HSAdmin weitergeleitet.
::: {#fig-hsadmin-start-paketadmin}
![Der Startbildschirm von HSAdmin nach dem Einloggen als
Paket-Admin.](../images/hsadmin-start-paketadmin.*){width="100.0%"}
:::
In HSAdmin gibt es zwei Bereiche zwischen denen Sie hin- und
hernavigieren können:
Web-Paket
:   Hinter diesem Menü finden Sie alle Ihre Web-Pakete. In unserem
    Beispiel ist dies nur ein Web-Paket mit dem Namen `xyz00`. In diesem
    Menü können Sie Benutzer, Domains, Datenbanken und
    Datenbank-Benutzer anlegen sowie E-Mail-Aliase vergeben.
Domain
:   Unter diesem Menü verwalten Sie die E-Mail-Adressen in Ihren
    Domains. Eventuell ist hier bereits eine Beispiel-Domain
    eingerichtet.
Rechts oben sehen Sie einen Link mit der Bezeichnung `xyz00`. Dies ist
der Benutzername, mit dem Sie sich eingeloggt haben. Nach einem Klick
auf den Link öffnet sich das in Abb.
`fig-hsadmin-pa-bearbeiten`{.interpreted-text role="numref"} gezeigte
Bearbeitungsmenü für den Benutzer.
::: {#fig-hsadmin-pa-bearbeiten}
![Dialog zum Ändern des
Passworts](../images/hsadmin-pa-bearbeiten.*){width="100.0%"}
:::
Geben Sie ein neues Passwort ein und bestätigen Sie die Änderung mit
einem Klick auf OK.
::: only
html
### Videoanleitung
:::
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Passwort-des-Paketbenutzers-aendern.webm"></video>
```
## Einloggen mit dem Mitglieds-Account {#kap-einloggen-mitglied}
Eventuell hat Ihnen der Service auch die Zugangsdaten für einen
Benutzernamen mitgeteilt hat, der nur aus drei Buchstaben besteht. Es
handelt sich dabei um Ihren
`Mitglieds-Account <Mitglied>`{.interpreted-text role="role"}. Ändern
Sie auch in diesem Fall sofort das Passwort, indem Sie sich mit diesem
Benutzer einloggen, auf die Benutzerkennung rechts oben klicken und wie
im letzten Abschnitt beschrieben ein neues Passwort eingeben.
::: {#fig-hsadmin-mitglied-webpaket-benutzer}
![Der Begrüßungsbildschirm von HSAdmin, wenn Sie als Mitglied eingeloggt
sind.](../images/hsadmin-mitglied-start.*)
:::
Wenn Sie als Mitglied eingeloggt sind, ist das linke Navigationsmenü um
einen Eintrag erweitert:
Kunde/Mitglied
:   In diesem Menü finden Sie Ihre Mitgliedsdaten. Sie können hier zum
    Beispiel Ihre Anschrift oder Kontoverbindung ändern.
Wenn Sie als Mitglied eingeloggt sind, können Sie auch das Passwort des
Paket-Admin verändern. Gehen Sie dazu in den Bereich Web-Paket, wählen
Sie Ihr Web-Paket aus und gehen Sie im rechten Feld in das Menü
`Benutzer/Postfach`{.interpreted-text role="guilabel"}. Wählen Sie dort
den Paket-Admin `xyz00` aus.
::: {#fig-hsadmin-mitglied-webpaket-benutzer-auswaehlen}
![Der ausgewählte Paket-Admin ist farbig
hinterlegt.](../images/hsadmin-mitglied-webpaket-benutzer-auswaehlen.*){width="100.0%"}
:::
Klicken Sie in der Symbolleiste auf das Bearbeitungssymbol, sodass sich
das Menü öffnet, in dem Sie ein neues Passwort eingeben können.
::: {#fig-hsadmin-mitglied-webpaket-benutzer-passwort-aendern}
![Das Menü zur Bearbeitung eines
Benutzers.](../images/hsadmin-mitglied-webpaket-benutzer-passwort-aendern.*){width="100.0%"}
:::
Bestätigung mit dem `OK`{.interpreted-text role="guilabel"}-Button.
source/einstieg/ssh-key/index.md
New file
@@ -0,0 +1,42 @@
# Hochladen des SSH-Keys {#kap-ssh-key-hochladen}
Sie können sich ohne Eingabe eines Passworts als
`Domain-Admin`{.interpreted-text role="role"} einloggen, wenn Sie Ihren
öffentlichen SSH-Key in das Benutzerverzeichnis des Domain-Admins
hochladen.
Wenn Sie noch keinen SSH-Key haben, können Sie ihn unter Mac OS X und
Linux mit diesem Befehl in Ihrem Heimverzeichnis erzeugen:
``` console
$ ssh-keygen -b 4096
```
Der Befehl gibt eine Reihe von Meldungen aus. So werden Sie
beispielsweise aufgefordert eine Passphrase einzugeben. Dies ist das
Passwort, mit dem Sie Ihren SSH-Schlüssel beim Einsatz entsperren.
Wählen Sie eine Phrase, die Sie sich gut merken können, da Sie sie
häufig benötigen werden. Zur Sicherheit müssen Sie die Passphrase
zweimal eingeben. Anschließend informiert Sie das Programm, dass Ihr
geheimer Schlüssel in der Datei `~/.ssh/id_rsa`{.interpreted-text
role="file"} und ihr öffentlicher Schlüssel in der Datei
`~/.ssh/id_rsa.pub`{.interpreted-text role="file"} gespeichert wurden.
Nach der Erzeugung des Schlüssels können Sie sich das neue Verzeichnis
anschauen.
``` console
$ ls .ssh/
id_rsa  id_rsa.pub
```
Nun können Sie Ihren öffentlichen Schlüssel in das Heimverzeichnis des
Domain-Admin kopieren. Unter Linux und anderen Unix-Systemen geht dies
mit dem Befehl `ssh-copy-id`{.interpreted-text role="command"}:
``` console
$ ssh-copy-id -i ~/.ssh/id_rsa.pub xyz00-doms@xyz00.hostsharing.net
```
Um unter Windows einen SSH-Key zu erzeugen und hochzuladen, können Sie
das Programm [PuTTY](https://www.putty.org/) nutzen.
source/einstieg/webspace/index.md
New file
@@ -0,0 +1,216 @@
# Webspace einrichten
Ihre Webanwendungen -- im einfachsten Fall statische HTML-Seiten --
richten Sie in dem Heimverzeichnis des jeweiligen
`Domain-Admin`{.interpreted-text role="role"} ein.
Loggen Sie sich dazu mit Hilfe von `ssh`{.interpreted-text
role="command"} ein:
``` console
$ ssh xyz00-doms@xyz00.hostsharing.net
```
Sie erreichen alle Benutzerverzeichnisse über die Adresse des jeweiligen
Pakets. In unserem Beispiel ist das
`xyz00.hostsharing.net`{.interpreted-text role="file"}. Nach dem
Einloggen finden Sie die im nächsten Abschnitt beschriebene
Ordnerstruktur vor.
## Ordnerstruktur {#kap-einstieg-ordnerstruktur}
Die exemplarische Struktur des Home-Verzeichnisses eines
`Domain-Admin`{.interpreted-text role="role"} sieht folgendermaßen aus:
    ├── doms
    │   ├── hs-example.de
    │   │   ├── app
    │   │   ├── app-ssl
    │   │   ├── cgi
    │   │   ├── cgi-ssl
    │   │   ├── etc
    │   │   │   └── pri.hs-example.de
    │   │   ├── fastcgi
    │   │   │   └── phpstub
    │   │   ├── fastcgi-ssl
    │   │   │   └── phpstub
    │   │   ├── htdocs
    │   │   │   └── .htaccess
    │   │   ├── htdocs-ssl
    │   │   │   └── .htaccess
    │   │   ├── subs
    │   │   │   ├── www
    │   │   │   │   └── index.html
    │   │   │   └── example
    │   │   ├── subs-ssl
    │   │   │   └── www
    │   │   │       └── index.html
    │   │   └── var
    │   └── domain2.tld
    │       ├── app
    │       └── …
    ├── etc
    │   └── config.ini
    └── Maildir
`~/doms`{.interpreted-text role="file"}
:   Alle dem Domain-Admin zugewiesenen Domains liegen im Verzeichnis
    `~/doms`{.interpreted-text role="file"}.
`~/doms/hs-example.de`{.interpreted-text role="file"}
:   `hs-example.de` die Beispiel-Domain, für die die Verzeichnisse von
    HSAdmin automatisch angelegt wurden.
`~/doms/hs-example.de/app`{.interpreted-text role="file"}
:   Dieses Verzeichnis ist als `PassengerAppRoot` des
    Apache-Webserver-Moduls [Phusion
    Passenger](https://www.phusionpassenger.com/) konfiguriert.
`~/doms/hs-example.de/app-ssl`{.interpreted-text role="file"}
:   Auch dieses Verzeichnis ist als `PassengerAppRoot` des
    Apache-Webserver-Moduls konfiguriert. Es wird für https-Zugriffe
    genutzt.
`~/doms/hs-example.de/cgi`{.interpreted-text role="file"}
:   Dies ist das Basisverzeichnis für CGI-Skripte. Ein Alias bildet
    HTTP-Requests auf `http://hs-example.de/cgi-bin/` auf dieses
    Verzeichnisses ab.
`~/doms/hs-example.de/cgi-ssl`{.interpreted-text role="file"}
:   Analog zu `~/doms/hs-example.de/cgi`{.interpreted-text role="file"}
    ist dies das Basisverzeichnis für CGI-Skripte beim Zugriff via
    https.
`~/doms/hs-example.de/etc`{.interpreted-text role="file"}
:   Dieses Verzeichnis enthält ggf. das Zonefile, mit dem sich der
    Nameserver [BIND](http://de.wikipedia.org/wiki/BIND) konfigurieren
    lässt
`~/doms/hs-example.de/etc/pri.hs-example.de`{.interpreted-text role="file"}
:   Mit dieser Datei können Sie eine Zonendatei für Ihre Domain selbst
    verwalten. Damit können z.B. einzelne Subdomains auf andere Server
    umgeleitet oder eigene Mailserver angesprochen werden.
`~/doms/hs-example.de/fastcgi`{.interpreted-text role="file"}
:   Dies ist das Basisverzeichnis für FastCGI-Skripte. Ein Alias bildet
    HTTP-Requests auf `http://hs-example.de/fastcgi-bin/` auf dieses
    Verzeichnis ab.
`~/doms/hs-example.de/fastcgi-ssl`{.interpreted-text role="file"}
:   Analog zu `~/doms/hs-example.de/fastcgi`{.interpreted-text
    role="file"} ist dies das Basisverzeichnis für FastCGI-Skripte bei
    https-Zugriffen. Ein Alias bildet HTTP-Requests auf
    `https://hs-example.de/fastcgi-bin/` auf dieses Verzeichnis ab.
`~/doms/hs-example.de/htdocs`{.interpreted-text role="file"}
:   Dieses Verzeichnis ist als `DocumentRoot` des Apache Webserver
    konfiguriert. Es dient auch zur Aufnahme statischer Inhalte im
    Zusammenhang mit der Nutzung von Phusion Passenger zur Auslieferung
    der statischen Dateien.
`~/doms/hs-example.de/htdocs/.htaccess`{.interpreted-text role="file"}
:   In der Standardkonfiguration enthält diese Datei die Weiterleitung
    auf die `www`-Subdomain:
        Redirect permanent / http://www.hs-example.de/
    Die verwendeten Regeln werden auf **alle** Subdomains von
    `hs-example.de` angewendet. In der `.htaccess` können
    -   eigene Fehlerseiten definiert,
    -   MIME-Typen zugewiesen,
    -   Passwortschutz eingerichtet,
    -   Weiterleitungen durchgeführt werden.
`~/doms/hs-example.de/htdocs-ssl`{.interpreted-text role="file"}
:   Analog zu `~/doms/hs-example.de/htdocs`{.interpreted-text
    role="file"} ist dieses Verzeichnis als `DocumentRoot` des Apache
    Webserver für Zugriffe via https konfiguriert.
`~/doms/hs-example.de/subs`{.interpreted-text role="file"}
:   Dieses Verzeichnis enthält alle Subdomains. Hier findet sich auch
    die Subdomain *www.hs-example.de*.
`~/doms/hs-example.de/subs/example`{.interpreted-text role="file"}
:   Dies ist ein Beispiel für eine Subdomain, die Sie einfach selbst
    anlegen können. Sie müssen hierzu nur im Verzeichnis
    `subs`{.interpreted-text role="file"} ein Verzeichnis mit dem Namen
    der gewünschten Subdomain anlegen und anschließend die Dateien in
    das Verzeichnis übertragen.
`~/doms/hs-example.de/subs/www`{.interpreted-text role="file"}
:   Dieses Verzeichnis wird automatisch angelegt und üblicherweise vom
    Webserver angesprochen, wenn keine Subdomain explizit genannt wird.
    Die Adresse `http://hs-example.de` verweist üblicherweise auf
    `http://www.hs-example.de`.
`~/doms/hs-example.de/subs-ssl`{.interpreted-text role="file"}
:   Analog zu `~/doms/hs-example.de/subs`{.interpreted-text role="file"}
    enthält dieses Verzeichnis alle Subdomains auf die via https
    zugegriffen wird.
`~/doms/hs-example.de/var`{.interpreted-text role="file"}
:   In diesem Verzeichnis werden in der Nacht die Log-Dateien mit den
    Zugriffen auf die Domain in gepackter Form bereitgestellt, wenn dies
    in `/home/pacs/xyz00/etc/config.ini` entsprechend angegeben ist.
## Zugangsdaten und Einstellungen
Sie können Dateien mit einem FTP-Programm wie
`FileZilla`{.interpreted-text role="program"},
`WinSCP`{.interpreted-text role="program"} oder `scp`{.interpreted-text
role="command"} in das Web-Paket kopieren. Sie benötigen dazu die
gleichen Zugangsdaten wie beim Einloggen via `ssh`{.interpreted-text
role="command"}.
Server:
:   xyz00.hostsharing.net
Benutzer:
:   xyz00-doms
Passwort:
:   PASSWORT
![Eingabe der Zugangsdaten in
Filezilla.](../images/ftp-filezilla.jpg){width="70.0%"}
Wechseln Sie in den Ordner
`~/doms/hs-example.de/subs/www`{.interpreted-text role="file"}, um zum
Beispiel statische Webseiten hochzuladen.
![Wechsel in das Verzeichnis
`www`.](../images/ftp-filezilla-www.jpg){width="70.0%"}
Auf der Kommandozeile geben Sie folgende Befehle ein:
``` console
$ cd ~/website-dateien
$ scp -r . xyz00-doms@xyz00.hostsharing.net:/doms/hs-example.de/subs-ssl/www
```
Die Dateien in dem lokalen Ordner `website-dateien`{.interpreted-text
role="file"} werden dadurch rekursiv in das Verzeichnis
`~/doms/hs-example.de/subs-ssl/www`{.interpreted-text role="file"} des
Domain-Admin kopiert.
source/glossar.md
New file
@@ -0,0 +1,126 @@
# Glossar {#kap-glossar}
::: glossary
sorted
:
```{=html}
<!-- -->
```
SCP
:   Secure CoPy (Abk. SCP) ist ein ein Programm zur verschlüsselten
    Übertragung von Daten.
Grace Period
:   Frist nach Überschreitung des Softlimit bis das Hardlimit der Quota
    erreicht ist.
Quota
:   Begrenzung des Speicherplatzes für einen Nutzer oder einer Gruppe.
.htaccess
:   Die Datei ist eine Konfigurationsdatei auf dem Webserver, in der
    verzeichnisbezogene Regeln aufgestellt werden können.
Benutzer
:   Benutzer sind Unix-, Shell-, FTP- und E-Mail-Nutzer.
Paket-Admin
:   Ein Benutzer, der Administrator eines Web-Pakets ist.
Domain-Admin
:   Ein Benutzer, dem mindestens eine Domain zugeordnet ist.
Domain-Bestell-System
:   Webfrontend zur Registrierung von Domains
Domain-Registrierung
:   Der Vorgang, um eine Domain zu registrieren.
Domain-Transfer
:   Umzug einer Domain zu einem anderen Registrar/Provider. Es wird der
    Eintrag in der Registry-Datenbank geändert, der definiert, welcher
    Registrar für diese Domain und deren Inhaber zuständig ist.
E-Mail-Alias
:   Virtuelle E-Mail-Empfänger für spezielle Aufgaben. Ein E-Mail-Alias
    ist eine E-Mail-Adresse zur Weiterleitung von E-Mails.
extern registrierte Domain/Sub-Domain
:   Die Domain oder Sub-Domain ist bei einem anderen Registrar/Provider
    registriert. Die damit verbundenen Dienste sollen von der
    Hostsharing eG erbracht werden.
Greylisting
:   Greylisting ist eine Form der Spam-Bekämpfung, bei der die erste
    E-Mail von unbekannten Absendern zunächst abgewiesen und erst nach
    einem weiteren Zustellversuch angenommen wird.
Hive
:   Bezeichnet eine virtuelle Maschine.
Host
:   Bezeichnet eine physikalische Maschine.
HSAdmin
:   Verwaltungstool der Hostsharing eG.
Mitgliedsaccount
:   Account zur Verwaltung der Mitgliedschaft in der Genossenschaft.
shell
:   Unix-Shell, Traditionelle Benutzerschnittstelle unter Unix oder
    ähnlichen Betriebssystemen.
Sub-Domain
:   Eine Sub-Domain ist eine Domain, die unterhalb einer anderen liegt
    (z.B. test.example.com und www.example.com liegen unerhalb von
    example.com)
SSI
:   Server Side Includes sind in Dokumente eingebettete Skript-Befehle,
    die auf einem Webserver ausgeführt werden, bevor das Dokument an den
    Client ausgeliefert wird.
xyz00
:   Synonym für ein Web-Paket.
xyz00\_
:   Synonym: Präfix für einen Datenbanknamen oder einen Datenbanknutzer.
xyz
:   Synonym für einen Mitgliedsnamen.
Vacation
:   In diesem Zusammenhang steht Vacation für eine Abwesenheit eines
    E-Mail-Empfängers. Ein gleichnamiges Programm kann
    Abwesenheitsbenachrichtigungen an die Versender von E-Mail an den
    abwesenden Empfänger versenden.
:::
source/index.md
New file
@@ -0,0 +1,58 @@
---
title: Handbuch für Anwender
author: Hostsharing eG
---
Die im Jahr 2000 gegründete Hostsharing eG ist eine Genossenschaft für
Webhosting und IT-Services. Wir verstehen uns als eine Gemeinschaft, die
im Interesse ihrer Mitglieder und mit den genossenschaftlichen
Prinzipien der Selbsthilfe, der Selbstverwaltung und der
Selbstverantwortung die folgenden Ziele verfolgt:
-   digitale Souveränität
-   digitale Nachhaltigkeit
-   digitale Exzellenz
Wir legen Wert auf Transparenz, Datensicherheit und Datenschutz.
Erfahren Sie mehr über Hostsharing auf <https://www.hostsharing.net>.
Dieses Handbuch richtet sich an Anwender, welche ihre Internetprojekte
bei der Hostsharing eG betreiben möchten. Es bietet einen Überblick über
die Infrastruktur, eine Einführung in deren Nutzung sowie eine
Beschreibung typischer Prozesse.
::: tip
::: title
Tip
:::
Sie können das Handbuch auch als PDF
[herunterladen](https://doc.hostsharing.net/Hostsharing-Benutzerhandbuch.pdf).
:::
Unser besonderer Dank gilt allen, die zu diesem Handbuch beigetragen
haben, insbesondere:
> -   Purodha Blissenbach
> -   Christian Günter
> -   Michael Hierweck
> -   Peter Hormanns
> -   Uwe Müller
> -   Veit Schiele
> -   Dominic Schlegel
> -   Lars Trebing
> -   Jan Ulrich Hasecke
::: {.toctree maxdepth="3" numbered=""}
einfuehrung/index einstieg/index mail/index referenz/index
plattform/index
glossar
:::
::: only
html
-   `genindex`{.interpreted-text role="ref"}
-   `modindex`{.interpreted-text role="ref"}
:::
source/mail/index.md
New file
@@ -0,0 +1,268 @@
# E-Mails senden und empfangen {#kap-emails-lesen}
Wenn Sie bei Hostsharing ein E-Mail-Postfach haben, können Sie auf die
Mailfunktionen entweder mit einem E-Mail-Programm wie Thunderbird
zugreifen oder Sie lesen, schreiben und verwalten Ihre E-Mails im
Webbrowser über das Webmail-Interface von Hostsharing. Wie Sie dabei
jeweils vorgehen, wird in den folgenden beiden Abschnitten erklärt.
Wir benutzen dabei die folgenden Zugangsdaten.
-   E-Mail-Adresse: <pm@hs-example.de>
-   Benutzername: xyz00-mail_pm
-   Passwort: \*\*\*\*
-   IMAP-Server: xyz00.hostsharing.net
-   SMTP-Server: xyz00.hostsharing.net
E-Mail-Adresse:
:   Das Anlegen einer E-Mail-Adresse und die Zuweisung zu einem Postfach
    wird in `kap-postfach-anlegen`{.interpreted-text role="numref"}
    beschrieben.
Benutzername:
:   Das Anlegen eines E-Mail-Benutzers wird ebenfalls in
    `kap-postfach-anlegen`{.interpreted-text role="numref"} erklärt.
Passwort:
:   Dies ist das Passwort, das dem E-Mail-Benutzer vergeben wird.
IMAP-Server:
:   Der Name des Mail-Eingangsservers ergibt sich aus dem Paketnamen. Es
    handelt sich immer um eine Subdomain der Domain `hostsharing.net`.
SMTP-Server:
:   Auch der Name des Ausgangsserver ergibt sich aus dem Paketnamen. Die
    Adresse ist mit der Adresse des IMAP-Servers identisch.
## Webmail einrichten
Eine besonders bequeme Art, E-Mails zu lesen und zu schreiben, ist das
Webinterface von Hostsharing. Hostsharing setzt dafür das
Open-Source-Programm [Roundcube Webmail](https://roundcube.net/) ein.
Sie benötigen zur Nutzung nur den Benutzernamen für das Postfach und das
entsprechende Passwort. Geben Sie im Webbrowser die Adresse
<https://webmail.hostsharing.net> ein. Wie in
`fig-webmail-login`{.interpreted-text role="numref"} gezeigt werden Sie
aufgefordert Ihren Benutzernamen und Ihr Passwort einzugeben.
::: {#fig-webmail-login}
![Login des
Webmail-Interface](../images/webmail-login.*){width="100.0%"}
:::
Wenn Sie sich das erste Mal mit dem Benutzernamen einloggen, werden Sie
aufgefordert, Ihre Absenderkennung zu vervollständigen. Vorausgefüllt
ist der Benutzername für das E-Mail-Konto (`xyz00-mail_pm`) sowie das
Postfach des E-Mail-Benutzers (`xyz00-mail_pm@xyz00.hostsharing.net`).
Beide Angaben werden Sie normalerweise so nicht nutzen wollen.
::: {#fig-webmail-individualisierung-1}
![Individualisierung des
Kontos](../images/webmail-individualisierung-1.*){width="100.0%"}
:::
Tragen Sie deshalb hier zum Beispiel Ihren Namen und die E-Mail-Adresse
ein, unter der Sie erreichbar sind. In unserem Beispiel sind dies, wie
in `fig-webmail-individualisierung-2`{.interpreted-text role="numref"}
gezeigt der Name ›Peter Mustermann‹ und die E-Mailadresse
›pm\@hs-example.de‹
::: {#fig-webmail-individualisierung-2}
![Individualisierung des
Kontos](../images/webmail-individualisierung-2.*){width="100.0%"}
:::
Nach der Vervollständigung steht Ihnen die Weboberfläche von Roundcube
zur Verfügung.
::: {#fig-webmail-oberflaeche}
![Die Benutzeroberfläche von
Webmail.](../images/webmail-oberflaeche.*){width="100.0%"}
:::
Hinweise zur Bedienung von Roundcube finden Sie im Hostsharing Wiki auf
der Seite: <https://wiki.hostsharing.net/index.php?title=Roundcube>
## Mail-Client einrichten
Hostsharing unterstützt die Auto-Konfiguration von E-Mail-Clients durch
die Protokolle [Autoconfig](https://en.wikipedia.org/wiki/Autoconfig)
und Autodiscover. Um einen E-Mail-Client zu konfigurieren, ist daher oft
nur die Eingabe der E-Mail-Adresse und des Passworts notwendig. Alles
andere handelt Ihr E-Mail-Client automatisch mit der
E-Mail-Infrastruktur von Hostsharing aus.
Falls dies nicht auf Anhieb funktioniert, finden Sie in
`kap-ref-mailautoconfig`{.interpreted-text role="numref"} mögliche
Ursachen. Eventuell wurde die Domain nicht so konfiguriert, dass sie die
Funktion unterstützt.
Im Folgenden beschreiben wir, wie Sie in einem solchen Fall die
notwendigen Informationen mit der Hand eingeben können.
### E-Mails über IMAP abrufen
Um Mails mit Hilfe eines Desktop-Clients wie Thunderbird zu empfangen
und um Mails zu versenden, benötigen Sie bei manueller Eingabe der
Konfiguration auch die Angaben zum IMAP- und zum SMTP-Server.
Im Folgenden spielen wir das Anlegen eines neuen Kontos im Programm
Thunderbird durch:
Gehen Sie in das Menü
`Bearbeiten --> Konto-Einstellungen`{.interpreted-text
role="menuselection"}, um zu den Konto-Einstellungen zu gelangen.
Anschließend klicken Sie auf das Menü
`Konto-Aktionen --> E-Mail-Konto hinzufügen...`{.interpreted-text
role="menuselection"}, damit sich der in
`fig-mail-client-1`{.interpreted-text role="numref"} gezeigte Dialog zum
Anlegen eines neuen E-Mail-Kontos öffnet.
::: {#fig-mail-client-1}
![Eingabe von E-Mail-Adresse und
Passwort](../images/mail-client-1.*){width="100.0%"}
:::
Geben Sie dort Ihren Namen, die E-Mail-Adresse und das Passwort des
E-Mail-Benutzers ein und klicken Sie auf `Weiter`{.interpreted-text
role="guilabel"}.
::: {#fig-mail-client-2}
![Die automatisch ermittelten
Zugangsdaten](../images/mail-client-2.*){width="100.0%"}
:::
Thunderbird und andere E-Mail-Clients schließen aus der E-Mail-Adresse
auf die Zugangsdaten. Die ermittelten bzw. geratenen Zugangsdaten werden
in `fig-mail-client-2`{.interpreted-text role="numref"} angezeigt. Die
automatische Konfiguration hat nur dann funktioniert, wenn als
Posteingangs- und Postausgangsserver eine Adresse in der Form
`xyz00.hostsharing.net` gefunden wurde. Wenn dies der Fall ist, können
Sie auf `Fertig`{.interpreted-text role="guilabel"} klicken. Wenn
Thunderbird einen anderen Servernamen, z.B. wie in der Abbildung unter
Verwendung Ihrer Domain, angibt, müssen Sie die richtigen Daten manuell
eingeben.
Klicken Sie dazu auf `Manuell bearbeiten`{.interpreted-text
role="guilabel"}, damit sich das in
`fig-mail-client-3`{.interpreted-text role="numref"} gezeigte Formular
öffnet.
::: {#fig-mail-client-3}
![Das Formular für die manuelle Eingabe der
Zugangsdaten](../images/mail-client-3.*){width="100.0%"}
:::
Geben Sie in dieses Formular, wie in
`fig-mail-client-4`{.interpreted-text role="numref"} gezeigt, die
richtigen Zugangsdaten für den IMAP-Server, den SMTP-Server und den
Benutzernamen ein.
::: {#fig-mail-client-4}
![Geben Sie den Benutzernamen des E-Mail-Kontos und den richtigen Server
an.](../images/mail-client-4.*){width="100.0%"}
:::
Bestätigen Sie die Eingabe mit einem Klick auf
`Fertig`{.interpreted-text role="guilabel"}.
### E-Mails über POP3 abrufen
Sie können E-Mails auch über POP3 abrufen. Benutzen Sie dazu den Port
110 für STARTTLS oder 995 für SSL/TLS. Die übrigen Zugangsdaten bleiben
gleich. Folgen Sie den Anweisungen Ihrer E-Mail-Software.
::: admonition
Weitere Informationen
Hostsharing unterstützt verschlüsselte Verbindungen über STARTTLS und
SSL/TLS auf unterschiedlichen Ports. Lesen Sie dazu
`kap-ref-maileingang`{.interpreted-text role="numref"} und
`kap-ref-mailausgang`{.interpreted-text role="numref"}.
:::
## E-Mail-Passwort ändern
E-Mail-Benutzer können ihr Passwort über HSAdmin und teilweise auch per
SSH ändern. Falls dem E-Mail-Benutzer vom Paket-Admin als Shell das
Programm `/bin/false`{.interpreted-text role="program"} zugeteilt wurde,
lässt sich das Passwort nur über HSAdmin ändern. Hat der E-Mail-Benutzer
dagegen als Shell das Programm `/usr/bin/passwd`{.interpreted-text
role="program"}, so kann er sein Passwort auch per SSH ändern. Die
Hintergründe werden in `kap-benutzerrechte`{.interpreted-text
role="numref"} erklärt.
### E-Mail-Passwort in HSAdmin ändern
Der Benutzer meldet sich mit seinem E-Mail-Benutzername in HSAdmin an.
Anschließend klickt er oben rechts auf seinen Benutzernamen. Es öffnet
sich ein Menü, in dem ein neues Passwort eingetragen werden kann. Die
Prozedur wurde bereits in `kap-erstes-einloggen`{.interpreted-text
role="numref"} beschrieben.
::: only
html
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Passwort-fuer-E-Mail-Benutzer-via-HSAdmin-aendern.webm"></video>
```
:::
### E-Mail-Passwort per SSH ändern
Der Benutzer meldet sich per SSH im Webpaket an und ändert mit dem
Programm `passwd`{.interpreted-text role="program"} sein Passwort. Falls
der E-Mail-Benutzer eine interaktive Shell hat, muss er dazu das
Programm eigens aufrufen. Wurde ihm jedoch lediglich das Programm
`/usr/bin/passwd`{.interpreted-text role="program"} zugewiesen, öffnet
sich statt einer interaktiven Sitzung sofort das Programm
`passwd`{.interpreted-text role="program"}:
``` text
$ ssh xyz00-mail@xyz00.hostsharing.net
xyz00-mail@xyz00.hostsharing.net's password:
```
Nach Eingabe des aktuellen Passworts wird sofort
`passwd`{.interpreted-text role="program"} gestartet und erneut das
aktuelle Passwort abgefragt:
``` text
Changing password for xyz00-mail.
Current password:
```
Nach einer erneuten Eingabe des aktuellen Passworts kann der Benutzer
zweimal ein neues eingeben. Anschließend erscheint eine Erfolgsmeldung
und die Verbindung wird geschlossen:
``` text
New password:
Retype new password:
passwd: password updated successfully
Connection to xyz00.hostsharing.net closed.
```
Damit ist das neue Passwort gesetzt.
::: attention
::: title
Attention
:::
Bitte vergessen Sie nicht das neue Passwort in Ihr E-Mail-Programm
einzutragen.
:::
::: only
html
```{=html}
<video width="786" height="590" controls src="https://media.hostsharing.net/Passwort-fuer-E-Mail-Benutzer-via-SSH-aendern.webm"></video>
```
:::
source/metadata.yml
New file
@@ -0,0 +1,4 @@
---
title: Handbuch für Anwender
author: Hostsharing eG
---
source/outline.txt
New file
@@ -0,0 +1,87 @@
index.md
einfuehrung/index.md
einstieg/index.md
einstieg/passwort/index.md
einstieg/benutzer-anlegen/index.md
einstieg/domain/index.md
einstieg/webspace/index.md
einstieg/ssh-key/index.md
einstieg/email/index.md
einstieg/datenbank/index.md
mail/index.md
referenz/index.md
referenz/benutzer/index.md
referenz/webpaket/index.md
referenz/webpaket/verzeichnisebenen-paket-admin/index.md
referenz/webpaket/verzeichnisebenen-domain-admin/index.md
referenz/webpaket/verzeichnisebenen-email-nutzer/index.md
referenz/webpaket/speicherbelegung/index.md
referenz/domain/index.md
referenz/domain/domainverwaltung/index.md
referenz/domain/subdomains/index.md
referenz/domain/domain-optionen/index.md
referenz/email/index.md
referenz/email/posteingangsserver/index.md
referenz/email/postausgangsserver/index.md
referenz/email/size-email/index.md
referenz/email/emailalias-paketuser/index.md
referenz/email/webmail/index.md
referenz/email/autoconfig/index.md
referenz/datenbanken/index.md
referenz/datenbanken/datenbanken-nutzer/index.md
referenz/datenbanken/datenbank-zugriff/index.md
referenz/datenbanken/datenbank-webfrontend/index.md
referenz/tls/index.md
referenz/tls/standard/index.md
referenz/tls/varianten/index.md
referenz/tls/eigene-tls-zertifikate/index.md
referenz/tls/letsencrypt/index.md
referenz/tls/filemap-ohne-ssl/index.md
referenz/tls/filemap-mit-ssl/index.md
referenz/zonefile/index.md
referenz/zonefile/expandiertes-standard-zonefile/index.md
referenz/zonefile/platzhalter/index.md
referenz/zonefile/expansion-platzhalter/index.md
referenz/zonefile/eigenes-zonefile/index.md
referenz/zonefile/kontrolle-aenderungen/index.md
referenz/zonefile/eigenes-zonefile-deaktivieren/index.md
referenz/hsadmin/index.md
referenz/hsadmin/syntax/index.md
referenz/hsadmin/user/index.md
referenz/hsadmin/domain/index.md
referenz/hsadmin/mysqldb/index.md
referenz/hsadmin/mysqluser/index.md
referenz/hsadmin/postgresqldb/index.md
referenz/hsadmin/postgresqluser/index.md
referenz/hsadmin/emailaddress/index.md
referenz/hsadmin/emailaliases/index.md
referenz/hsadmin/q/index.md
referenz/hsadmin/skript/index.md
referenz/hsadmin/webfrontend/index.md
referenz/htaccess/index.md
referenz/php/index.md
referenz/logging/index.md
referenz/backup/index.md
referenz/wartungsfenster/index.md
referenz/hostkeys/index.md
plattform/index.md
plattform/rechenzentren/index.md
plattform/netze/index.md
plattform/redundanz/index.md
plattform/replikation/index.md
plattform/monitoring/index.md
plattform/backup/index.md
source/plattform/backup/index.md
New file
@@ -0,0 +1,12 @@
# Backup
Hostsharing führt täglich Sicherungen der Daten der Produktivsysteme
durch. Die Datensicherungen werden in einem vom Produktivrechenzentrum
rund 5 km entfernten Rechenzentrum aufbewahrt. Die Datenübertragung
zwischen den Standorten erfolgt ssh-verschlüsselt über eigene Leitungen.
Die Backups jedes Produktivsystems werden separat archiviert und können
nur von diesem System zur Rücksicherung angefordert werden. Ferner wird
gewährleistet, dass Backups nicht nachträglich kompromittiert werden
können.
In der Regel werden mindestens 15 Backups vorgehalten.
source/plattform/index.md
New file
@@ -0,0 +1,8 @@
# Managed Operations Platform
In diesem Kapitel beschreiben wir Komponenten der Managed Operations
Platform.
::: {.toctree maxdepth="1"}
rechenzentren netze redundanz replikation monitoring backup
:::
source/plattform/monitoring/index.md
New file
@@ -0,0 +1,12 @@
# Monitoring
Es werden folgende Dienste/Services/Kenngrößen überwacht:
-   HTTP (Webserver)
-   Mailsystem (SMTP, POP3, IMAP)
-   Datenbanken (MySQL, PostgreSQL)
-   Serverlast
-   Festplatten (Speicherplatzauslastung)
Unter <https://status.hostsharing.net> können der Status und evtl.
Meldungen der Hostmaster nachgelesen werden.
source/plattform/netze/index.md
New file
@@ -0,0 +1,45 @@
# Netze
## Separierte Netzwerke
Die Aufteilung in private, abgeschottete Netze (VLANs) zwischen den
Managed Servern eines Nutzers erlaubt effiziente und sichere
Verbindungen.
Dabei wird zwischen den folgenden Netzen unterschieden, die nicht nur
durch VLANs, sondern zusätzlich durch Verkabelung und separate Switches
oder Router getrennt sind:
Frontend-Netzwerk
:   Dieses Netzwerk ist für allgemeine Anfragen gedacht. Die Firewall
    erlaubt aktuell den Zugang zu allen Adressen in diesem Netzwerk.
    Mittelfristig ist geplant, nur beabsichtigt belegte Ports
    freizugeben.
Server-Netzwerk
:   Physikalisch getrenntes Netzwerk zur Kommunikation der Anwendungen
    untereinander. In diesem Netzwerk lassen sich VLANs aufschalten, um
    den Traffic zwischen verschiedenen Anwendungskomponenten sicher
    übertragen zu können. Darüberhinaus können auch verschiedene
    Traffic-Arten einer Anwendung separiert werden, so z.B. die
    Verbindung einer Anwendung zur Datenbank von derjenigen zu einem
    Cache oder Load-Balancer.
Speichernetzwerk
:   Dieses Netzwerk wird verwendet für Storage-Traffic. Es basiert auf
    dedizierten Punkt-zu-Punkt-Verkabelungen, die von außen nicht
    erreichbar sind. Das Netzwerk nutzt private IPv4-Adressen und ist
    nicht nur von außen nicht erreichbar, sondern auch nur zugänglich
    für die Backup-Server, nicht jedoch für die Managed Server.
Management-Netzwerk
:   Dieses physikalische Netzwerk wird verwendet für den Zugang zu
    IPMI-Controllern (Intelligent Platform Management Interface
    Controller), RAC (Remote Access Controller), Switches und Routern.
    Es verwendet private IPv4-Adressen, die von außen nicht erreichbar
    sind. Es wird auch noch verfügbar sein, wenn Probleme in den anderen
    Netzen auftauchen.
source/plattform/rechenzentren/index.md
New file
@@ -0,0 +1,37 @@
# Rechenzentren
## Berlin, primärer Standort
Die Hostsharing eG betreibt ihre Community Cloud im [Berlin 1 Data
Center](https://www.e-shelter.de/de/location/berlin-1-data-center) von
NTT Global Data Centers. Das Rechenzentrum ist nach ISO 9001, ISO 27001
und ISO 50001 zertifiziert.
Wachschutz
:   Das Rechenzentrum wird durch ein 7-stufiges Sicherheitssystem vor
    unbefugtem Zutritt geschützt. Wachschutz und Sicherheitspersonal
    sind 24 Stunden am Tag anwesend, an 365 Tagen im Jahr.
Betriebssicherheit
:   Ebenfalls rund um die Uhr an sieben Tagen in der Woche vor Ort ist
    kompetentes Betriebspersonal, das die ausfallkritische Infrastruktur
    überwacht. Bei einer Störung kann es sofort eingreifen, sodass
    Ausfälle verhindert und maximale Verfügbarkeit gewährleistet ist.
    Das Rechenzentrum bietet standardmäßig Tier 3. Auf Anfrage kann
    Hostsharing Tier 4 gewährleisten.
Georedundanz
:   Das Berlin 1 Data Center ist eins von 160 Rechenzentren von NTT in
    über 20 Ländern. Auf Anfrage können mit dem Rechenzentrumsbetreiber
    georedundante Lösungen realisiert werden.
## Berlin, sekundärer Standort
Hostsharing erstellt jeden Tag eine Datensicherung (Backup) in einem
zweiten, entfernten Rechenzentrum. Es ist nach ISO/IEC 27001:2013
zertifiziert und wird von der Firma [I/P/B Internet Provider in Berlin
GmbH](https://www.ipb.de/) betrieben.
source/plattform/redundanz/index.md
New file
@@ -0,0 +1,10 @@
# Redundanz
Hostsharing hält Hardware und aktive Netzwerkkomponenten, welche für den
Produktiv-Betrieb erforderlich sind, redundant vor. Entsprechendes gilt
für die Netzwerk- und Stromverkabelung.
Auch die Stromversorgung und Peerings mit den Carrieren sind redundant
ausgelegt, letztere sogar mehrfach. So hat das Versagen einer einzelnen
Komponente -- abgesehen von Umschaltzeiten -- keine Auswirkungen auf den
Produktivbetrieb.
source/plattform/replikation/index.md
New file
@@ -0,0 +1,11 @@
# Replikation
Hostsharing repliziert mit Hilfe der Software DRBD die
Festplatteninhalte aller Produktivsysteme in Echtzeit auf ein
Standby-System (RAID 1 über das Netzwerk).
Auf diese Weise stellt Hostsharing sicher, dass im Fall eines
Hardwareschadens der Betrieb mit allen persistent gespeicherten Daten
unverzüglich fortgesetzt werden kann, ohne dass durch das Einspielen des
Backups Datenänderungen, die sich in der Zwischenzeit ergeben haben -
etwa eingegangene E-Mails oder Datenbanktransaktionen - verloren gehen.
source/project.lua
New file
@@ -0,0 +1,38 @@
-- Dieses Skript iteriert durch die übergebenen Markdown-Dateien
-- und verändert die Gliederungstiefe der Überschrift
-- anhand der Ordnertiefe.
-- Es wird als Reader aufgerufen mit der --from/-f Option:
-- pandoc -f project.lua
--
-- Danke an Albert Krewinkel aus der pandoc Mailingliste
local format = 'markdown+smart'
function Reader (sources, opts)
  local doc = pandoc.Pandoc{}
  for _, source in ipairs(sources) do
    local path_components = #pandoc.path.split(source.name)
    -- last path component is the filename
    local depth = path_components - 1
    doc = doc .. pandoc.read(source, format, opts):walk {
      Header = function (h)
        h.level = h.level + depth
        return h
      end
    }
  end
  return doc
end
if PANDOC_VERSION <= {2, 18} then
  local mt = debug.getmetatable(pandoc.Pandoc{})
  mt.__concat = function (a, b)
    local result = pandoc.Pandoc(a.blocks, a.meta)
    result.blocks:extend(b.blocks)
    for k, v in ipairs(b.meta) do
      result.meta[k] = v
    end
    return result
  end
end
source/referenz/backup/index.md
New file
@@ -0,0 +1,52 @@
# Backup {#kap-backup}
Hostsharing führt nächtliche Sicherungen der Daten durch. In der Regel
können jeweils mindestens die letzten 15 nächtlichen Datensicherungen
wiederhergestellt werden.
In der Datensicherung enthalten sind:
-   die Paket-Konfiguration
-   die Dateien im Paket selbst, sofern diese nicht vom Paket-Admin
    explizit ausgeschlossen wurden
-   die zum Paket gehörigen Datenbanken
-   die zum Paket gehörigen eingegangenen E-Mails
-   die Logfiles
::: attention
::: title
Attention
:::
In der Datensicherung sind **nicht** enthalten:
-   ausgehende, aber noch nicht versandte E-Mails
-   eingehende, aber noch nicht im Postfach abgelegte E-Mails
-   Dateien in Verzeichnissen für temporäre Daten
:::
## Datenbanken
Unmittelbar vor Beginn der Sicherung der Daten des Dateisystems werden
MySQL-, PostgreSQL-Datenbanken und `crontab`{.interpreted-text
role="file"}-Dateien in das Verzeichnis
`/home/pacs/xyz00/.bak/`{.interpreted-text role="file"} gesichert. Diese
Sicherungen fließen in die nachfolgende Dateisystemsicherung ein. Die
Rücksicherung von Datenbanken erfolgt durch den Paket-Admin auf Basis
der im Verzeichnis `/home/pacs/xyz00/.bak/`{.interpreted-text
role="file"} abgelegten Datenbanksicherungen.
## Rücksicherung
Für die Rücksicherung der Datenbestände ist ein Rücksicherungsauftrag
für die betroffene Sicherungsdatei in Auftrag zu geben. Der
Rücksicherungsauftrag erfolgt per E-Mail an <service@hostsharing.net>
und beinhaltet folgende Angaben:
-   das betreffende Webpaket,
-   den Pfad des rückzusichernden Verzeichnisses oder alternativ den
    Pfad und den Dateinamen der rückzusichernden Datei
-   sowie das Datum des angeforderten Sicherungslaufs.
Die Rücksicherung wird vom Service unter:
`/home/restore/YYY-MM-DD`{.interpreted-text role="file"} bereitgestellt.
source/referenz/benutzer/index.md
New file
@@ -0,0 +1,89 @@
# Benutzerrollen {#kap-benutzerrollen}
Um Dienste, Programme und Dämonprozesse sicher voneinander zu trennen,
laufen sie im Debian-Betriebssystem unter verschiedenen Benutzern mit
jeweils klar definierten Rechten. Dies gilt auch für die Aufgaben, die
man als Nutzer der Plattform in seinem Web-Paket erledigt. Wer mit der
Managed Operations Platform Webanwendungen betreibt, muss im Laufe der
Zeit zahlreiche Benutzer anlegen. Jeder Benutzer erfüllt eine spezielle
Rolle. Die Rollen werden durch die Vergabe von Rechten auf
Betriebssystemebene definiert. Für Personen, die bisher noch nicht mit
Unix-Systemen und dem Konzept unterschiedlicher Benutzer gearbeitet
haben, stellt dieses Mehrbenutzerkonzept am Anfang eine Hürde dar.
Ausführliche Unix-Kenntnisse sind nicht erforderlich, um auf der
Hostsharing-Plattform Benutzer anzulegen, da das Verwaltungswerkzeug
`HSAdmin`{.interpreted-text role="program"} diese Aufgabe vereinfacht.
Da in diesem Handbuch die Kenntnis der Rollen an vielen Stellen
vorausgesetzt wird, werden sie in diesem Kapitel ausführlich
beschrieben.
# Benutzerrechte {#kap-benutzerrechte}
HSAdmin bietet uns die Möglichkeit, dem Benutzer eine Login-Shell für
interaktive Sitzungen zuzuordnen oder genau dies zu verhindern. Wir
haben die Wahl zwischen den Kommandointerpretern
`bash`{.interpreted-text role="program"}, `csh`{.interpreted-text
role="program"}, `ksh`{.interpreted-text role="program"},
`tcsh`{.interpreted-text role="program"} oder `zsh`{.interpreted-text
role="program"} und den Programmen `false`{.interpreted-text
role="program"}, `passwd`{.interpreted-text role="program"} und
`scponly`{.interpreted-text role="program"}. Abb.
`fig-hsadmin-shell`{.interpreted-text role="numref"} zeigt das
entsprechende Menü.
::: {#fig-hsadmin-shell}
![Das Auswahlmenü mit den Shell- und
Kommando-Interpretern.](../../images/hsadmin-benutzershells.*){width="100.0%"}
:::
/bin/false
:   Benutzer, denen das Programm `/bin/false`{.interpreted-text
    role="program"} als Shell zugeordnet wird, können sich nicht in
    ihrem Account einloggen und eine interaktive Sitzung starten. Diese
    Einstellung eignet sich für Systembenutzer, die Programme im
    Webpaket ausführen. sich aber nicht von außen einloggen sollen. Dies
    können auch Mail-Benutzer sein.
/bin/bash
:   Die
    [Bourne-Again-Shell](https://manpages.debian.org/buster/bash/bash.1.en.html).
    Auf vielen Linuxsystemen ist dies die Standard-Shell.
/bin/csh
:   Die [C-Shell](https://manpages.debian.org/buster/csh/csh.1.en.html).
/bin/ksh
:   Die
    [Korn-Shell](https://manpages.debian.org/buster/ksh/ksh.1.en.html).
/bin/tcsh
:   Eine [erweiterte
    C-Shell](https://manpages.debian.org/buster/tcsh/tcsh.1.en.html).
/bin/zsh
:   Die
    [Z-Shell](https://manpages.debian.org/buster/zsh-common/zsh.1.en.html).
/usr/bin/passwd
:   Benutzer, denen das Programm `/usr/bin/passwd`{.interpreted-text
    role="program"} zugeordnet wird, können beim Versuch, sich mit
    `ssh`{.interpreted-text role="program"} einzuloggen, ihr Passwort
    ändern. Eine interaktive Sitzung können sie jedoch nicht starten.
    Dies ist sinnvoll, um Benutzern ein größeres Maß an Vertraulichkeit
    ihrer Kommunikation zu ermöglichen. Der Paket-Admin setzt für den
    E-Mail-Benutzer zwar ein initiales Passwort, der Benutzer kann dies
    aber sogleich ändern, sodass der Paket-Admin den E-Mail-Verkehr des
    Benutzers nicht unbemerkt mitlesen kann.
/usr/bin/scponly
:   Diese Zuordnung ermöglicht dem Benutzer den Gebrauch der Programme
    `scp`{.interpreted-text role="program"} und `sftp`{.interpreted-text
    role="program"}. Eine interaktive Sitzung ist nicht möglich.
source/referenz/datenbanken/datenbank-webfrontend/index.md
New file
@@ -0,0 +1,7 @@
# Datenbank-Webfrontend
Für angelegte Datenbanken stehen folgende Webfrontends zur Verfügung:
MySQL [phpMyAdmin](https://phpmyadmin.hostsharing.net/current).
PostgreSQL [phpPgAdmin](https://phppgadmin.hostsharing.net/current).
source/referenz/datenbanken/datenbank-zugriff/index.md
New file
@@ -0,0 +1,12 @@
# Datenbankzugriff
Der Zugriff erfolgt über folgende Hosts und Ports:
+-----------+-----------+------+
| Datenbank | Hostnamen | Port |
+===========+===========+======+
| > MySQL   | localhost | 3306 |
+-----------+-----------+------+
| P         | localhost | 5432 |
| ostgreSQL |           |      |
+-----------+-----------+------+
source/referenz/datenbanken/datenbanken-nutzer/index.md
New file
@@ -0,0 +1,21 @@
# Datenbanken und Nutzer
Datenbanknutzer haben eine eigene Nutzerverwaltung und sind unabhängig
von der Vergabe von Rechten auf Betriebsystemebene.
## Verwaltung der Datenbanken und Datenbanknutzer
Die Verwaltung von Datenbanken und
`Nutzern<../benutzer/index>`{.interpreted-text role="doc"} erfolgt mit
`HSAdmin`{.interpreted-text role="term"} über ein Webfrontend oder über
die `shell`{.interpreted-text role="term"}.
## Rechte
Datenbanknutzern müssen initial die gewünschten Rechte an den
entsprechenden Datenbanken vergeben werden.
## Name
-   Datenbanknutzer haben immer den Präfix `xyz00_`.
-   Datenbanken haben immer den Präfix `xyz00_`.
source/referenz/datenbanken/index.md
New file
@@ -0,0 +1,19 @@
# Datenbanken {#kap-ref-db}
Jeder `Hive`{.interpreted-text role="term"} hat einen eigenen MySQL- und
PostgreSQL-Datenbankserver. Daraus ergibt sich, dass der jeweilige
MySQL- und PostgreSQL-Server von allen auf einem Hive eingerichteten
`Web-Paketen<../webpaket/index>`{.interpreted-text role="doc"} gemeinsam
genutzt wird.
Der externe Zugriff auf die Datenbanken ist über einen SSH-Tunnel
möglich.
Inhalt:
::: {.toctree maxdepth="1
datenbanken-nutzer
datenbank-zugriff
datenbank-webfrontend"}
:::
source/referenz/domain/domain-optionen/index.md
New file
@@ -0,0 +1,89 @@
# Domain-Optionen {#kap-domain-optionen}
Bei Aufschaltung einer Domain können verschiedene Optionen gesetzt
werden.
Greylisting
:   Greylisting ist eine Form der Spam-Bekämpfung bei E-Mails.
    Nachrichten von unbekannten Absendern werden zunächst abgewiesen und
    erst nach einem weiteren Zustellversuch angenommen. Da viele Spammer
    nur einen Zustellversuch unternehmen, können Sie mit dieser Option
    das Spam-Aufkommen in den Postfächern der Domain spürbar reduzieren.
    Allerdings müssen Sie damit rechnen, Mails von unbekannten Absendern
    erst nach einer gewissen Wartezeit zu erhalten. Falls der Absender
    einen fehlerhaft konfigurierten Mailserver hat, kann es sein, dass
    er keinen zweiten Zustellversuch unternimmt, sodass Sie die E-Mail
    gar nicht bekommen.
Multiviews
:   Wenn diese Option eingeschaltet ist, berücksichtigt der Webserver
    Browsereinstellungen und kann je nachdem unterschiedliche Dateien
    ausliefern. Die Möglichkeiten sind in der Dokumentation zu
    [mod_mime](http://httpd.apache.org/docs/current/mod/mod_autoindex.html)
    und
    [mod_negotiation](http://httpd.apache.org/docs/current/mod/mod_negotiation.html)
    beschrieben.
Indexes
:   Wenn diese Option eingeschaltet ist, erzeugt der Webserver für
    Verzeichnisse, die keine Index-Datei (`index.html`{.interpreted-text
    role="file"}) enthalten eine Liste mit den Inhalten des
    Verzeichnisses. Weitere Informationen zu dieser Funktion des
    Webservers finden Sie in der Dokumentation von
    [mod_autoindex](http://httpd.apache.org/docs/current/mod/mod_autoindex.html).
    Ist die Option nicht gesetzt, erhält der Browser stattdessen eine
    404-Fehlermeldung. Sie können diese Einstellung durch eine
    `.htaccess`{.interpreted-text role="file"}-Datei im Verzeichnis
    überschreiben. Lesen Sie dazu `kap-htaccess`{.interpreted-text
    role="numref"}.
Fallback auf htdocs/htdocs-ssl
:   Wenn diese Option aktiviert ist, werden Browser-Anfragen an eine
    nicht aufgeschaltete Subdomain (`blog.hs-example.de`) an die
    Hauptdomain weitergeleitet. In diesem Fall an `hs-example.de`. Falls
    die Option nicht gesetzt ist, erhält der Browser stattdessen eine
    404-Fehlermeldung.
Includes
:   Wenn diese Option gesetzt ist, unterstützt der Webserver SSI (Server
    Side Includes). Weitere Informationen dazu finden Sie in der
    Dokumentation von
    [mod_includes](http://httpd.apache.org/docs/current/mod/mod_include.html)
Backup-MX für externen Mailserver
:   Wenn diese Option eingeschaltet ist, nehmen die E-Mail-Server von
    Hostsharing als sogenannter Backup-MX E-Mails für einen SMTP-Server
    an, der unabhängig betrieben wird. Für diese Funktion muss die
    Zone-Datei angepasst werden. Lesen Sie dazu
    `kap-ref-zonefile`{.interpreted-text role="numref"}.
Let\'s Encrypt-Zertifikat
:   Wenn diese Option aktiviert ist, wird automatisch ein kostenloses
    LE-Zertifikat generiert und regelmäßig verlängert. Sie können Ihre
    Website dann so konfigurieren, dass der Datentransfer zu den
    Browsern über eine verschlüsselte Verbindung (`https`) erfolgt.
E-Mail Auto-Konfiguration
:   Bei Aktivierung dieser Option reicht es bei den meisten
    E-Mail-Programmen (die \"autoconfig\" oder \"autodiscover\"
    unterstützen), E-Mail-Adresse und Passwort zur Konfiguration
    anzugeben. Dazu muss der E-Mail-Adresse ein eindeutiges
    E-Mail-Postfach bei Hostsharing zugeordnet sein.
Domain Keys (DKIM)
:   Durch das Aktiveren dieser Option werden DKIM-Signaturen für
    ausgehende E-Mails mit Absendern dieser E-Mail-Domain aktiviert. Vor
    der Aktivierung muss der öffentliche Schlüssel des Domain Key in der
    DNS Zone der Domain veröffentlicht werden. Das Zonefile muss dazu
    die Zeile `{DKIM_RR}` enthalten. Die Option ist (ab 1.9.2021) bei
    neu angelegten Domains in der Voreinstellung aktiviert und der
    öffentliche Schlüssel wird automatisch hinterlegt.
source/referenz/domain/domainverwaltung/index.md
New file
@@ -0,0 +1,114 @@
# Domainverwaltung
## Registrierung und Aufschaltung
Die Domainverwaltung ist in zwei voneinander unabhängige
Aufgabenbereiche unterteilt:
### Domaineinrichtung und -konfiguration in einem Web-Paket
Die Einrichtung und Konfiguration erfolgt mit dem Werkzeug
`HSAdmin`{.interpreted-text role="term"}. Die Benutzung von HSAdmin über
das Webinterface unter admin.hostsharing.net wird in
`kap-hsadmin-einstieg`{.interpreted-text role="numref"} beschrieben, die
Syntax der Kommandozeilen-Variante `hsscript`{.interpreted-text
role="command"} in `kap-hsadmin`{.interpreted-text role="numref"}.
Aufgaben der Domainverwaltung werden vom `Paket-Admin`{.interpreted-text
role="role"} oder vom `Mitglieds-Account <Mitglied>`{.interpreted-text
role="role"} wahrgenommen.
### Vergabe von Aufträgen an eine Registrierungsstelle
Die Vergabe von Aufträgen (z.B. Registrierung, Transfer) an eine
Registrierungsstelle ist nur über das
[Webfrontend](https://www.domain-bestellsystem.de/) des
`Domain-Bestell-System`{.interpreted-text role="term"} möglich und
erfolgt mit Hilfe der `Reseller-ID`{.interpreted-text role="role"}.
::: note
::: title
Note
:::
Die Anzahl der pro Tag möglichen Registrierungen ist beschränkt, um
Missbrauch vorzubeugen. Nach Rücksprache kann das Limit erhöht werden.
:::
::: warning
::: title
Warning
:::
Der Nutzer ist für sämtliche Aktivitäten im Domainbestellsystem
juristisch eigenverantwortlich.
:::
::: tip
::: title
Tip
:::
Wenn Sie eine Domain neu registrieren, schalten Sie diese erst in
HSAdmin auf, bevor Sie sie im Domainbestellsystem registrieren. Die
Konnektierung erfolgt dann in der Regel problemlos. Wenn Sie umgekehrt
vorgehen, müssen Sie im Domainbestellsystem die Konnektierung neu
anstoßen.
:::
## Bestehende Domain einem neuen Domain-Admin zuordnen
Um eine Domain einem anderen `Domain-Admin`{.interpreted-text
role="role"} zuzuordnen und damit im Dateisystem zu verschieben, wird
sie über HSAdmin gelöscht und neu angelegt.
::: warning
::: title
Warning
:::
Beim Löschen einer Domain in HSAdmin werden alle Dateien im Webspace
komplett gelöscht. Sichern Sie also vorher alle Daten in einem von der
Löschung nicht betroffenen Verzeichnis (zum Beispiel mit
`tar`{.interpreted-text role="command"}). Es gehen auch die Mailadressen
der betreffenden Domain verloren und müssen an neuer Stelle neu angelegt
werden.
:::
Der Prozess des Verschiebens läuft im Großen und Ganzen folgendermaßen
ab:
1.  Sichern aller Daten im Ordner `doms/example.de`{.interpreted-text
    role="file"} des alten Domain-Admin
2.  Löschen der Domain in HSAdmin
3.  Neuanlage eines neuen Domain-Admin in HSAdmin
4.  Neuanlage der Domain in HSAdmin
5.  Rückspielen der gesicherten Daten in den neu erstellen Ordner
    `doms/example.de`{.interpreted-text role="file"} des neuen
    Domain-Admin
## Bestehende Domain in ein anderes Web-Paket verschieben
Um eine Domain in ein anderes Web-Paket zu verschieben, wird sie im
alten Web-Paket gelöscht und im neuen neu angelegt. Gehen Sie dabei im
Prinzip genau so vor wie im Abschnitt zuvor.
1.  Sichern aller Daten im Ordner `doms/example.de`{.interpreted-text
    role="file"} des alten Domain-Admin im alten Web-Paket
2.  Löschen der Domain `example.de` in HSAdmin im alten Web-Paket
3.  Neuanlage eines neuen Domain-Admin im neuen Web-Paket
4.  Neuanlage der Domain `example.de` im neuen Web-Paket
5.  Rückspielen der gesicherten Daten in den neu erstellen Ordner
    `doms/example.de`{.interpreted-text role="file"} des neuen
    Domain-Admin im neuen Web-Paket
::: tip
::: title
Tip
:::
Wenn Sie unsicher sind, wenden Sie sich an den Service unter
<service@hostsharing.net>. Der [Webmaster on Demand]() kann eine Domain
mit minimalen Ausfallzeiten für Sie bei aufwandsabhängiger Abrechnung
verschieben.
:::
source/referenz/domain/index.md
New file
@@ -0,0 +1,58 @@
# Domains {#kap-ref-domain}
Die Domainverwaltung bei Hostsharing ist in zwei unabhängige Bereiche
aufgeteilt.
1.  Die Domaineinrichtung in einem Web-Paket. Dies geschieht mit
    HSAdmin. Die Benutzung der Weboberfläche wird in
    `kap-hsadmin-einstieg`{.interpreted-text role="numref"}, speziell in
    `kap-hsadmin-domain-anlegen`{.interpreted-text role="numref"}
    beschrieben. Die Nutzung des Kommandozeilen-Tools von HSAdmin
    erklärt `kap-hsadmin`{.interpreted-text role="numref"}
2.  Die Domainregistrierung im Domainbestellsystems von Partnergate zur
    Konnektierung, also der eigentlichen Registrierung von Domains bei
    einem Registrar. Das Domainbestellsystem dient auch zur Vergabe
    weiterer Aufträgen an Registrierungstellen. Jedes Mitglied von
    Hostsharing erhält für dieses Domainbestellsystem Zugangsdaten. Sie
    bestehen aus der `Reseller-ID`{.interpreted-text role="role"} und
    einem Passwort.
Hostsharing gibt seinen Mitgliedern bei der Verwaltung von Domains große
Freiheiten, da beide Bereiche nicht zwingend zusammen genutzt werden
müssen. Sie können Domains über das Domainbestellsystem registrieren und
bei anderen Hostern betreiben. Sie können Domains, die Sie bei anderen
Hostern registriert haben, bei Hostsharing betreiben.
Die Verwaltung einer Domain umfasst:
-   Domain aufschalten
    (`Domainverwaltung<domainverwaltung>`{.interpreted-text
    role="doc"}),
-   `Domain-Registrierung`{.interpreted-text role="term"},
-   `Domain-Transfer`{.interpreted-text role="term"} zur Hostsharing eG,
-   Extern registrierte Domain aufschalten,
-   Extern registrierte `Sub-Domain`{.interpreted-text role="term"}
    aufschalten,
-   Domain neu zuordnen (`Domain-Admin`{.interpreted-text role="role"}
    neu zuordnen oder Zuordnung zu einem
    `Web-Paket<../webpaket/index>`{.interpreted-text role="doc"}
    ändern),
-   Sub-Domain neu zuordnen (`Domain-Admin`{.interpreted-text
    role="role"} neu zuordnen oder Zuordnung zu einem
    `Web-Paket<../webpaket/index>`{.interpreted-text role="doc"}
    ändern),
-   Lokale Sub-Domain separat aufschalten,
-   Verwaltung des `Zonefile<../zonefile/index>`{.interpreted-text
    role="doc"},
-   Verwaltung der Domain-Daten (z.B. Domain-Handle, Kontaktdaten),
-   Transfer zu einem anderen Provider,
-   Domain löschen/kündigen.
Inhalt:
::: {.toctree maxdepth="1
domainverwaltung
subdomains
domain-optionen"}
:::
source/referenz/domain/subdomains/index.md
New file
@@ -0,0 +1,46 @@
# Subdomain {#kap-ref-subdomains}
Subdomains sind Domains unterhalb der Hauptdomain. Auch `www` ist eine
Subdomain. Als Subdomain der Hauptdomain `hs-example.de` wird eine
Website unter dieser Subdomain im Browser über die Adresse
`www.hs-example.de` aufgerufen. Die Subdomain `test` würde man über die
Adresse `test.hs-example.de` erreichen.
Sie können bei Hostsharing beliebig viele Subdomains einrichten. Es gibt
zwei Methoden Subdomains anzulegen:
1.  Leichtgewichtige Subdomains
2.  Aufgeschaltete Subdomains
## Leichtgewichtige Subdomain
Eine Subdomains wird bei Hostsharing *leichtgewichtig* genannt, wenn sie
durch ein Unterverzeichnis von
`~/doms/example.com/subs/`{.interpreted-text role="file"} definiert
wurde. Dies ist die einfachste Art und Weise, um Subdomains zu
erstellen. Für jede Subdomain wird ein Ordner im Verzeichnis
`subs`{.interpreted-text role="file"} erstellt.
Leichtgewichtige Subdomains sollten nur verwendet werden, wenn eine
einzelne Anwendung zur Verwaltung aller dieser Subdomains verwendet
wird. Das kann zum Beispiel ein CMS oder eine
Multisite-Wordpress-Installation sein.
Wenn unterschiedliche Anwendungen unter Subdomains betrieben werden,
sollte
-   für jede Subdomain ein eigener `Domain-Admin`{.interpreted-text
    role="role"} angelegt
-   und jede Subdomain jeweils beim entsprechenden Domain-Admin
    aufgeschaltet werden.
## Aufgeschaltete Subdomain
Eine Subdomain wird bei Hostsharing wie die Hauptdomain aufgeschaltet
(siehe `kap-hsadmin-domain-anlegen`{.interpreted-text role="numref"}).
Eine Subdomain wie `blog.hs-example.de` kann im gleichen Web-Paket
aufgeschaltet werden wie die Hauptdomain oder in einem anderen. Es ist
Best-Practice bei Hostsharing für jede aufgeschaltete Domain -- also
auch für jede aufgeschaltete Subdomain -- einen
`Domain-Admin`{.interpreted-text role="role"} anzulegen und die Domain
bzw. Subdomain diesem Domain-Admin zuzuordnen.
source/referenz/email/autoconfig/index.md
New file
@@ -0,0 +1,39 @@
# E-Mail Auto-Konfiguration {#kap-ref-mailautoconfig}
Die Domain-Option \"E-Mail Auto-Konfiguration\" ermöglicht das einfache
Konfigurieren der E-Mail-Clients mit den Daten des Posteingangs- und
Postausgangsservers. Wird diese Domain-Option für z.B. `example.com`
aktiviert, und ist der E-Mail-Adresse `fred@example.com` (evtl. nach
mehreren Weiterleitungen) bei Hostsharing genau ein Postfach zugeordnet,
dann reicht es bei den gängigsten E-Mail-Clients aus, zur Einrichtung
des Postfaches die E-Mail-Adresse und das jeweilige Passwort anzugeben.
Die restlichen Einstellungen (Server, Postfach/Benutzername, Protokoll,
Port etc.) werden automatisch durch den E-Mail-Client von Hostsharing
abgerufen und sodann automatisch konfiguriert.
Dies vereinfacht aus Nutzersicht die Einrichtung eines
Hostsharing-Postfaches im eigenen E-Mail-Client erheblich.
Das Verfahren kann aus mehreren Gründen scheitern:
-   Der E-Mail-Client des Nutzers unterstützt \"autoconfig\" und
    \"autodiscover\" nicht. Thunderbird ab Version 3.1 und Outlook ab
    Version 2007 sollten funktionieren.
-   Die Domain-Option `E-Mail Auto-Konfiguration` (siehe
    `kap-domain-optionen`{.interpreted-text role="numref"}) wurde erst
    *nach* einem gescheiterten Konfigurationsversuch gesetzt (sie sollte
    *vorher* gesetzt werden). Vor allem Microsoft-Produkte cachen das
    Abfrageergebnis für eine E-Mail-Adresse ca. zwei Wochen in einer
    Microsoft-Cloud, so dass weitere automatische Konfigurationsversuche
    erst nach Ablauf dieser (langen) Zeit erfolgreich sind. In diesem
    Fall hilft nur, die Einstellungen im E-Mail-Client per Hand
    vorzunehmen.
-   In der Domain wird ein *eigenes* Zonenfile verwendet, in dem die
    nötigen Einträge (`MAILSERVICES_RR` und `AUTODISCOVER_RR`, siehe
    `kap-ref-zonefile-platzhalter`{.interpreted-text role="numref"})
    fehlen. Dann müssen sie per Hand ergänzt werden.
::: todo
Nachträgliche Aktivierung von autoconfig/autodiscover beschreiben.
Hinweis das Outlook Versionen das nicht unterstützen.
:::
source/referenz/email/emailalias-paketuser/index.md
New file
@@ -0,0 +1,9 @@
# E-Mail-Alias und Paketnutzer
Ein E-Mail-Alias ist eine E-Mail-Adresse zur Weiterleitung von E-Mails.
Ein `E-Mail-Alias`{.interpreted-text role="term"} in der
E-Mail-Konfiguration hat Vorrang vor einem Paketnutzer gleichen Namens.
Implementiert der `E-Mail-Alias`{.interpreted-text role="term"} eine
Weiterleitung, gehen in diesem Fall in der Mailbox des Paketnutzers
keine E-Mails ein.
source/referenz/email/index.md
New file
@@ -0,0 +1,37 @@
# E-Mail
Jeder `Benutzer<../benutzer/index>`{.interpreted-text role="doc"} im
`Web-Paket<../webpaket/index>`{.interpreted-text role="doc"} besitzt ein
E-Mail-Konto und kann E-Mail senden und empfangen. E-Mails werden
unterhalb des Verzeichnisses `~/Maildir` abgelegt. Der Name des Ordners
`Maildir` darf nicht verändert werden.
Jedes E-Mail-Konto ist POP3- und IMAP-fähig.
Hostsharing bietet folgende Konfigurationsmöglichkeiten:
-   Anlegen und Löschen von E-Mail-Adressen
-   Anlegen und Löschen von
    `E-Mail-Aliasen <E-Mail-Alias>`{.interpreted-text role="term"}
-   Einrichtung von E-Mail-Weiterleitungen
-   Automatisches Versenden einer E-Mail-Bestätigung
    (`Vacation`{.interpreted-text role="term"})
-   Automatisches Filtern und Bearbeiten von E-Mails über
    [Managesieve](https://wiki.hostsharing.net/index.php?title=Sieve)
    oder
    [Procmail](https://wiki.hostsharing.net/index.php?title=Procmail)
-   Mit E-Mail-Aliasen kann die Zustellung von Nachrichten in die
    Postfächer der Benutzer gesteuert werden.
-   E-Mail-Konten bei anderen Anbietern abfragen
-   Einrichtung von Mailinglisten
Der Zugriff auf das E-Mail-Konto erfolgt über einen beliebigen
E-Mail-Client oder über `Webmail <webmail>`{.interpreted-text
role="doc"}.
Inhalt:
::: {.toctree maxdepth="1"}
posteingangsserver postausgangsserver size-email emailalias-paketuser
webmail autoconfig
:::
source/referenz/email/postausgangsserver/index.md
New file
@@ -0,0 +1,38 @@
# Postausgangsserver {#kap-ref-mailausgang}
Für jedes Webpaket steht ein Postausgangsserver für reguäre E-Mails und
ein Postausgangsserver für den Massenversand von E-Mails bereit.
Unter Massenversand wird der Versand von Newslettern,
Forenbenachrichtungen, der Betrieb von Mailinglisten und ähnliche
Nutzungen im Rahmen des Zulässigen verstanden. Wählen Sie bei solchen
Massenaussendungen bitte möglichst den Postausgangsserver für den
Massenversand, da Sie so mithelfen, die Reputation unserer normalen
Ausgangsserver hoch zu halten.
Angaben für den Postausgangsserver:
  -------------------------------------------------------------------------------------
  Postausgangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           SMTP        587 oder 25  465
  -------------------------------------------------------------------------------------
Die Konfigurationsvariante SMTP über Port 587 mit STARTTLS wird
empfohlen.
Angaben für den Postausgangsserver für den Massenversand:
  -------------------------------------------------------------------------------------
  Postausgangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           SMTP        4587 oder    1465
                                                              4025
  -------------------------------------------------------------------------------------
Die Konfigurationsvariante SMTP über Port 4587 mit STARTTLS wird
empfohlen.
source/referenz/email/posteingangsserver/index.md
New file
@@ -0,0 +1,15 @@
# Posteingangsserver {#kap-ref-maileingang}
Angaben für den Posteingangsserver:
  -------------------------------------------------------------------------------------
  Posteingangsserver      Postfach/Benutzername   Protokoll   Port         Port SSL/TLS
                                                              STARTTLS
  ----------------------- ----------------------- ----------- ------------ ------------
  xyz00.hostsharing.net   xyz00-mailbox           POP3        110          995
  xyz00.hostsharing.net   xyz00-mailbox           IMAP        143          993
  -------------------------------------------------------------------------------------
Die Konfigurationsvariante IMAP über Port 143 mit STARTTLS wird
empfohlen.
source/referenz/email/size-email/index.md
New file
@@ -0,0 +1,7 @@
# Größenbeschränkung einer E-Mail
Die E-Mail-Server akzeptieren E-Mails bis zu einer maximalen Größe von
128 MB. Dateianhänge sollten daher die Größe von ca. 90 MB nicht
überschreiten. Allgemeine Informationen zur [Größenbeschränkung von
E-Mails](https://wiki.hostsharing.net/index.php?title=Gr%C3%B6%C3%9Fenbeschr%C3%A4nkung_von_E-Mails)
im Wiki der Hostsharing-Mitglieder.
source/referenz/email/webmail/index.md
New file
@@ -0,0 +1,7 @@
# Webmail
Hostsharing betreibt eine zentrale
[Webmail-Installation](https://webmail.hostsharing.net). Informationen
zur Einrichtung sind im Wiki der Mitglieder unter
[Webmail](https://wiki.hostsharing.net/index.php?title=Webmail) zu
finden.
source/referenz/hostkeys/index.md
New file
@@ -0,0 +1,123 @@
# SSH-Hostkeys
Wenn Sie sich zum ersten Mal mit der Secure Shell
(`ssh`{.interpreted-text role="command"}) bei Hostsharing anmelden,
fragt das Programm nach, ob Sie dem Hostkey des Servers vertrauen
möchten. Das Hostsharing-System identifiziert sich Ihnen gegenüber mit
dem Fingerabdruck des Hostkeys. Die Meldung sieht folgendermaßen aus:
``` console
$ ssh xyz00@xyz00.hostsharing.net
The authenticity of host 'xyz00.hostsharing.net (2a01:37:1000::53df:4fb1:0)' can't be established.
RSA key fingerprint is SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ.
Are you sure you want to continue connecting (yes/no)?
```
In der zweiten Zeile der Meldung zeigt die Secure Shell den
Fingerabdruck des Servers an:
`SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ` Diesen können Sie
mit dem in der folgenden Liste aufgeführten Fingerabdruck vergleichen,
um sicherzugehen, dass Sie sich wirklich auf einem Server der
Hostsharing eG anmelden. Wenn die Fingerabdrücke übereinstimmen, können
Sie die Frage mit [yes]{.title-ref} beantworten. Die Secure Shell setzt
dann den Prozess des Einloggens fort und fragt nach dem Passwort für den
angegebenen Benutzer.
    SHA256:N1CtFnS1BwJrYoXUqZO61SM8RIpkfdhPOw+XVOaiYQo h01.hostsharing.net (RSA)
    SHA256:HVgsVWEw6pxUFPGEIIuZOrd9bBiGQu0jVoq+sDFqpGk h02.hostsharing.net (RSA)
    SHA256:bvMneyMq4dM0gCNtgVUfXAsh2JcWl0XXt4da6JI2wcI h03.hostsharing.net (RSA)
    SHA256:SF8/6oeb6aNO0iOgfprrQ7E+IJaoEBw2nAArW9o1jF0 h04.hostsharing.net (RSA)
    SHA256:oOarqh+jQBINNvFiFlg9Xvgf/kcT0LGfPvxnlZ685AA h05.hostsharing.net (RSA)
    SHA256:r6gz+eduk6Fmj+UqCLbX8bN5VDZ6JZ8o9AXJsdOZBEQ h06.hostsharing.net (RSA)
    SHA256:8/JolH0E37TGePP6vm92APo9klaXOBPkA1nM8C+SR+I h07.hostsharing.net (RSA)
    SHA256:AOvcGrr+x496rN7GeKZUIBJdyhaCcWc8SoL0wBcHoR8 h08.hostsharing.net (RSA)
    SHA256:YUntE5eqb6NSrZTY96i/B3C7dvWkoTyRjOdbonyXqKA h11.hostsharing.net (RSA)
    SHA256:uADmSWGXZX0y+uUg/2UgMKgc9sOovg15KbZK2rAfnfY h12.hostsharing.net (RSA)
    SHA256:YKe7xwXraKoUO5n+unZsMrbA4VlJX21tTaSq/1FenWc h13.hostsharing.net (RSA)
    SHA256:QXVugsok7f+lz2p784LU4J/ad9/eTmxj2IyVAmPQ5f0 h14.hostsharing.net (RSA)
    SHA256:zCth18agkjju4+qRsvJhOH2eYasjQsbrepTb6xUWNv4 h15.hostsharing.net (RSA)
    SHA256:pDPLmEB7FZ2/diAVSW5Dyz4fDAk2ooht7lEojO0u6i8 h16.hostsharing.net (RSA)
    SHA256:VmoYwYOovJfIaSCWAaw6ibvte69tZknzqwUCQbDtnbk h17.hostsharing.net (RSA)
    SHA256:I3oYA4H8fobTTR4T8Td+3+uJXIZgfr9RNYzoRWsW3A8 h18.hostsharing.net (RSA)
    SHA256:xh2Yy20Ksn4NaoE0c9qFQc7UffiFZwjE8LI2MqgCnu0 h20.hostsharing.net (RSA)
    SHA256:fFpK8WhB4uT5kupdU3ZZzaedeUZUubReoEiZ1qTwib0 h21.hostsharing.net (RSA)
    SHA256:bro6uRAAnLZnrvEr9D2Am7lnLChOsokACOHg+bL4wtg h22.hostsharing.net (RSA)
    SHA256:pd3TSPdt/JJOEASMgqS09pOra7X4/W42so3MQ9DhLzY h23.hostsharing.net (RSA)
    SHA256:0Xf3sWXjuNOsTmycGsnUOa6uDs6j2zg9bDVMKK4/K4k h24.hostsharing.net (RSA)
    SHA256:gTLnnTDiiAPLzPZI8ZNQ8pwKBTqEkW2Hh7tS/UZgheE h30.hostsharing.net (RSA)
    SHA256:g0aiLcfknMr+r1JsQj/A18odKbK3tZ8kN2YgkMdpU6g h31.hostsharing.net (RSA)
    SHA256:Jsmjp/Pm/+2azIYhZddSJ9F5l8ROkMLSKadxtIF3ovs h32.hostsharing.net (RSA)
    SHA256:t8dXxStA4IBaeeQLx/0RDWH2OdJGm0yjHyrZS8xGAzc h33.hostsharing.net (RSA)
    SHA256:2KMOx41kEP1iVNQ7pjf9ff+CxQ3CnQ41bgb9tJIuuD4 h34.hostsharing.net (RSA)
    SHA256:oD61B3ZGW+F776ppQy+GSKyAdYAdjqXo7aHPZZT+Cl4 h35.hostsharing.net (RSA)
    SHA256:pcn07clyBQ93z4H9yyjpYVmcaP/tmL8dXXN8uUIxfZ0 h36.hostsharing.net (RSA)
    SHA256:QJMaX7rUz+YHdjqutCP6LT/gWgPL14KtCHM47re5/As h37.hostsharing.net (RSA)
    SHA256:gAW61QQv4dEyjY1V11YdWULD8tYOcRSOkxZbCNJJhU8 h38.hostsharing.net (RSA)
    SHA256:z92YxH/cKI7+2yZnH1QH0b/wuaBOaVnUxlz2hsxZK0s h39.hostsharing.net (RSA)
    SHA256:P24ABx/GFTMnYCUfzpnTRoObArjy13CT40o2e5/1tq8 h40.hostsharing.net (RSA)
    SHA256:NDRW1c7gxS3GsGWkoSGd+g9ryu8atfYwYvvhbyetXj8 h41.hostsharing.net (RSA)
    SHA256:IPbPxK+TDPhZKyNrmmQ4zuLA4SOwRh1Lqpbi74Lieg4 h42.hostsharing.net (RSA)
    SHA256:xRAscjEwJd5fP3pW5yDh1FVhL5sAZYPCqdsdRzBjLQU h43.hostsharing.net (RSA)
    SHA256:77phLJuhe7GQqFiZ9rRaAMABEPULJc7sr4efey+XIL8 h44.hostsharing.net (RSA)
    SHA256:ues/X3zvkHY9D17zpcPyRiGyq/vmUhDJQK3ODqZj0hE h50.hostsharing.net (RSA)
    SHA256:Z/jJ3t/ISdXmU7BCtxK+nXqYwVMK7GcuHrBaun9V83M h51.hostsharing.net (RSA)
    SHA256:6OXalNTTqZ7RlStdoUx8WVWZuzHr46xbRX+XizsF9eM h52.hostsharing.net (RSA)
    SHA256:E178kADy/6ef9l84goS+0XVNsyVp2XnHKBk/QjhiMms h54.hostsharing.net (RSA)
    SHA256:YH4QNO7QLWKr3UTIX8A/5uZvI8zEPMTdoaok4QhtXCU h59.hostsharing.net (RSA)
    SHA256:VQa9kcj80wxW/RyGkpAmjRKZU8IQzepNenGSkDOK4/o h60.hostsharing.net (RSA)
    SHA256:VqzCGfUXG5PRoJztxla1NhQZo1Uo7osiwYQ37NvqfYk h61.hostsharing.net (RSA)
    SHA256:OPfU11pHC3qtHyOegF4h3fvZNgI6wDhZQ5lQ3tZHWJg h62.hostsharing.net (RSA)
    SHA256:k5m0KARxN1Xmf0NnV1h9ztWKzVBs7N7/dzgV75+sqRM h63.hostsharing.net (RSA)
    SHA256:vA65yRKft1a6doum6jdLm+Up5u9YHlMmmFnZ4mSw4TU h64.hostsharing.net (RSA)
    SHA256:fvpgXIQCYMk9RQaXcEvjUKf+EbSIMXu/rNm7DrDJP8E h67.hostsharing.net (RSA)
    SHA256:2V1PLyWI8hGTtlODD33I2G4342Vw1pBwYuBSCiHkVv4 h68.hostsharing.net (RSA)
    SHA256:qs/SSkPIH4WZak1/sFSD5XWrk+fJLQSBAz+mbbjp0Yg h70.hostsharing.net (RSA)
    SHA256:b158PhXSeEPoVNTS9ifEjfs3ZU6FjksWLOQyBf+4vmA h71.hostsharing.net (RSA)
    SHA256:LBc6PBLyz4Q20J7I8tzz1Vb7rcUhRr1Cm9pM+ru2D3E h72.hostsharing.net (RSA)
    SHA256:5xMCpXiFyhP7SuqDqDRy9hm0Vw9usqH6f/5GkNA6SiA h73.hostsharing.net (RSA)
    SHA256:c6ciBK7eciSilcs1e7tNMUA6xLiXiedRcV78brB6/hI h74.hostsharing.net (RSA)
    SHA256:Qwix7tr1RcK8yppfG58KM9DMZO+LS+uZbKl2GSCob1I h75.hostsharing.net (RSA)
    SHA256:JLo/6ezAxCmouKmtTu9vsZ276TjvotcYje9uwaKnNFU h76.hostsharing.net (RSA)
    SHA256:tSg96I1l6JUP8yUPIzsy3bbMWvfNwwBGUaNf5vNGV0I h79.hostsharing.net (RSA)
    SHA256:eVyAJ/wA/goxwNrwhbS8Qw0mAaj0X/+dx3k5TL6hSYU h80.hostsharing.net (RSA)
    SHA256:JqpaMMumkFdqQF3YYdqPbnkXReBralBNzr2DcokPmec h81.hostsharing.net (RSA)
    SHA256:C1niDEd/8JyaDoLBA3Ak34o7xce6o4lfuk+X6H0IAfE h82.hostsharing.net (RSA)
    SHA256:JHPJTq4mqdzXktiE7aopf4PM0Ve4y2mDE0ReEDiTFkI h83.hostsharing.net (RSA)
    SHA256:bNR5bPNQ7mMQ+uD+yRakH7pML5m6xf0yB8nVodPzA2Y h84.hostsharing.net (RSA)
    SHA256:3LGhMnZNFP+ClkqsG8X1X7r149Rq9hK06d5GyN2i6WE h85.hostsharing.net (RSA)
    SHA256:TXEFHfmEAkwQ+8H7BAYes+cVk7hiVL9wO4prQgO7Lg0 h86.hostsharing.net (RSA)
    SHA256:1Cl+C6nVzg8kGjZYHJQJR0zJ4skjWbhywwbfBzb4/+A h87.hostsharing.net (RSA)
    SHA256:OHAYV/r5EMdEEsO7n9ZfKq0To/kZ6g9IxQ17TI58yIE h88.hostsharing.net (RSA)
    SHA256:buSwCu/6FDbEJfQfrvjKcDZGT+gZYMgg6THI7e26sPo h89.hostsharing.net (RSA)
    SHA256:QZ6sHxJMueXFOYwbN/r4Awnx+Nl/VCJddZnlckFAJ+M h90.hostsharing.net (RSA)
    SHA256:MnnyrqLYnY04iyM930hFSMDHP6+9pzcZOa4cQTtTCi0 h91.hostsharing.net (RSA)
    SHA256:7QZ54GTzdmOBZ9Uhc09ljjPyhLIB3udUSkjtoTnGaEI h92.hostsharing.net (RSA)
    SHA256:ifHlyDjiJ2OTJq5+M3YnP/nlXIQcKlQbRs51okAfWHI h93.hostsharing.net (RSA)
    SHA256:8NFXZyUVkEgCQZV7+LV8m3HI5aOqwi7zdbg+2aHtnUQ h95.hostsharing.net (RSA)
    SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ h97.hostsharing.net (RSA)
    SHA256:N0iSQTm3AFAhdgQ4OhSptQ0vhuURPUyAt33L72ZeLM8 h98.hostsharing.net (RSA)
Den Namen des Servers, auf dem Ihr Web-Paket liegt, erfahren Sie in
HSAdmin. Gehen Sie dazu in den Bereich `Web-Paket`{.interpreted-text
role="guilabel"}, wählen Sie Ihr Web-Paket aus (in unserem Beispiel
`xyz00`). Es öffnet sich rechts der Reiter `Web-Paket`{.interpreted-text
role="guilabel"} und es werden Informationen zu Ihrem Paket angezeigt.
In der Zeile Server/Hive finden Sie die Bezeichnung des Servers, auf dem
Ihr Webpaket sich befindet.
::: {#fig_hsadmin-paket-info}
![Informationen über das Web-Paket.](../images/hsadmin-paket-infos.*)
:::
In unserem Beispiel müssten Sie den Fingerabdruck von
h97.hostsharing.net mit dem von der Secure Shell angezeigten
vergleichen.
source/referenz/hsadmin/domain/index.md
New file
@@ -0,0 +1,150 @@
# Modul domain {#kap-modul-domain}
## Funktionen
::: option
domain.search
Suche Domain nach den im Befehlsausdruck angegebenen Feldern und Werten
:::
::: option
domain.add
Füge eine neue Domain nach den im Befehlsausdruck angegebenen Feldern
und Werten hinzu.
:::
::: option
domain.update
Aktualisiere eine Domain nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
::: option
domain.remove
Lösche eine Domain nach den im Befehlsausdruck angegebenen Feldern und
Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `domain` kann entsprechend der folgenden Befehlssyntax
von `HSAdmin`{.interpreted-text role="command"} Felder setzen oder
verändern:
    domain.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `domain` stehen folgende Felder zur Verfügung.
name
:   Name einer Domain
user
:   Name des Domain-Admins
validsubdomainnames
:   leichtgewichtige Subdomains in diesem Virtual-Host des Webservers,
    gültige Werte: `*` für beliebige Subdomains oder eine
    kommaseparierte Liste: `www,blog,other`
greylisting
:   E-Mails werden verzögert durch den Mailserver angenommen, siehe
    `Greylisting`{.interpreted-text role="term"}. Ist die Option
    deaktivert, werden E-Mails ohne Verzögerung angenommen.
multiviews
:   Der Webserver berücksichtigt Einstellungen im Browser beim Abruf
    einer Domain (z.B. eine bevorzugte Sprache). Die Option kann mit
    einer `.htaccess`{.interpreted-text role="term"}-Datei für jedes
    Verzeichnis konfiguriert werden.
indexes
:   Der Webserver erzeugt für Verzeichnisse, die keine eigene
    Index-Datei enthalten, eine Liste mit den im Verzeichnis enthaltenen
    Dateien. Ist die Option deaktiviert, wird ein Fehler 303 ausgegeben.
    Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis
    konfiguriert werden.
htdocsfallback
:   Der Webserver leitet auf die Hauptdomain, wenn keine Sub-Domain
    angelegt ist. Ist die Option deaktivert, wird ein Fehler 404
    ausgegeben: Seite nicht gefunden.
includes
:   Der Webserver erkennt `SSI`{.interpreted-text role="term"}-Komandos
    und -Dateien. Die Option kann mit einer .htaccess-Datei für jedes
    Verzeichnis konfiguriert werden.
backupmxforexternalmx
:   Der Paket-Hive wird als Weiterleitung (transport) beim
    Mail-In-Server eingetragen. Ist die Option aktiv, ist der
    Hostsharing-Mail-In-Server Backup-MX. Der eigentliche Mailserver
    befindet sich außerhalb der Infrastruktur von Hostsharing (z.B.
    anderer Provider, DSL-Anschluss mit fester IP)
letsencrypt
:   Es wird automatisch ein TLS Zertifikat für diese Domain und alle im
    Feld „validsubdomainnames" angegebenen Subdomains erzeugt
autoconfig
:   Eine Unterstützung für die Konfiguration von E-Mail-Programmen durch
    die Verfahren \"Autoconfig\" (Mozilla) und \"Autodiscover\"
    (Microsoft) wird für die Domain eingeschaltet
::: note
::: title
Note
:::
Die Option `backupmxforexternalmx` erfordert Änderungen am
`Zonefile<../zonefile/index>`{.interpreted-text role="doc"} einer
Domain.
:::
## Beispiele
Mit dem folgenden Befehl schalten wir die Domain `hs-example.de` auf und
ordnen Sie dem Domain-Admin `xyz00-hsexample` zu.
``` console
xyz00@hsadmin> domain.add({set:{name:'hs-example.de',user:'xyz00-hsexample'}})
```
Mit dem Befehl `domain.search`{.interpreted-text role="option"} werden
alle Informationen zu einer Domain angezeigt. Die gesuchte Domain wird
mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> domain.search({where:{name:'hs-example.de'}})
```
Und mit dem Befehl `domain.remove`{.interpreted-text role="option"}
können wir eine Domain entfernen.
``` console
xyz00@hsadmin> domain.remove({where:{name:'hs-example.de'}})
```
Mit dem Befehl `domain.update`{.interpreted-text role="option"} lassen
sich die Einstellungen für eine Domain verändern. Bei einer Änderung der
Domain-Optionen, wie im folgenden Beispiel, müssen immer alle Optionen
angegeben werden, die gesetzt sein sollen, da der Befehl die bereits
gesetzten Domain-Optionen komplett überschreibt.
``` console
xyz00@hsadmin> domain.update({where:{name:'hs-example.de'},set:{domainoptions:['htdocsfallback','indexes','greylisting','letsencrypt','autoconfig']}})
```
source/referenz/hsadmin/emailaddress/index.md
New file
@@ -0,0 +1,135 @@
# Modul emailaddress {#kap-modul-emailaddress}
## Funktionen
::: option
emailaddress.search
Suche E-Mail-Adresse nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
::: option
emailaddress.add
Füge eine neue E-Mail-Adresse nach den im Befehlsausdruck angegebenen
Feldern und Werten hinzu.
:::
::: option
emailaddress.update
Aktualisiere eine E-Mail-Adresse nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
::: option
emailaddress.remove
Lösche eine E-Mail-Adresse nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `emailaddress` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    emailaddress.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `emailaddress` stehen folgende Felder zur Verfügung.
domain
:   Name einer Domain
localpart
:   Bezeichnung für den lokalen Teil einer E-Mail-Adresse: der Teil vor
    `@`.
target
:   Ziel einer E-Mail-Adresse, mehrere Ziele werden durch Kommata
    getrennt
## Beispiele
Mit dem folgenden Befehl erhalten Sie eine Liste aller E-Mail-Adressen
der Domain `hs-example.de`.
``` console
xyz00@hsadmin> emailaddress.search({where:{domain:"hs-example.de"}})
```
Mit folgendem Befehl lässt sich eine neue E-Mail-Adresse einrichten und
einem Postfach zuordnen:
``` console
xyz00@hsadmin> emailaddress.add ({set:{domain:'hs-example.de',localpart:'info',target:'xyz00-hs_example.de'}})
```
Das Programm gibt dann folgende Meldung als Quittierung des Befehls
zurück:
``` console
[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'xyz00-hs_example.de'
      ]
   }
]
```
Wenn später einmal der Wunsch aufkommt, die eintreffenden E-Mails
stattdessen an eine externe E-Mail-Adresse weiterzuleiten, kann man den
Eintrag aktualisieren. Das Ziel (`target`) lässt sich entweder ändern:
``` console
xyz00@hsadmin> emailaddress.update ({where:{domain:'hs-example.de',localpart:'info'}, set:{target:'andere@mail.de'}})
[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'andere@mail.de'
      ]
   }
]
```
Oder man ergänzt die neue E-Mail-Adresse, indem man sie zusätzlich
einfügt. Mehrere Ziele werden mit Kommata abgegrenzt.
``` console
xyz00@hsadmin> emailaddress.update ({where:{domain:'hs-example.de',localpart:'info'}, set:{target:'andere@mail.de,xzy00-hs_example.de'}})
[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'andere@mail.de',
         'xzy00-hs_example.de'
      ]
   }
]
```
source/referenz/hsadmin/emailaliases/index.md
New file
@@ -0,0 +1,83 @@
# Modul emailalias {#kap-modul-emailalias}
Mit diesem Modul können Sie ein E-Mail-Alias setzen. Ein typischer
Anwendungsfall wird in `kap-email-alias`{.interpreted-text
role="numref"} beschrieben.
## Funktionen
::: option
emailalias.search
Suche E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
::: option
emailalias.add
Füge eine neue E-Mail-Alias nach den im Befehlsausdruck angegebenen
Feldern und Werten hinzu.
:::
::: option
emailalias.update
Aktualisiere eine E-Mail-Alias nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
::: option
emailalias.remove
Lösche eine E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `emailalias` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    emailalias.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `emailalias` stehen folgende Felder zur Verfügung.
name
:   Name des E-Mail-Alias
target
:   Ziel einer E-Mail-Adresse; mehrere Ziele werden durch Kommata
    getrennt
## Beispiele
Das folgende E-Mail-Alias überschreibt die Voreinstellung für den
Paket-Admin `xyz00`. E-Mails an diesen Benutzer landen nicht mehr in
seinem Postfach, sondern werden an die E-Mailadresse
`webmaster@hs-example.de` weitergeleitet.
``` console
xyz00@hsadmin> emailalias.add ({set:{name:'xyz00',target:'webmaster@hs-example.de'}})
```
In dem nächsten beiden Beispielen wird zunächst nach der Konfiguration
für das E-Mail-Alias `xyz00` gesucht. Anschließend wird ein Postfach
`xyz00-mailbox` zusätzlich zu der bereits eingetragenen E-Mail-Adresse
hinzugefügt. Da das Programm die Felder komplett überschreibt, müssen
alle Werte angegeben werden.
``` console
xyz00@hsadmin> emailalias.search ({where:{name:'xyz00'}})
xyz00@hsadmin> emailalias.update ({where:{name:'xyz00'},set:{target:'xyz00-mailbox,webmaster@hs-example.de'}})
```
Im letzten Beispiel wird das E-Mail-Alias wieder gelöscht, sodass
E-Mails an den Paket-Admin wieder an sein Postfach ausgeliefert werden.
``` console
xyz00@hsadmin> emailalias.remove ({where:{name:'xyz00'}})
```
source/referenz/hsadmin/index.md
New file
@@ -0,0 +1,66 @@
# HSAdmin {#kap-hsadmin}
HSAdmin ist ein Werkzeug zur Verwaltung von Nutzern, E-Mail-Adressen,
E-Mail-Aliases, Domains, Datenbanken und Datenbank-Nutzern. Die
Bedienung erfolgt über ein Webfrontend, das in
`kap-hsadmin-einstieg`{.interpreted-text role="numref"} vorgestellt
wird.
In diesem Kapitel geht es um den HSAdmin-Client
`hsscript`{.interpreted-text role="command"}, der in der Konsole benutzt
wird.
::: program
hsscript
:::
HSAdmin verfügt über folgende Module:
  ----------------------------------------------------------------------------------------------
  Modul                                                Erläuterung
  ---------------------------------------------------- -----------------------------------------
  `user<user>`{.interpreted-text role="doc"}           Modul zur Nutzerverwaltung
  `mysqldb<mysqldb>`{.interpreted-text role="doc"}     Modul zur Verwaltung von
                                                       MySQL-Datenbanken
  `mysqluser<mysqluser>`{.interpreted-text role="doc"} Modul zur Verwaltung vom
                                                       MySQL-Datenbanknutzern
  `postgresqldb<postgresqldb>`{.interpreted-text       Modul zur Verwaltung von
  role="doc"}                                          PostgreSQL-Datenbanken
  `postgresqluser<postgresqluser>`{.interpreted-text   Modul zur Verwaltung von
  role="doc"}                                          PostgreSQL-Datenbanknutzern
  `emailaddress<emailaddress>`{.interpreted-text       Modul zur Verwaltung von E-Mail-Adressen
  role="doc"}
  `emailalias<emailaliases>`{.interpreted-text         Modul zur Verwaltung von E-Mail-Aliasen
  role="doc"}
  `domain<domain>`{.interpreted-text role="doc"}       Modul zur Verwaltung von Domains in einem
                                                       Web-Paket
  `q<q>`{.interpreted-text role="doc"}                 Modul zur Suche von Systemaufträgen von
                                                       HSAdmin
  ----------------------------------------------------------------------------------------------
Die HSAdmin-Module verfügen über folgenden Funktionen:
  ---------------------------------
  Funktion         Erläuterung
  ---------------- ----------------
  search           suchen
  add              hinzufügen
  update           aktualisieren
  remove           löschen
  ---------------------------------
::: {.toctree maxdepth="1"}
syntax user domain mysqldb mysqluser postgresqldb postgresqluser
emailaddress emailaliases q skript webfrontend
:::
source/referenz/hsadmin/mysqldb/index.md
New file
@@ -0,0 +1,79 @@
# Modul mysqldb {#kap-modul-mysqldb}
## Funktionen
::: option
mysqldb.search
Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
::: option
mysqldb.add
Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten hinzu.
:::
::: option
mysqldb.update
Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
::: option
mysqldb.remove
Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `mysqldb` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    mysqldb.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `mysqldb` stehen folgende Felder zur Verfügung.
name
:   Datenbankname (z.B. xyz00_abc)
owner
:   Datenbanknutzer (z.B. xyz00_owner)
encoding
:   Zeichensatz der Datenbank (Standard ist UTF-8)
## Beispiele
Im ersten Beispiel erzeugen wir eine Datenbank mit dem Namen `xyz00_abc`
und legen als Besitzer den Datenbanknutzer `xyz00_owner` fest.
``` console
xyz00@hsadmin> mysqldb.add ({set:{name:'xyz00_abc',owner:'xyz00_owner'}})
```
Bevor man Änderungen an einem Datensatz vornimmt, kann man sich alle
Eigenschaften einer Datenbank mit dem Befehl
`mysqldb.search`{.interpreted-text role="option"} anzeigen lassen. Die
gewünschte Datenbank wird mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> mysqldb.search ({where:{name:'xyz00_abc'}})
```
Und mit dem Befehl `mysqldb.remove`{.interpreted-text role="option"}
können Datenbanken gelöscht werden. Die gewünschte Datenbank wird erneut
mit dem Befehlsausdruck `where` ausgewählt.
``` console
xyz00@hsadmin> mysqldb.remove ({where:{name:'xyz00_abc'}})
```
source/referenz/hsadmin/mysqluser/index.md
New file
@@ -0,0 +1,79 @@
# Modul mysqluser {#kap-modul-mysqluser}
## Funktionen
::: option
mysqluser.search
Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern
und Werten
:::
::: option
mysqluser.add
Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten hinzu.
:::
::: option
mysqluser.update
Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten.
:::
::: option
mysqluser.remove
Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `mysqluser` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    mysqluser.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `mysqluser` stehen folgende Felder zur Verfügung.
name
:   Name des Datenbank-Benutzers (z.B. `xyz00_owner`)
password
:   Passwort des Datenbank-Benutzers
## Beispiele
Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer
`xyz00_owner` hinzu und geben ihm ein Passwort.
``` console
xyz00@hsadmin> mysqluser.add({set:{name:'xyz00_owner',password:'!1?2-3aBc'}})
```
In den folgenden beiden Beispielen lassen wir uns zunächst mit dem
Befehl `mysqluser.search`{.interpreted-text role="option"} die
Informationen zu einem Benutzer anzeigen, den wir mit dem
Befehlsausdruck `where` auswählen. Anschließend entfernen wir diesen
Nutzer mit dem Befehl `mysqluser.remove`{.interpreted-text
role="option"}.
``` console
xyz00@hsadmin> mysqluser.search({where:{name:'xyz00_owner'}})
xyz00@hsadmin> mysqluser.remove({where:{name:'xyz00_owner'}})
```
Im letzten Beispiel aktualieren wir einen Benutzereintrag mit dem Befehl
`mysqluser.update`{.interpreted-text role="option"}. Der Benutzer wird
mit `where` ausgesucht, anschließend bekommt er mit `set` ein neues
Passwort.
``` console
xyz00@hsadmin> mysqluser.update({where:{name:'xyz00_owner'},set:{password:'neues-passwort'}})
```
source/referenz/hsadmin/postgresqldb/index.md
New file
@@ -0,0 +1,72 @@
# Modul postgresqldb {#kap-modul-postgresqldb}
## Funktionen
::: option
postgresqldb.search
Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
::: option
postgresqldb.add
Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten hinzu.
:::
::: option
postgresqldb.update
Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
::: option
postgresqldb.remove
Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `postgresqldb` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    postgresqldb.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `postgresqldb` stehen folgende Felder zur Verfügung.
name
:   Datenbankname (z.B. xyz00_abc)
owner
:   Datenbanknutzer (z.B. xyz00_owner)
encoding
:   Zeichensatz der Datenbank (Standard ist UTF-8)
## Beispiele
Im ersten Beispiel erzeugen wir die Datenbank `xyz00_abc` und übergeben
ihr als Besitzer den Datenbanknutzer `xyz00_owner`.
``` console
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_abc',owner:'xyz00_owner'}})
```
Die den beiden folgenden Beispielen lassen wir uns zunächst mit
`postgresqldb.search`{.interpreted-text role="option"} Informationen zur
Datenbank `xyz00_abc` anzeigen. Anschließend löschen wir sie mit
`postgresqldb.remove`{.interpreted-text role="option"}.
``` console
xyz00@hsadmin> postgresqldb.search({where:{name:'xyz00_abc'}})
xyz00@hsadmin> postgresqldb.remove({where:{name:'xyz00_abc'}})
```
source/referenz/hsadmin/postgresqluser/index.md
New file
@@ -0,0 +1,83 @@
# Modul postgresqluser {#kap-modul-postgresqluser}
## Funktionen
::: option
postgresqluser.search
Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern
und Werten
:::
::: option
postgresqluser.add
Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten hinzu.
:::
::: option
postgresqluser.update
Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck
angegebenen Feldern und Werten.
:::
::: option
postgresqluser.remove
Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `postgresqluser` kann entsprechend der folgenden
Befehlssyntax von `HSAdmin`{.interpreted-text role="command"} Felder
setzen oder verändern:
    postgresqluser.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `postgresqluser` stehen folgende Felder zur Verfügung.
name
:   Name des Datenbank-Benutzers (z.B. `xyz00_owner`)
password
:   Passwort des Datenbank-Benutzers
## Beispiele
Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer
`xyz00_owner` hinzu und geben ihm ein Passwort.
``` console
xyz00@hsadmin> postgresqluser.add ({set:{name:'xyz00_owner',password:'!1?2-3aBc'}})
```
Mit `postgresqluser.search`{.interpreted-text role="option"} können wir
die Eigenschaften eines Benutzers anzeigen. Der gewünschte Benutzer wird
mit `where` ausgewählt.
``` console
xyz00@hsadmin> postgresqluser.search ({where:{name:'xyz00_owner'}})
```
Mit `postgresqluser.update`{.interpreted-text role="option"} können
Eigenschaften eines Benutzers verändert werden. Der gewünschte Benutzer
wird mit `where` ausgewählt. Anschliend wird in unserem Beispiel mit
`set` ein neues Passwort gesetzt.
``` console
xyz00@hsadmin> postgresqluser.update ({where:{name:'xyz00_owner'},set:{password:'neues-passwort'}})
```
Und zuletzt können Datenbank-Benutzer auch wieder gelöscht werden. Dazu
benutzen wir den Befehl `postgresqluser.remove`{.interpreted-text
role="option"}. Der zu löschende Benutzer wird mit `where` ausgewählt.
``` console
xyz00@hsadmin> postgresqluser.remove ({where:{name:'xyz00_owner'}})
```
source/referenz/hsadmin/q/index.md
New file
@@ -0,0 +1,22 @@
# Modul q {#kap-modul-q}
## Funktionen
::: option
q.search
Das HSAdmin-Modul hat nur die Funktion `search`. Hiermit ist die Ausgabe
der bereits ausgeführten HSAdmin-Aktionen möglich. Die Ausgabe zeigt an,
ob eine Aktion erfolgreich abgeschlossen werden konnte oder ob beim
Ausrollen der Konfiguration auf den Server Fehler aufgetreten sind. Im
Erfolgsfall wird als Status \'done\' angezeigt. Wenn Fehler aufgetreten
sind wird der Status \'error\' ausgegeben. Daneben wird eine interne
Fehlermeldung im Feld \'exception\' angezeigt. Wenden Sie sich im
Fehlerfall bitte an den Service.
:::
## Beispiele
``` console
$  q.search ({where:{user:'xyz00'}})
```
source/referenz/hsadmin/skript/index.md
New file
@@ -0,0 +1,294 @@
# HSAdmin über Skripte steuern {#kap-hsscript-skript}
In `kap-hsadmin-syntax`{.interpreted-text role="numref"} wurde die
Option `-f`{.interpreted-text role="option"} erwähnt, die gesetzt werden
kann, um HSAdmin eine Datei zu übergeben, in der sich die Befehle
befinden. Die Option ermöglicht es, ohne großen Aufwand Skriptdateien zu
pflegen, mit denen wiederkehrende Aufgaben bequem erledigt werden
können. Dieses Kapitel zeigt, wie Sie die Anlage einer neuen
Wordpress-Website mit Hilfe eines solchen Skripts vereinfachen können.
Bevor Sie die eigentliche Wordpress-Software installiert, müssen mehrere
Schritte auf der Hostsharing-Plattform erledigt sein.
1.  Es existiert ein `Domain-Admin`{.interpreted-text role="role"} bzw.
    es wird ein neuer Domain-Admin angelegt.
2.  Es wird eine Domain erstellt und dem Domain-Admin zugewiesen.
3.  Es wird ein `Datenbank-Nutzer`{.interpreted-text role="role"}
    angelegt.
4.  Es wird eine Datenbank angelegt und dem Datenbank-Nutzer zugewiesen.
Mit der folgenden Skript-Datei kann man diese vier Schritte mit einem
Befehl ausführen.
``` {.text linenos=""}
user.add ({set:{name:'xyz00-domains',comment:'Domain-Admin',password:'!1?2-3aBc',shell:'/bin/bash'}})
domain.add ({set:{name:'beispiel.de',user:'xyz00-domains'}})
mysqluser.add  ({set:{name:'xyz00_owner',password:'?2?3-4cVg'}})
mysqldb.add ({set:{name:'xyz00_abc',owner:'xyz00_owner'}})
```
In Zeile 1 wird der Domain-Admin erzeugt, in Zeile 2 die Domain
`beispiel.de` angelegt, in Zeile 3 der Datenbank-Nutzer und in Zeile 4
die Datenbank. Es ist möglich, die Datei lesbarer zu formatieren, indem
man jedem Key-Value-Paar eine eigene Zeile zuweist.
``` {.text linenos=""}
user.add ({set:{
name:'xyz00-domains',
comment:'Domain-Admin',
password:'!1?2-3aBc',
shell:'/bin/bash'
}})
domain.add ({set:{
name:'beispiel.de',
user:'xyz00-domains'
}})
mysqluser.add ({set:{
name:'xyz00_owner',
password:'?2?3-4cVg'
}})
mysqldb.add ({set:{
name:'xyz00_abc',
owner:'xyz00_owner'
}})
```
Wenn Sie die Datei unter dem Namen `befehlsskript.txt`{.interpreted-text
role="file"} im Verzeichnis des `Paket-Admin`{.interpreted-text
role="role"} speichern, können Sie alle Befehle mit einem HSAdmin-Aufruf
abarbeiten:
``` console
xyz00@h50:~$ hsscript -f befehlsskript.txt
```
Wenn Sie beispielsweise häufig Wordpress-Websites installieren, können
Sie für jede Website eine solche Befehlsdatei anlegen und unter einem
sinnvollen Namen (z.B. `wordpress-beispiel_de.txt`{.interpreted-text
role="file"}) abspeichern.
::: admonition
Beachten Sie die richtige Reihenfolge
Bei der Anlage von Benutzern, Datenbanken und Domains ist die im
Beispiel gezeigt Reihenfolge einzuhalten. Um eine Domain anzulegen, muss
der Domain-Admin bereits existieren. Eine Datenbank kann nur erzeugt
werden, wenn der Datenbank-Nutzer bereits angelegt ist.
Beim Löschen müssen Sie die Reihenfolge umkehren: Datenbank löschen,
Datenbank-Nutzer löschen, Domain löschen, Domain-Admin löschen.
:::
Noch bequemer ist es, die notwendigen Benutzer, Domains und Datenbanken
mit Hilfe eines ausführlicheren JS-Skripts oder über die Python-API
anzulegen.
## HSAdmin mit Javascript ansprechen
Im Folgenden zeigen wir zwei JS-Skripts, die in der Regel im Verzeichnis
des `Paket-Admin`{.interpreted-text role="role"} mit dessen
Benutzerrechten aufgerufen werden. Mit dem ersten Skript erstellen wir
eine Domain und weisen ihr einen eigenen Domain-Admin zu, dessen Name
aus dem Namen der Domain abgeleitet wird. Mit dem zweiten Skript
erzeugen wir eine Datenbank und einen Datenbank-Nutzer, sodass wir unter
der gewünschten Domain zum Beispiel eine PHP-Anwendung wie Wordpress
einrichten können.
### JS-Skript zur Anlage einer Domain
Ein Skript, um eine Domain mit einem gesonderten Domain-Admin anzulegen,
könnte so aussehen:
::: {.literalinclude linenos=""}
createdomainandadmin.js
:::
Die Funktion `pwGen()` erzeugt ein achtstelliges Passwort aus einer
Reihe von vorgegebenen Zeichen. Empfehlenswert sind längere Passworte.
Die Funktion `createDomainAndDomainAdmin(args)` erzeugt die Domain und
den Domain-Admin. Der Namen des Domain-Admin ergibt sich aus dem Namen
der Domain. Bei einer Domain, die einen Bindestrich enthält, muss dieser
durch einen Unterstrich ersetzt werden, da Benutzernamen nur einen
Bindestrich enthalten dürfen.
Das Skript wird im Benutzerverzeichnis des Paket-Admin gespeichert und
ausführbar gemacht:
``` console
xyz00@h50:~$ chmod u+x createdomainandadmin.js
```
Anschließend können Sie es folgendermaßen aufrufen:
``` console
xyz00@h50:~$ ./createdomainandadmin.js my-domain.de
created domain my-domain.de with domainadmin xyz00-my_domain.de and password slo%haY=
```
Wenn Sie alle Domains mit einem einzigen Domain-Admin verwalten, können
Sie den Benutzernamen des Domain-Admin hart kodieren. Zeile 18 lautet
dann:
::: {.literalinclude lines="18"}
createdomain.js
:::
### JS-Skript zur Anlage einer Datenbank
Das Skript zur Anlage einer Datenbank und eines Datenbank-Nutzers sieht
ähnlich aus.
::: {.literalinclude linenos=""}
createuseranddb.js
:::
Die Funktion `createMySQLUserAndDB(args)` erzeugt den Datenbank-Nutzer
und die Datenbank. Da sich Datenbank und Datenbank-Nutzer nicht in die
Quere kommen, haben sie der Einfachheit halber den gleichen Namen.
Beim Aufruf des Skripts muss eine Zeichenkette übergeben werden, die
Bestandteil der Namen von Datenbank und Datenbank-Nutzer wird.
``` console
xyz00@h50:~$ ./createuseranddb.js my_domain_wordpress
created user and database xyz00_my_domain_wordpress with password 4fo=s3xY
```
::: attention
::: title
Attention
:::
Merken Sie sich die Passworte, da Sie diese später benötigen. Bei einer
Datenbank-Anwendungen müssen Sie bei der Konfiguration den
Datenbank-Benutzer und sein Passwort angeben.
:::
## Nutzung der Python-API {#kap-python-api}
Sie können HSAdmin auch remote über die Python-API des Programms
ansprechen. Das ermöglicht es Ihnen von einem entfernten Rechner aus
HSAdmin zu bedienen. Um mit der Python-API zu arbeiten müssen Sie
zunächst die Python-Bindings für HSAdmin installieren.
### Installation von hs.admin.api
Wir installieren die Python-Bindings in einer virtuellen
Python-Umgebung, sodass wir diese zunächst einrichten und aktivieren.
``` console
$ python3 -m venv /hsadmin
$ . /hsadmin/bin/activate
```
Anschließend klonen wir die Python-Bindings und installieren sie.
``` console
$ git clone https://dev.hostsharing.net//r/ansible/hs.admin.api.git
$ cd hs.admin.api
$ python setup.py install
```
Nun steht uns das Modul mit dem Python-Bindings in der virtuellen
Umgebung zur Verfügung, sodass wir es in einem Skript importieren
können.
### Python-Skript
Um die API in einem Skript nutzen zu können, müssen wir mit folgendem
Code ein API-Objekt erzeugen.
::: {.literalinclude linenos="" lines="1-9"}
createdomain.py
:::
Nun ist es möglich, mit der üblichen Syntax HSAdmin im Skript
anzusprechen.
Mit diesen beiden Befehlen legen wir beispielsweise einen Domain-Admin
und eine neue Domain an.
::: {.literalinclude lines="11-12"}
createdomain.py
:::
Eine Datenbank lässt sich folgendermaßen anlegen.
::: {.literalinclude lines="11-12"}
createuseranddb.py
:::
Nun wollen wir diese Befehle in ein Skript einbauen, das noch einige
andere nützliche Dinge für uns erledigt. Reseller und Webmaster, die
viele Anwendungen betreuen, buchen häufig mehrere Pakete bei
Hostsharing, sodass sie gerne ein Skript hätten, dem sie auch das Kürzel
für das Paket übergeben können, in dem sie eine Domain mit Datenbank
einrichten möchten. Außerdem wäre es hilfreich, wenn das Skript dafür
sorgt, dass Benutzernamen und Datenbankenname immer nach einem
einheitlichen Schema erzeugt werden, sodass die Orientierung leichter
fällt. In unserem Beispielskript übergeben wir daher dem Skript drei
Argumente:
1.  das Kürzel für das Paket
2.  den Domainnamen
3.  eine Projekt-ID
Die Projekt-ID darf nicht mehr als 10 Zeichen umfassen, da sie zusammen
mit dem fünfstelligen Paketkürzel in den Namen für Datenbank und
Datenbank-Nutzer verwendet wird. Diese dürfen aber nicht länger als 16
Zeichen sein. Als Schema für eine Projekt-ID kommt also beispielsweise
eine Kombination aus einer Kundennummer und einer Abkürzung in Frage.
Wir verwenden in unserem Beispiel dafür eine dreistellige Kundennummer
und die Abkürzung `wp` für Wordpress. Die Elemente trennen wir mit dem
Unterstrich, da nur dieser als Namensbestandteil erlaubt ist.
Wenn wir für den Kunden mit der Kundennummer 23 im Paket `xyz00` eine
Domain für einen Wordpress-Blog einrichten möchten, lautet der Aufruf
des Skripts folgendermaßen:
``` console
$ python createall.py xyz00 hs-example.de 023_wp
```
Der Code des Skripts sieht so aus:
::: {.literalinclude linenos=""}
createall.py
:::
In den ersten fünf Zeilen importieren wir einige Module bzw. Funktionen,
die wir benötigen. In den Zeilen 7 bis 9 lesen wir die übergebenen
Argumente aus und speichern die Werte in entsprechenden Variablen.
Um das API-Objekt zu erzeugen, benötigen wir das Passwort für den
übergebenen Paket-Admin. Wir lesen in Zeile 11 das Passwort aus dem
verschlüsselten Passwort-Tresor des Kommandozeilenprogramms
`pass`{.interpreted-text role="command"} aus und speichern es in der
Variablen `pw`. Weitere Informationen zu dem Programm finden Sie auf der
Website <https://www.passwordstore.org/>. Sie können natürlich andere
Programme wählen, um ein Passwort aus einem Passwort-Tresor auszulesen.
Falls Sie nur ein Paket bei Hostsharing verwalten, können Sie das
Passwort auch direkt ins Skript eintragen. Aus Sicherheitsgründen
sollten Sie dies möglichst vermeiden.
Anschließend erzeugt das Skript das API-Objekt, wobei es als Credentials
den Namen des Paket-Admin und sein Passwort übergibt. Der Namen des
Paket-Admin ist identisch mit dem Paket, in dem die Domain angelegt
werden soll.
Danach wird ein Zufallsgenerator definiert, mit die Passworte erzeugt
werden, die später benötigt werden. In Zeile 27 und 28 werden die
Passworte für den Domain-Admin und den Datenbank-Nutzer erzeugt und in
Variablen gespeichert. Direkt anschließend erzeugt das Skript aus den
beim Aufruf übergebenen Werten die Namen für den Domain-Admin, den
Datenbank-Nutzer und die Datenbank.
In den Zeilen 33 bis 36 werden der Domain-Admin, die Domain, den
Datenbank-Nutzer und die Datenbank angelegt.
Und zum Schluss gibt das Skript alle Daten aus.
Idealerweise würde ein solches Skript die neuen Benutzernamen mit den
jeweiligen Passworten in den Passwort-Tresor eintragen, sodass dies
nicht mit der Hand erledigt werden muss.
source/referenz/hsadmin/syntax/index.md
New file
@@ -0,0 +1,65 @@
# Syntax {#kap-hsadmin-syntax}
Die Funktionen von HSAdmin können über das Kommandozeilenprogramm
`hsscript`{.interpreted-text role="command"} aufgerufen werden, welches
Befehle per Parameter, Dateiübergabe oder interaktiv entgegennimmt. Der
Aufruf erfolgt nach folgender Syntax:
``` console
$ hsscript -u <Benutzer> -e <Befehl>...
```
Die folgenden Optionen können übergeben werden.
::: option
-u \--user
Benutzer, welcher zur Authentifizierung und Autorisierung verwendet
werden soll, zum Beispiel `xyz00`.
:::
::: option
-r \--runas
Benutzer, mit dessen Rechten der Befehl ausgeführt werden soll, zum
Beispiel `xzy00-doms`.
:::
::: option
-e \--expr
Der Befehl, der ausgeführt werden soll. Er setzt sich aus einer Reihe
von Parametern zusammen. Der Befehl hat folgende Syntax:
    module.function({where:{field:'value',...}, set:{field:'value',...}})
  --------------------------------------------------------------------------
  Parameter   Erläuterung
  ----------- --------------------------------------------------------------
  module      Modul, dessen Funktion aufgerufen werden soll (z.B. `user`
              oder `mysqldb`)
  function    Funktion, welche aufgerufen werden soll (`search`, `add`,
              `update`, `remove`)
  where       selektiert nach Wert eines oder mehrerer Felder
  set         setzt oder aktualisiert den Wert eines oder mehrerer Felder
  --------------------------------------------------------------------------
Die Module und Funktionen werden in den folgenden Kapiteln erklärt.
:::
::: option
-f \--file
Datei, aus welcher Befehle gelesen und ausgeführt werden sollen. Lesen
Sie dazu `kap-hsscript-skript`{.interpreted-text role="numref"}.
:::
::: option
-i \--interactive
Das Programm startet im interaktiven Modus. Die Befehle können am
Kommandozeilen-Prompt eingegeben werden.
:::
source/referenz/hsadmin/user/index.md
New file
@@ -0,0 +1,105 @@
# Modul user {#kap-modul-user}
## Funktionen
::: option
user.search
Suche Benutzer nach den im Befehlsausdruck angegebenen Feldern und
Werten
:::
::: option
user.add
Füge einen neuen Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten hinzu.
:::
::: option
user.update
Aktualisiere einen Benutzer nach den im Befehlsausdruck angegebenen
Feldern und Werten.
:::
::: option
user.remove
Lösche einen Benutzer nach den im Befehlsausdruck angegebenen Feldern
und Werten.
:::
## Editierbare Felder
Das HSAdmin-Modul `user` kann entsprechend der folgenden Befehlssyntax
von `HSAdmin`{.interpreted-text role="command"} Felder setzen oder
verändern:
    user.function({where:{field:'value',...}, set:{field:'value',...}})
Im Modul `user` stehen folgende Felder zur Verfügung.
name
:   Benutzerkennung (z.B. xyz00-abc)
comment
:   Kommentar, in dem zum Beispiel die Funktion des Benutzers
    beschrieben werden kann
password
:   Das Passwort
shell
:   Die zugewiesene Shell (z.B. `/bin/bash`)
quota_softlimit
:   Das zugewiesene `Quota`{.interpreted-text role="term"} in Megabyte
quote_hardlimit
:   Grenze der `Grace Period`{.interpreted-text role="term"}, bis zu der
    Überschreitungen des Softlimit toleriert werden. Angabe in Megabyte
## Beispiele
In einer interaktiven Sitzung wird mit folgendem Befehl der neue
Benutzer `xyz00-mustermann` angelegt.
```&