Files
AudioBookRequest/docs/getting-started/_print/index.html
2025-08-22 13:02:33 +00:00

585 lines
39 KiB
HTML

<!doctype html>
<html itemscope itemtype="http://schema.org/WebPage" lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="canonical" type="text/html" href="https://markbeep.github.io/AudioBookRequest/docs/getting-started/">
<link rel="alternate" type="application/rss&#43;xml" href="https://markbeep.github.io/AudioBookRequest/docs/getting-started/index.xml">
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="/AudioBookRequest/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/AudioBookRequest/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/AudioBookRequest/favicons/android-192x192.png" sizes="192x192">
<title>Getting Started | AudioBookRequest Docs</title>
<meta name="description" content="What does your user need to know to try your project?">
<meta property="og:url" content="https://markbeep.github.io/AudioBookRequest/docs/getting-started/">
<meta property="og:site_name" content="AudioBookRequest Docs">
<meta property="og:title" content="Getting Started">
<meta property="og:description" content="What does your user need to know to try your project?">
<meta property="og:locale" content="en">
<meta property="og:type" content="website">
<meta itemprop="name" content="Getting Started">
<meta itemprop="description" content="What does your user need to know to try your project?">
<meta itemprop="dateModified" content="2025-08-22T15:01:53+02:00">
<meta itemprop="wordCount" content="65">
<meta itemprop="keywords" content="Setup">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Getting Started">
<meta name="twitter:description" content="What does your user need to know to try your project?">
<link href="/AudioBookRequest/scss/main.css" rel="stylesheet">
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
crossorigin="anonymous"></script>
</head>
<body class="td-section">
<header>
<nav class="td-navbar js-navbar-scroll" data-bs-theme="dark">
<div class="container-fluid flex-column flex-md-row">
<a class="navbar-brand" href="/AudioBookRequest/"><span class="navbar-brand__logo navbar-logo"><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" style="enable-background:new 0 0 500 500"><g><path style="fill:#fff" d="M116.8525 421.9722c-5.7041.0-10.3442-4.3127-10.3442-9.6129V88.183c0-5.3002 4.6401-9.6117 10.3442-9.6117H320.858c3.0347.0 9.3959.5498 11.7506 2.6302l.3545.3442 58.905 63.2912c2.3101 2.491 2.9202 8.4928 2.9202 11.3184v256.2039c0 5.3002-4.6407 9.6129-10.3436 9.6129H116.8525z"/><g><g><g><path style="fill:#767676" d="M384.4445 423.2066H116.852c-6.3839.0-11.5786-4.8658-11.5786-10.8474V88.1831c0-5.9804 5.1947-10.8461 11.5786-10.8461h204.0062c.377.0 9.2786.0329 12.568 2.9389l.3947.3833 58.9508 63.337c3.2135 3.4652 3.2514 11.7924 3.2514 12.1593v256.2036C396.0231 418.3408 390.8284 423.2066 384.4445 423.2066zM116.5079 411.9189c.0848.0278.1999.0531.3441.0531h267.5925c.1442.0.2581-.0253.3441-.0531V156.1556c-.0076-.9033-.3593-3.7347-.7034-5.0037l-57.6527-61.9416c-1.4651-.3176-4.4533-.6389-5.5742-.6389H116.852c-.143.0-.2594.024-.3441.0531V411.9189zm267.4533-261.149zM327.0321 89.371v.0013V89.371z"/></g></g></g><g><g><path style="fill:#5b7fc0" d="M189.0874 210.1754l.0012-.0012c7.7751.0012 15.0295 4.1862 18.932 10.9234 1.9177 3.3159 2.9305 7.1011 2.9293 10.9378.0 5.8394-2.2733 11.3304-6.4032 15.4604-4.1288 4.1288-9.6186 6.4032-15.458 6.4032s-11.328-2.2733-15.458-6.4032-6.4032-9.6186-6.4056-15.4628c.0012-6.025 2.454-11.4897 6.4116-15.4473C177.5953 212.627 183.0601 210.1742 189.0874 210.1754zm7.993 21.8576c.0012-1.4042-.3687-2.7868-1.063-3.9887-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019-4.4077.0024-7.993 3.5877-7.993 7.993.0 2.1356.832 4.1431 2.3427 5.6539 1.5083 1.5083 3.5159 2.3403 5.6503 2.3415 2.1356.0 4.1443-.8308 5.6539-2.3403S197.0816 234.1722 197.0804 232.033z"/><path style="opacity:.3;fill:#fff" d="M189.0898 210.176c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3136 2.9377 7.0988 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8066-21.8612-21.8613.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 212.6276 183.0612 210.176 189.0898 210.176zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 236.239 197.0839 234.2399 197.0839 232.0372z"/><g><defs><path id="SVGID_1_" d="M194.7376 237.6875c-1.4461 1.4461-3.4452 2.3439-5.6479 2.3439-4.4077-.0024-7.9918-3.5865-7.9942-7.9942.0024-4.4125 3.5937-7.999 7.9942-7.9942 2.8443.0 5.497 1.5323 6.924 3.9983.6991 1.2067 1.0702 2.5881 1.0702 3.9959C197.0839 234.2399 196.1861 236.239 194.7376 237.6875z"/></defs><clipPath id="SVGID_2_"><use xlink:href="#SVGID_1_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_2_);fill:#fff" d="M190.0704 225.0237c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9546.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.663-2.8588-6.116.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C193.7885 225.7247 191.9774 225.0237 190.0704 225.0237z"/><path style="opacity:.13;clip-path:url(#SVGID_2_);fill:#020202" d="M190.0704 225.0237c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9546.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.663-2.8588-6.116.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C193.7885 225.7247 191.9774 225.0237 190.0704 225.0237z"/></g><g><defs><path id="SVGID_3_" d="M189.0898 210.176c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3136 2.9377 7.0988 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8066-21.8612-21.8613.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 212.6276 183.0612 210.176 189.0898 210.176zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 236.239 197.0839 234.2399 197.0839 232.0372z"/></defs><clipPath id="SVGID_4_"><use xlink:href="#SVGID_3_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_4_);fill:#5b7fc0" d="M172.6595 215.6045c-3.96 3.96-6.4116 9.4235-6.4116 15.452-.0024 12.0547 9.8066 21.8636 21.8613 21.8612 12.0547.0024 21.8636-9.797 21.8613-21.8612.0024-3.8475-1.0151-7.6326-2.9353-10.9462-3.8977-6.7324-11.1497-10.9151-18.926-10.9151C182.0806 209.1953 176.6171 211.647 172.6595 215.6045z"/></g></g><rect x="198.8952" y="225.1043" style="fill:#5b7fc0" width="122.6266" height="13.8671"/></g><g><path style="fill:#d95140" d="M189.0874 155.7611l.0012-.0012c7.7751.0012 15.0295 4.1862 18.932 10.9234 1.9177 3.3159 2.9305 7.1011 2.9293 10.9378.0 5.8394-2.2733 11.3304-6.4032 15.4604-4.1288 4.1288-9.6186 6.4032-15.458 6.4032s-11.328-2.2733-15.458-6.4032-6.4032-9.6186-6.4056-15.4628c.0012-6.0249 2.454-11.4897 6.4116-15.4473C177.5953 158.2128 183.0601 155.7599 189.0874 155.7611zm7.993 21.8577c.0012-1.4042-.3687-2.7868-1.063-3.9887-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019-4.4077.0024-7.993 3.5877-7.993 7.993.0 2.1356.832 4.1431 2.3427 5.6539 1.5083 1.5083 3.5159 2.3403 5.6503 2.3415 2.1356.0 4.1443-.8308 5.6539-2.3403C196.2508 181.7667 197.0816 179.758 197.0804 177.6188z"/><path style="opacity:.3;fill:#fff" d="M189.0898 155.7617c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3135 2.9377 7.0987 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8066-21.8612-21.8613.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 158.2134 183.0612 155.7617 189.0898 155.7617zm7.9941 21.8613c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 181.8248 197.0839 179.8256 197.0839 177.623z"/><g><defs><path id="SVGID_5_" d="M194.7376 183.2733c-1.4461 1.4461-3.4452 2.3439-5.6479 2.3439-4.4077-.0024-7.9918-3.5865-7.9942-7.9942.0024-4.4125 3.5937-7.9989 7.9942-7.9942 2.8443.0 5.497 1.5323 6.924 3.9983.6991 1.2067 1.0702 2.5881 1.0702 3.9959C197.0839 179.8256 196.1861 181.8248 194.7376 183.2733z"/></defs><clipPath id="SVGID_6_"><use xlink:href="#SVGID_5_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_6_);fill:#fff" d="M190.0704 170.6095c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9546.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.663-2.8588-6.116.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C193.7885 171.3104 191.9774 170.6095 190.0704 170.6095z"/><path style="opacity:.13;clip-path:url(#SVGID_6_);fill:#020202" d="M190.0704 170.6095c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9546.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.663-2.8588-6.116.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C193.7885 171.3104 191.9774 170.6095 190.0704 170.6095z"/></g><g><defs><path id="SVGID_7_" d="M189.0898 155.7617c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3135 2.9377 7.0987 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8066-21.8612-21.8613.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 158.2134 183.0612 155.7617 189.0898 155.7617zm7.9941 21.8613c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 181.8248 197.0839 179.8256 197.0839 177.623z"/></defs><clipPath id="SVGID_8_"><use xlink:href="#SVGID_7_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_8_);fill:#d95140" d="M172.6595 161.1903c-3.96 3.96-6.4116 9.4235-6.4116 15.452-.0024 12.0547 9.8066 21.8636 21.8613 21.8613 12.0547.0024 21.8636-9.797 21.8613-21.8613.0024-3.8474-1.0151-7.6326-2.9353-10.9462-3.8977-6.7324-11.1497-10.9151-18.926-10.9151C182.0806 154.7811 176.6171 157.2327 172.6595 161.1903z"/></g><rect x="198.8952" y="170.69" style="fill:#d95140" width="122.6266" height="13.8671"/></g><g><g><path style="fill:#56a55c" d="M189.5379 264.6147l.0012-.0012c7.7751.0012 15.0294 4.1862 18.932 10.9235 1.9177 3.3159 2.9305 7.1011 2.9293 10.9378.0 5.8394-2.2733 11.3304-6.4032 15.4604-4.1288 4.1288-9.6186 6.4032-15.458 6.4032-5.8394.0-11.3281-2.2733-15.458-6.4032-4.13-4.13-6.4032-9.6186-6.4056-15.4628.0012-6.0249 2.454-11.4897 6.4116-15.4472C178.0458 267.0663 183.5105 264.6135 189.5379 264.6147zm7.993 21.8576c.0012-1.4042-.3687-2.7868-1.063-3.9887-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019-4.4077.0024-7.993 3.5877-7.993 7.993.0 2.1356.832 4.1431 2.3427 5.6538 1.5083 1.5083 3.5159 2.3403 5.6503 2.3415 2.1356.0 4.1443-.8308 5.6539-2.3403C196.7013 290.6202 197.5321 288.6115 197.5309 286.4723z"/><path style="opacity:.3;fill:#fff" d="M189.5403 264.6153c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3135 2.9377 7.0987 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8065-21.8612-21.8613.0-6.0285 2.4516-11.492 6.4116-15.452C178.0482 267.0669 183.5117 264.6153 189.5403 264.6153zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9941.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.6366 290.6783 197.5344 288.6792 197.5344 286.4765z"/><g><defs><path id="SVGID_9_" d="M195.1881 292.1268c-1.4461 1.4461-3.4452 2.3439-5.6479 2.3439-4.4077-.0024-7.9918-3.5865-7.9942-7.9942.0024-4.4125 3.5937-7.9989 7.9942-7.9941 2.8443.0 5.497 1.5323 6.924 3.9983.6991 1.2067 1.0702 2.5881 1.0702 3.9959C197.5344 288.6792 196.6366 290.6783 195.1881 292.1268z"/></defs><clipPath id="SVGID_10_"><use xlink:href="#SVGID_9_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_10_);fill:#fff" d="M190.5209 279.463c-4.4005-.0048-7.9918 3.5817-7.9942 7.9941.0011 1.9547.7088 3.7452 1.8782 5.1354-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161.0024-4.4125 3.5936-7.999 7.9942-7.9941 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C194.239 280.164 192.4279 279.463 190.5209 279.463z"/><path style="opacity:.13;clip-path:url(#SVGID_10_);fill:#020202" d="M190.5209 279.463c-4.4005-.0048-7.9918 3.5817-7.9942 7.9941.0011 1.9547.7088 3.7452 1.8782 5.1354-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161.0024-4.4125 3.5936-7.999 7.9942-7.9941 2.3802-1e-4 4.616 1.0833 6.1218 2.8788C194.239 280.164 192.4279 279.463 190.5209 279.463z"/></g><g><defs><path id="SVGID_11_" d="M189.5403 264.6153c7.7763.0 15.0283 4.1826 18.926 10.9151 1.9201 3.3135 2.9377 7.0987 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8613-12.0547.0024-21.8636-9.8065-21.8612-21.8613.0-6.0285 2.4516-11.492 6.4116-15.452C178.0482 267.0669 183.5117 264.6153 189.5403 264.6153zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9941.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.6366 290.6783 197.5344 288.6792 197.5344 286.4765z"/></defs><clipPath id="SVGID_12_"><use xlink:href="#SVGID_11_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_12_);fill:#56a55c" d="M173.11 270.0439c-3.96 3.96-6.4116 9.4235-6.4116 15.452-.0024 12.0547 9.8066 21.8636 21.8613 21.8613 12.0547.0024 21.8636-9.797 21.8613-21.8613.0024-3.8474-1.0151-7.6326-2.9353-10.9462-3.8977-6.7325-11.1497-10.9151-18.926-10.9151C182.5311 263.6346 177.0676 266.0863 173.11 270.0439z"/></g></g><rect x="199.3456" y="279.5436" style="fill:#56a55c" width="122.6266" height="13.8671"/></g><g><g><path style="fill:#f1bc42" d="M189.0874 318.7208l.0012-.0012c7.7751.0012 15.0295 4.1862 18.932 10.9234 1.9177 3.3159 2.9305 7.1011 2.9293 10.9378.0 5.8394-2.2733 11.3305-6.4032 15.4604-4.1288 4.1288-9.6186 6.4032-15.458 6.4032s-11.328-2.2733-15.458-6.4032-6.4032-9.6186-6.4056-15.4628c.0012-6.025 2.454-11.4897 6.4116-15.4472C177.5953 321.1724 183.0601 318.7196 189.0874 318.7208zm7.993 21.8576c.0012-1.4042-.3687-2.7868-1.063-3.9887-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019-4.4077.0024-7.993 3.5877-7.993 7.993.0 2.1356.832 4.1431 2.3427 5.6539 1.5083 1.5083 3.5159 2.3403 5.6503 2.3415 2.1356.0 4.1443-.8308 5.6539-2.3403S197.0816 342.7176 197.0804 340.5784z"/><path style="opacity:.3;fill:#fff" d="M189.0898 318.7214c7.7763.0 15.0283 4.1826 18.926 10.915 1.9201 3.3136 2.9377 7.0988 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8612-12.0547.0024-21.8636-9.8065-21.8612-21.8612.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 321.173 183.0612 318.7214 189.0898 318.7214zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 344.7844 197.0839 342.7853 197.0839 340.5826z"/><g><defs><path id="SVGID_13_" d="M194.7376 346.2329c-1.4461 1.4461-3.4452 2.3439-5.6479 2.3439-4.4077-.0024-7.9918-3.5865-7.9942-7.9942.0024-4.4125 3.5937-7.999 7.9942-7.9942 2.8443.0 5.497 1.5323 6.924 3.9983.6991 1.2067 1.0702 2.5881 1.0702 3.9959C197.0839 342.7853 196.1861 344.7844 194.7376 346.2329z"/></defs><clipPath id="SVGID_14_"><use xlink:href="#SVGID_13_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_14_);fill:#fff" d="M190.0704 333.5691c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9547.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0834 6.1218 2.8788C193.7885 334.2701 191.9774 333.5691 190.0704 333.5691z"/><path style="opacity:.13;clip-path:url(#SVGID_14_);fill:#020202" d="M190.0704 333.5691c-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0011 1.9547.7088 3.7452 1.8782 5.1354-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161.0024-4.4125 3.5936-7.999 7.9942-7.9942 2.3802-1e-4 4.616 1.0834 6.1218 2.8788C193.7885 334.2701 191.9774 333.5691 190.0704 333.5691z"/></g><g><defs><path id="SVGID_15_" d="M189.0898 318.7214c7.7763.0 15.0283 4.1826 18.926 10.915 1.9201 3.3136 2.9377 7.0988 2.9353 10.9462.0024 12.0643-9.8065 21.8636-21.8613 21.8612-12.0547.0024-21.8636-9.8065-21.8612-21.8612.0-6.0285 2.4516-11.4921 6.4116-15.452C177.5977 321.173 183.0612 318.7214 189.0898 318.7214zm7.9941 21.8612c0-1.4078-.3711-2.7892-1.0702-3.9959-1.4269-2.466-4.0797-3.9983-6.924-3.9983-4.4005-.0048-7.9918 3.5817-7.9942 7.9942.0024 4.4077 3.5865 7.9918 7.9942 7.9942 2.2027.0 4.2018-.8978 5.6479-2.3439C196.1861 344.7844 197.0839 342.7853 197.0839 340.5826z"/></defs><clipPath id="SVGID_16_"><use xlink:href="#SVGID_15_" style="overflow:visible"/></clipPath><path style="clip-path:url(#SVGID_16_);fill:#f1bc42" d="M172.6595 324.15c-3.96 3.96-6.4116 9.4235-6.4116 15.452-.0024 12.0547 9.8066 21.8636 21.8613 21.8612 12.0547.0024 21.8636-9.797 21.8613-21.8612.0024-3.8474-1.0151-7.6327-2.9353-10.9462-3.8977-6.7324-11.1497-10.9151-18.926-10.9151C182.0806 317.7407 176.6171 320.1924 172.6595 324.15z"/></g></g><rect x="198.8952" y="333.6497" style="fill:#f1bc42" width="122.6266" height="13.8671"/></g></g></svg></span><span class="navbar-brand__name">AudioBookRequest Docs</span></a>
<div class="td-navbar-nav-scroll ms-md-auto" id="main_navbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="/AudioBookRequest/docs/"><span>Documentation</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/AudioBookRequest/community/"><span>Community</span></a>
</li>
<li class="td-light-dark-menu nav-item dropdown">
<svg xmlns="http://www.w3.org/2000/svg" class="d-none">
<symbol id="check2" viewBox="0 0 16 16">
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/>
</symbol>
<symbol id="circle-half" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
</symbol>
<symbol id="moon-stars-fill" viewBox="0 0 16 16">
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"/>
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"/>
</symbol>
<symbol id="sun-fill" viewBox="0 0 16 16">
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"/>
</symbol>
</svg>
<button class="btn btn-link nav-link dropdown-toggle d-flex align-items-center"
id="bd-theme"
type="button"
aria-expanded="false"
data-bs-toggle="dropdown"
data-bs-display="static"
aria-label="Toggle theme (auto)">
<svg class="bi my-1 theme-icon-active"><use href="#circle-half"></use></svg>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="bd-theme-text">
<li>
<button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="light" aria-pressed="false">
<svg class="bi me-2 opacity-50"><use href="#sun-fill"></use></svg>
Light
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
</button>
</li>
<li>
<button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="dark" aria-pressed="false">
<svg class="bi me-2 opacity-50"><use href="#moon-stars-fill"></use></svg>
Dark
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
</button>
</li>
<li>
<button type="button" class="dropdown-item d-flex align-items-center active" data-bs-theme-value="auto" aria-pressed="true">
<svg class="bi me-2 opacity-50"><use href="#circle-half"></use></svg>
Auto
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
</button>
</li>
</ul>
</li>
</ul>
</div>
<div class="d-none d-lg-block">
<div class="td-search">
<div class="td-search__icon"></div>
<input type="search" class="td-search__input form-control td-search-input" placeholder="Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</div>
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<main class="col-12 col-md-9 col-xl-8 ps-md-5" role="main">
<div class="td-content">
<div class="pageinfo pageinfo-primary d-print-none">
<p>
This is the multi-page printable view of this section.
<a href="#" onclick="print();return false;">Click here to print</a>.
</p><p>
<a href="/AudioBookRequest/docs/getting-started/">Return to the regular view of this page</a>.
</p>
</div>
<h1 class="title">Getting Started</h1>
<div class="lead">What does your user need to know to try your project?</div>
<ul>
<li>1: <a href="#pg-a691501dfcc5f3c49a37c71cc3bc328c">Running the app</a></li>
<ul>
<li>1.1: <a href="#pg-56f160650d9ae8a1d51d83a2385ca883">Docker</a></li>
<li>1.2: <a href="#pg-2016a378b2772b1d4cb4b3b667daef42">Docker Compose</a></li>
<li>1.3: <a href="#pg-30980cef34b7434306b41404b74d95d8">Kubernetes</a></li>
<li>1.4: <a href="#pg-b0367b929f44cfb5a3742b2580ae37fa">Bare Metal</a></li>
</ul>
<li>2: <a href="#pg-adb41a14461f8e9f8c644d46e6993994">First Login</a></li>
<ul>
</ul>
</ul>
<div class="content">
<h2 id="prerequisites">Prerequisites<a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"></a></h2>
<p>AudioBookRequest has been packaged as a <a href="https://www.docker.com/">Docker</a> image
to make it easy to deploy and run on servers. While it is possible to run ABR
without Docker, that option should be avoided if possible and only used for
local development, as a lot of things can change from version to version.</p>
<h2 id="setup">Setup<a class="td-heading-self-link" href="#setup" aria-label="Heading self-link"></a></h2>
<p>Head to <a href="/AudioBookRequest/docs/getting-started/running-the-app/">Running the app</a> for instructions on how to run ABR.</p>
</div>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-a691501dfcc5f3c49a37c71cc3bc328c">1 - Running the app</h1>
<div class="lead">Getting AudioBookRequest up and running.</div>
<p>The app has a docker image that simplifies the deployment. The preferred methods
of running the application all revolve around running the Docker image in
different ways.</p>
<p>Select the method you want to use to deploy below or if your tool is not listed
(for example Portainer), head to the <a href="/AudioBookRequest/docs/getting-started/running-the-app/docker/">docker</a> page.</p>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-56f160650d9ae8a1d51d83a2385ca883">1.1 - Docker</h1>
<div class="lead">How to get started using Docker.</div>
<p>If you prefer to run the app manually with docker, you can simply run the
following command:</p>
<div class="highlight"><pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>docker run -p 8000:8000 -v <span style="color:#c678dd">$(</span><span style="color:#ef8383">pwd</span><span style="color:#c678dd">)</span>/config:/config markbeep/audiobookrequest:1
</span></span></code></pre></div><p>This will start the container on port 8000 and create the <code>config/</code> directory in
your current working directory.</p>
<p>The above command might break on Windows. Instead, use
<code>${PWD}\config:/config ...</code> in PowerShell or <code>%cd%\config:/config ...</code> in
Windows Command Prompt.</p>
<div class="alert alert-primary" role="alert">
<h4 class="alert-heading">Versions</h4>
<p>The <code>:1</code> at the end denotes the image version.
Check <a href="https://hub.docker.com/r/markbeep/audiobookrequest/tags">dockerhub</a> for
any other versions you can use instead.</p>
<p>The <code>:latest</code> tag will give you the last non-nightly release, but it is not
recommended incase of changes that are not backwards compatible.</p>
<p>For experimental builds (latest commits in the <code>main</code> branch of the repository),
the <code>:nightly</code> version tag can be used.</p>
</div>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-2016a378b2772b1d4cb4b3b667daef42">1.2 - Docker Compose</h1>
<div class="lead">How to get started using Docker-Compose.</div>
<p>Docker-compose works the similar way as <a href="/AudioBookRequest/docs/getting-started/running-the-app/docker/">Docker</a>.</p>
<p>The basic docker compose file is as follows:</p>
<div class="highlight"><pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#e06c75">services</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">web</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">image</span>: <span style="color:#98c379">markbeep/audiobookrequest:1</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">ports</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#98c379">&#39;8000:8000&#39;</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">volumes</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#98c379">./config:/config</span>
</span></span></code></pre></div><p>If you want to add any environment variables, you can add them as explained
<a href="https://docs.docker.com/compose/how-tos/environment-variables/set-environment-variables/">here</a>.
It would look along the lines of this:</p>
<div class="highlight"><pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#e06c75">services</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">web</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">image</span>: <span style="color:#98c379">markbeep/audiobookrequest:1</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">ports</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#98c379">&#39;8000:5432&#39;</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">volumes</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#98c379">./config:/config</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">environment</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">ABR_APP__PORT</span>: <span style="color:#d19a66">5432</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">ABR_APP__OPENAPI_ENABLED</span>: <span style="color:#b756ff;font-weight:bold">true</span>
</span></span></code></pre></div>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-30980cef34b7434306b41404b74d95d8">1.3 - Kubernetes</h1>
<div class="lead">How to get started using Kubernetes.</div>
<p>Here&rsquo;s an example for a kubernetes deployment file you&rsquo;d use:</p>
<div class="highlight"><pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#e06c75">apiVersion</span>: <span style="color:#98c379">apps/v1</span>
</span></span><span style="display:flex;"><span><span style="color:#e06c75">kind</span>: <span style="color:#98c379">Deployment</span>
</span></span><span style="display:flex;"><span><span style="color:#e06c75">metadata</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">name</span>: <span style="color:#98c379">audiobookrequest</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">labels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">app</span>: <span style="color:#98c379">audiobookrequest</span>
</span></span><span style="display:flex;"><span><span style="color:#e06c75">spec</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">replicas</span>: <span style="color:#d19a66">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">selector</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">matchLabels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">app</span>: <span style="color:#98c379">audiobookrequest</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">template</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">metadata</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">labels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">app</span>: <span style="color:#98c379">audiobookrequest</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">spec</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">containers</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#e06c75">name</span>: <span style="color:#98c379">audiobookrequest</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">image</span>: <span style="color:#98c379">markbeep/audiobookrequest:1</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">imagePullPolicy</span>: <span style="color:#98c379">Always</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#e06c75">mountPath</span>: <span style="color:#98c379">/config</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">name</span>: <span style="color:#98c379">abr-config</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">ports</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#e06c75">name</span>: <span style="color:#98c379">http-request</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">containerPort</span>: <span style="color:#d19a66">8000</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">volumes</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#e06c75">name</span>: <span style="color:#98c379">abr-config</span>
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">hostPath</span>:
</span></span><span style="display:flex;"><span> <span style="color:#e06c75">path</span>: <span style="color:#98c379">/mnt/disk/AudioBookRequest/</span>
</span></span></code></pre></div><p>For the volume you can assign it a host path on a node, or assign it to a PVC.</p>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-b0367b929f44cfb5a3742b2580ae37fa">1.4 - Bare Metal</h1>
<div class="lead">How to get started <strong>without</strong> Docker.</div>
<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>
<p>The bare metal approach should
only be the last option. Try to get it working with Docker or get support on the
Discord server before trying to set ABR up for a bare metal deployment.</p>
<p>There are no guarantees that if one version works locally that it won&rsquo;t suddenly
break in the next because of a new dependency, new file structure or something
else.</p>
</div>
<p>To run ABR locally without Docker, the same steps as for the
<a href="/AudioBookRequest/docs/local-development/">local development</a> have to be followed. First, follow
the instructions to get local development working.</p>
<p>Once local development works, there are a few adjustments that have to be made
to run the app in production mode instead of debug/local mode.</p>
<ol>
<li>Delete the <code>.env.local</code> file or delete all contents in it.</li>
<li>Run the python script to fetch and download all required javascript files:
<code>uv run python /app/util/fetch_js.py</code>. This should populate your <code>static/</code>
directory with some new js files.</li>
<li>Instead of running <code>fastapi dev</code> you want to execute <code>fastapi start</code> to start
the webserver.</li>
<li>Create a file called <code>.env</code> and place any environment variables you want to
set in there.</li>
<li>If you intend to change the port (documented as the env variable
<code>ABR_APP__PORT</code>), you&rsquo;ll have to run fastapi with the <code>--port &lt;PORT&gt;</code> flag:
<div class="highlight"><pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>fastapi run --port <span style="color:#d19a66">5432</span>
</span></span></code></pre></div></li>
</ol>
<p>With these changes your deployment will be running in production mode.</p>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-adb41a14461f8e9f8c644d46e6993994">2 - First Login</h1>
<div class="lead">Logging in the first time</div>
<p>Once you get AudioBookRequest running, you&rsquo;ll be greeted with an initialization
page when you visit the website.</p>
<p><img src="/AudioBookRequest/docs/getting-started/first-login/login.png" alt="Login Page"></p>
<p>On this page you have to set the type of login you want to use for the app and
then create the login details for the root admin. You can choose from 3 login
types on this page:</p>
<ul>
<li><strong>Basic Auth:</strong> This is the most simple form of login. Your browser will show
a popup login dialog which will then be used to log in to the site. Password
managers usually don&rsquo;t work for this type of login, but because it is very
simple you can also easily send authenticated requests in scripts.
<a href="https://en.wikipedia.org/wiki/Basic_access_authentication">Read more here</a>.</li>
<li><strong>Forms:</strong> This is the standard type of login where you fill out a login-form.
Password managers usually work with this.</li>
<li><strong>None:</strong> This turns off all authentication. This is best if you have a proxy
and are the only user or you don&rsquo;t mind everyone having root access to the
site.</li>
</ul>
<div class="alert alert-primary" role="alert">
<h4 class="alert-heading">OpenID Connect</h4>
AudioBookRequest supports logging in with
OpenID Connect. You&rsquo;ll have to first select one of the login-types above to be
able to adjust the OIDC settings. Head to the
<a href="../../tutorials/oidc">OIDC Tutorial</a> for more info.
</div>
<div class="alert alert-warning" role="alert">
<h4 class="alert-heading">Warning</h4>
Even if you intend to turn off all
authentication or want to later use OIDC, you should take note of the
username/password you set. You&rsquo;ll need them once you decide to ever change the
login type.
</div>
</div>
</main>
</div>
</div>
<footer class="td-footer row d-print-none">
<div class="container-fluid">
<div class="row mx-md-2">
<div class="td-footer__left col-6 col-sm-4 order-sm-1">
<ul class="td-footer__links-list">
<li class="td-footer__links-item" data-bs-toggle="tooltip" title="Discord" aria-label="Discord">
<a target="_blank" rel="noopener" href="https://discord.gg/SsFRXWMg7s" aria-label="Discord">
<i class="fab fa-discord"></i>
</a>
</li>
</ul>
</div><div class="td-footer__right col-6 col-sm-4 order-sm-3">
<ul class="td-footer__links-list">
<li class="td-footer__links-item" data-bs-toggle="tooltip" title="GitHub" aria-label="GitHub">
<a target="_blank" rel="noopener" href="https://github.com/google/docsy" aria-label="GitHub">
<i class="fab fa-github"></i>
</a>
</li>
</ul>
</div><div class="td-footer__center col-12 col-sm-4 py-2 order-sm-2">
<span class="td-footer__copyright">&copy;
2025&ndash;2025
<span class="td-footer__authors">markbeep | <a href="https://creativecommons.org/licenses/by/4.0">CC BY 4.0</a> |</span></span><span class="td-footer__all_rights_reserved">All Rights Reserved</span>
</div>
</div>
</div>
</footer>
</div>
<script src="/AudioBookRequest/js/main.js"></script>
<script defer src="/AudioBookRequest/js/click-to-copy.js" crossorigin="anonymous"></script>
<script src='/AudioBookRequest/js/tabpane-persist.js'></script>
</body>
</html>