- Add videodb PHP/MySQL media collection manager (Blu-ray, DVD, CD) - Dockerfile: PHP 8.1 + Apache with GD/mysqli/exif extensions - docker-compose.yml: app on port 6761 + MySQL 8.0 with health checks - docker-entrypoint.sh: auto-generates config.inc.php from env vars, waits for MySQL, initializes DB schema idempotently - init-db.php: CLI schema installer using app's own prefix_query() logic - Persistent volumes for DB, cache, and cover images Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
11 KiB
XML
31 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0" width="300" height="73" id="svg1901">
|
|
<defs id="defs1903">
|
|
<clipPath id="clipPath3318">
|
|
<rect width="61.964287" height="61.964287" rx="23.75" ry="23.75" x="82.142853" y="127.36217" style="opacity: 0.696; fill: none; fill-opacity: 1; stroke: rgb(0, 0, 0); stroke-width: 1.5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3320"/>
|
|
</clipPath>
|
|
<clipPath id="clipPath3322">
|
|
<rect width="61.964287" height="61.964287" rx="23.75" ry="23.75" x="82.142853" y="127.36217" style="opacity: 0.696; fill: none; fill-opacity: 1; stroke: rgb(0, 0, 0); stroke-width: 1.5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3324"/>
|
|
</clipPath>
|
|
<clipPath id="clipPath3326">
|
|
<rect width="61.964287" height="61.964287" rx="23.75" ry="23.75" x="82.142853" y="127.36217" style="opacity: 0.696; fill: none; fill-opacity: 1; stroke: rgb(0, 0, 0); stroke-width: 1.5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3328"/>
|
|
</clipPath>
|
|
</defs>
|
|
<g style="opacity: 1;" id="layer1">
|
|
<rect width="61.964287" height="61.964287" rx="23.75" ry="23.75" x="6.4285669" y="5.9335957" style="opacity: 1; fill: rgb(14, 143, 19); fill-opacity: 1; stroke: none; stroke-width: 1.5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3330"/>
|
|
<path d="M 106.59741,32.174729 L 113.06926,32.174729 L 113.06926,57.214729 L 106.59741,57.214729 L 106.59741,32.174729 M 106.59741,23.200619 L 113.06926,23.200619 L 113.06926,29.868569 L 106.59741,29.868569 L 106.59741,23.200619 M 124.73186,23.127349 L 124.73186,32.621159 L 131.67256,32.621159 L 131.67256,38.467029 L 124.73186,38.467029 L 124.73186,47.349589 C 124.79487,49.722939 126.47553,50.785559 127.77338,50.743849 L 131.82408,50.743849 L 131.82408,57.214729 L 126.54464,57.214729 C 121.17802,57.303999 117.79349,52.423599 117.79349,47.081729 L 117.79349,23.127349 M 77.632044,23.306219 L 90.538984,23.306219 C 93.093924,23.306259 94.995454,23.421749 96.243594,23.652679 C 100.45905,24.430329 102.92157,28.534269 103.09352,31.829149 C 103.26529,35.120589 101.92794,37.404249 100.07413,39.174119 C 101.44643,40.340439 103.39143,42.895179 103.39364,47.350579 C 103.39586,51.805979 100.65138,56.160779 95.771574,56.935999 C 94.684964,57.059179 92.778224,57.136179 88.622754,57.166969 L 77.632044,57.166969 L 77.632044,23.306219 M 84.478494,29.566979 L 84.478494,36.771989 L 87.783244,36.771989 C 90.172564,36.772009 91.657264,36.736589 92.237344,36.665719 C 93.286984,36.538219 94.108744,36.169819 94.702644,35.560529 C 95.310314,34.937109 95.614164,34.122379 95.614184,33.116359 C 95.614164,32.152879 95.351754,31.373569 94.826954,30.778449 C 94.315914,30.169189 93.549394,29.800799 92.527394,29.673249 C 91.919674,29.602429 90.172564,29.567009 87.286044,29.566979 L 84.478494,29.566979 M 84.478494,43.032749 L 84.478494,50.747629 L 89.187504,50.747629 C 91.284584,50.747639 92.614914,50.688589 93.178524,50.570509 C 94.043544,50.413059 94.744774,50.032579 95.282164,49.429009 C 95.832624,48.812359 96.107864,47.992329 96.107884,46.968909 C 96.107864,46.102959 95.898154,45.368219 95.478764,44.764649 C 95.059324,44.161129 94.449864,43.721589 93.650364,43.446049 C 92.863944,43.170529 91.146964,43.032759 88.499404,43.032749 L 84.478494,43.032749" style="font-size: 43.8754px; font-style: normal; font-weight: bold; opacity: 1; fill: rgb(14, 143, 19); fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; font-family: DejaVu Sans Condensed;" id="text2218"/>
|
|
<path d="M 130.56223,23.068893 L 157.10046,23.068893 L 157.10046,29.711942 L 147.56126,29.711942 L 147.56126,57.151622 L 140.12285,57.151622 L 140.12285,29.711942 L 130.56223,29.711942 L 130.56223,23.068893" style="font-size: 45.3047px; font-style: normal; font-weight: bold; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; font-family: DejaVu Sans Condensed;" id="text3228"/>
|
|
<path d="M 187.69196,31.977679 C 184.81064,31.977679 182.15136,33.597079 180.91071,35.602679 C 179.67006,37.608279 179.44196,39.690689 179.44196,41.477679 L 179.44196,57.008929 L 186.44196,57.008929 L 186.44196,41.477679 C 186.44196,40.498899 186.69758,39.584209 186.87946,39.290179 C 187.06134,38.996149 186.79915,38.977679 187.69196,38.977679 L 194.62946,38.977679 L 194.62946,31.977679 L 187.69196,31.977679 z " style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 7; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="path3237"/>
|
|
<path d="M 204.62946,31.977679 C 201.74814,31.977679 199.12011,33.597079 197.87946,35.602679 C 196.63881,37.608279 196.41071,39.690689 196.41071,41.477679 L 196.41071,57.008929 L 203.41071,57.008929 L 203.41071,41.477679 C 203.41071,40.498899 203.66633,39.584209 203.84821,39.290179 C 204.03009,38.996149 203.73664,38.977679 204.62946,38.977679 L 211.59821,38.977679 L 211.59821,31.977679 L 204.62946,31.977679 z " style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 7; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="path3240"/>
|
|
<path d="M 276.16044,23.127349 L 276.16044,32.621159 L 283.10114,32.621159 L 283.10114,38.467029 L 276.16044,38.467029 L 276.16044,47.349589 C 276.22345,49.722939 277.90411,50.785559 279.20196,50.743849 L 283.25266,50.743849 L 283.25266,57.214729 L 277.97322,57.214729 C 272.6066,57.303999 269.22207,52.423599 269.22207,47.081729 L 269.22207,23.127349" style="font-size: 43.8754px; font-style: normal; font-weight: bold; opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; font-family: DejaVu Sans Condensed;" id="path3250"/>
|
|
<path d="M 160.97321,31.883929 C 155.43439,31.883929 150.87946,36.470109 150.87946,42.008929 L 150.87946,47.727679 C 150.87946,53.266499 155.43439,57.821429 160.97321,57.821429 L 166.44196,57.821429 C 171.98078,57.821429 176.5357,53.266499 176.53571,47.727679 L 176.53571,42.008929 C 176.53571,36.470109 171.98078,31.883929 166.44196,31.883929 L 160.97321,31.883929 z M 160.97321,38.883929 L 166.44196,38.883929 C 168.22386,38.883929 169.53571,40.227029 169.53571,42.008929 L 169.53571,47.727679 C 169.53571,49.509579 168.22386,50.821429 166.44196,50.821429 L 160.97321,50.821429 C 159.19131,50.821429 157.87946,49.509579 157.87946,47.727679 L 157.87946,42.008929 C 157.87946,40.227029 159.19131,38.883929 160.97321,38.883929 z " style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 7; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3257"/>
|
|
<path d="M 220.12946,42.008929 L 231.78571,42.008929 C 231.78571,40.227029 230.47388,38.883929 228.69196,38.883929 L 223.22321,38.883929 C 221.44131,38.883929 220.12946,40.227029 220.12946,42.008929 z M 231.78571,47.727679 L 220.12946,47.727679 C 220.12946,49.509579 221.44131,50.821429 223.22321,50.821429 L 234.75288,50.821429 L 234.75288,57.821429 L 223.22321,57.821429 C 217.68439,57.821429 213.12946,53.266499 213.12946,47.727679 L 213.12946,42.008929 C 213.12946,36.470109 217.68439,31.883929 223.22321,31.883929 L 228.69196,31.883929 C 234.23078,31.883929 238.78571,36.470109 238.78571,42.008929 L 238.78571,47.727679 L 231.78571,47.727679 z " style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3259"/>
|
|
<path d="M 254.16071,31.415179 C 252.19522,31.415179 250.22019,32.003379 248.31696,32.852679 L 248.31696,31.470699 L 241.31696,31.470699 L 241.31696,42.258929 L 241.31696,57.290179 L 248.31696,57.290179 L 248.31696,42.258929 C 248.31696,41.248949 248.798,40.522489 249.97321,39.727679 C 251.14842,38.932869 252.94967,38.415179 254.16071,38.415179 C 255.33036,38.415179 256.83437,38.896439 257.81696,39.665179 C 258.79955,40.433919 259.37946,41.269089 259.37946,42.883929 L 259.37946,57.290179 L 266.37946,57.290179 L 266.37946,42.883929 C 266.37946,39.165929 264.52671,36.009449 262.12946,34.133929 C 259.73221,32.258409 256.89683,31.415179 254.16071,31.415179 z " style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 7; stroke-linecap: butt; stroke-miterlimit: 4; stroke-opacity: 1;" id="path3268"/>
|
|
<path d="M 282.31118,23.257948 L 287.6102,23.257948 L 287.6102,24.26673 L 285.70546,24.26673 L 285.70546,28.433592 L 284.2202,28.433592 L 284.2202,24.26673 L 282.31118,24.26673 L 282.31118,23.257948 M 288.3721,23.257948 L 290.25971,23.257948 L 291.56948,26.027766 L 292.88781,23.257948 L 294.77115,23.257948 L 294.77115,28.433592 L 293.36721,28.433592 L 293.36721,24.648054 L 292.0446,27.438678 L 291.10293,27.438678 L 289.78031,24.648054 L 289.78031,28.433592 L 288.3721,28.433592 L 288.3721,23.257948" style="font-size: 7.88895px; font-style: normal; font-weight: bold; opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; font-family: DejaVu Sans Condensed;" id="text3280"/>
|
|
<path d="M 113.70536,144.54968 C 93.472023,142.41044 76.151987,174.4551 106.60714,192.63004" transform="translate(-75.7143, -121.429)" style="opacity: 1; fill: none; fill-opacity: 1; stroke: rgb(159, 210, 161); stroke-width: 5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" clip-path="url(#clipPath3326)" id="path3305"/>
|
|
<path d="M 123.03571,152.71932 C 108.25116,145.34211 95.019967,156.63352 96.302302,169.17853 C 97.622258,182.09158 109.5603,192.63229 136.45024,187.80226" transform="translate(-75.7143, -121.429)" style="opacity: 1; fill: none; fill-opacity: 1; stroke: rgb(207, 233, 208); stroke-width: 5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" clip-path="url(#clipPath3322)" id="path3307"/>
|
|
<path d="M 124.76913,162.71932 C 119.86081,153.87951 108.39125,155.13346 104.28571,161.6479 C 101.06775,166.75397 100.51364,179.18764 118.21429,182.18361 C 126.36905,183.35916 138.80953,182.03673 148.39286,180.93361" transform="translate(-75.7143, -121.429)" style="opacity: 1; fill: none; fill-opacity: 1; stroke: rgb(255, 255, 255); stroke-width: 5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" clip-path="url(#clipPath3318)" id="path3309"/>
|
|
<rect width="61.964287" height="61.964287" rx="23.75" ry="23.75" x="6.4285669" y="5.9335957" style="opacity: 1; fill: none; fill-opacity: 1; stroke: rgb(14, 143, 19); stroke-width: 1.5; stroke-linecap: butt; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1;" id="rect3316"/>
|
|
</g>
|
|
</svg> |