Add about page and start adding pro page to web UI

This commit is contained in:
Théophile Diot 2024-10-03 12:20:39 +02:00
parent 0bf3af7089
commit 15b473ba26
No known key found for this signature in database
GPG key ID: FA995104A0BA376A
30 changed files with 461 additions and 48 deletions

View file

@ -0,0 +1,11 @@
from flask import Blueprint, render_template
from flask_login import login_required
about = Blueprint("about", __name__)
@about.route("/about")
@login_required
def about_page():
return render_template("about.html")

11
src/ui/app/routes/pro.py Normal file
View file

@ -0,0 +1,11 @@
from flask import Blueprint, render_template
from flask_login import login_required
pro = Blueprint("pro", __name__)
@pro.route("/pro")
@login_required
def pro_page():
return render_template("pro.html")

View file

@ -179,9 +179,7 @@ button.list-group-item-secondary.active {
background-color: var(--bs-bw-green); /* Initial background color */
color: #fff;
animation: colorPhase 3s infinite; /* Apply the color phasing animation */
transition:
background-color 0.3s ease-in-out,
box-shadow 0.3s ease-in-out; /* Smooth transitions */
transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out; /* Smooth transitions */
}
.buy-now .btn-buy-now:hover {
@ -511,9 +509,7 @@ a.badge:hover {
.setting-highlight {
background-color: rgba(var(--bs-bw-green-rgb), 0.5);
transition:
background-color 2s ease,
opacity 2s ease;
transition: background-color 2s ease, opacity 2s ease;
opacity: 1;
}
@ -759,3 +755,12 @@ a.text-decoration-underline.link-underline-primary:hover {
padding-top: 1.625rem !important;
padding-bottom: 0.625rem !important;
}
.footer-container .footer-link:hover {
font-style: italic;
text-decoration: underline;
}
.w-70 {
width: 70% !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="740.18402"
height="161.62476"
id="svg4375">
<defs
id="defs4377">
<linearGradient
x1="-403.07309"
y1="-40.681377"
x2="-560.61346"
y2="-32.881535"
id="linearGradient4343"
xlink:href="#linearGradient3354-9"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3354-9">
<stop
id="stop3356-9"
style="stop-color:#959595;stop-opacity:1"
offset="0" />
<stop
id="stop3358-9"
style="stop-color:#cccccc;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
x1="-403.07309"
y1="-40.681377"
x2="-560.61346"
y2="-32.881535"
id="linearGradient3269"
xlink:href="#linearGradient3354-9"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata4380">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(215.61577,-659.72777)"
id="layer1">
<g
transform="matrix(0.95410088,0,0,1.0481072,336.12082,766.65951)"
id="text3109-8-2-3-2"
style="font-size:118.26729584px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Century Gothic;-inkscape-font-specification:Century Gothic Bold">
<path
d="m -192.30737,-56.190303 15.93837,0 0,30.259797 c -2e-5,5.890292 0.40421,9.990375 1.2127,12.300261 0.80844,2.271427 2.09814,4.042355 3.8691,5.3127882 1.8094,1.2704632 4.02306,1.9056873 6.64098,1.9056742 2.61786,1.31e-5 4.83152,-0.6159618 6.64099,-1.8479265 1.84788,-1.2704333 3.21458,-3.1183579 4.10009,-5.5437799 0.65442,-1.809405 0.98166,-5.678498 0.98171,-11.607288 l 0,-30.779526 15.82287,0 0,26.621691 c -6e-5,10.972089 -0.86628,18.479283 -2.59865,22.5216047 -2.11747,4.9278127 -5.23585,8.7199081 -9.35513,11.3762975 -4.11938,2.6178955 -9.35517,3.9268422 -15.70737,3.9268438 -6.89126,-1.6e-6 -12.47353,-1.5399388 -16.74684,-4.6198163 -4.23484,-3.07987137 -7.21847,-7.3724463 -8.95089,-12.8777377 -1.23196,-3.811329 -1.84793,-10.741046 -1.84793,-20.789173 l 0,-26.15971"
id="path2910-3"
style="fill:#4d4d4d" />
<path
d="m -130.62894,-56.190303 15.70737,0 0,6.409995 c 3.58033,-3.002821 6.8142,-5.081736 9.70161,-6.236752 2.92585,-1.193388 5.909485,-1.790114 8.950903,-1.790178 6.236704,6.4e-5 11.530238,2.175225 15.880619,6.52549 3.657292,3.695907 5.485968,9.162684 5.486031,16.400348 l 0,41.5205983 -15.591879,0 0,-27.5456543 c -4.9e-5,-7.507166 -0.346534,-12.492713 -1.039459,-14.956655 -0.65452,-2.463857 -1.828723,-4.331031 -3.52261,-5.601527 -1.655476,-1.308899 -3.71514,-1.963372 -6.179015,-1.963422 -3.1954,5e-5 -5.94804,1.078006 -8.25791,3.233871 -2.27144,2.117461 -3.84987,5.062591 -4.73531,8.835399 -0.46201,1.963458 -0.693,6.217534 -0.69298,12.762242 l 0,25.2357463 -15.70737,0 0,-62.8295013"
id="path2912-9"
style="fill:#4d4d4d" />
<path
d="m -58.382674,-82.061274 c 2.771873,8.9e-5 5.139526,1.001048 7.102968,3.002881 2.001897,2.002004 3.002856,4.427405 3.00288,7.276211 -2.4e-5,2.810463 -0.981734,5.216615 -2.945133,7.218462 -1.963441,1.963492 -4.311845,2.945202 -7.04522,2.945133 -2.810399,6.9e-5 -5.216551,-1.000891 -7.218462,-3.00288 -1.963427,-2.040346 -2.945137,-4.504245 -2.945133,-7.391706 -4e-6,-2.771809 0.981706,-5.139462 2.945133,-7.102968 1.963413,-1.963334 4.331066,-2.945044 7.102967,-2.945133 m -7.911435,25.870971 15.82287,0 0,62.8295013 -15.82287,0 0,-62.8295013"
id="path2914-9"
style="fill:#4d4d4d" />
<path
d="m 22.756753,-43.485808 -13.1087298,7.218463 c -2.4639564,-2.579352 -4.9086068,-4.369529 -7.3339592,-5.370536 -2.38695243,-1.000911 -5.1973376,-1.501391 -8.4311656,-1.501441 -5.8902994,5e-5 -10.6641044,1.770978 -14.3214284,5.312789 -3.618878,3.503402 -5.428304,8.007718 -5.428283,13.512962 -2.1e-5,5.351313 1.751657,9.720885 5.25504,13.108729 3.503331,3.3878798 8.103892,5.0818107 13.8016994,5.0817979 7.04517317,1.28e-5 12.5312,-2.4061391 16.4580968,-7.2184629 L 22.06378,-4.8525946 C 15.326486,3.8865605 5.8173728,8.2561324 -6.4635876,8.256134 -17.512676,8.2561324 -26.174822,4.9837658 -32.450051,-1.5609755 c -6.23676,-6.544725 -9.355133,-14.2059125 -9.355128,-22.9835855 -5e-6,-6.082721 1.520683,-11.684243 4.562068,-16.804582 3.041367,-5.120243 7.276194,-9.143329 12.704495,-12.06927 5.466754,-2.925821 11.568754,-4.388761 18.3060194,-4.388825 6.23670517,6.4e-5 11.838228,1.251263 16.8045846,3.7536 4.96624,2.463961 9.027824,5.986567 12.184765,10.56783"
id="path2916-7"
style="fill:#4d4d4d" />
<path
d="m 61.798097,-57.807238 c 5.928721,6.4e-5 11.491744,1.482254 16.689087,4.446573 5.235731,2.964439 9.316569,6.987525 12.242523,12.06927 2.925814,5.08184 4.388768,10.567867 4.388838,16.458095 -7e-5,5.92879 -1.482264,11.472564 -4.446588,16.6313386 C 87.746013,-3.0431569 83.742165,0.99917828 78.660426,3.9250563 73.57858,6.8124412 67.977058,8.2561324 61.855845,8.256134 52.847175,8.2561324 45.147489,5.0607627 38.756764,-1.3299847 32.404509,-7.7592146 29.228388,-15.555147 29.228393,-24.717804 c -5e-6,-9.817069 3.599598,-17.997985 10.79882,-24.542774 6.313727,-5.697712 13.570681,-8.546596 21.770884,-8.54666 m 0.230991,14.841159 c -4.889338,5e-5 -8.970172,1.71323 -12.242513,5.139546 -3.233893,3.387906 -4.850827,7.738229 -4.850807,13.050981 -2e-5,5.466808 1.597664,9.894128 4.79306,13.281972 3.233842,3.3878795 7.314676,5.0818105 12.242513,5.0817974 4.927761,1.31e-5 9.027844,-1.7131671 12.30026,-5.1395454 3.272317,-3.426342 4.908505,-7.834413 4.908555,-13.224224 -5e-5,-5.389749 -1.616989,-9.759321 -4.850807,-13.108729 -3.19542,-3.387817 -7.295502,-5.081748 -12.300261,-5.081798"
id="path2918-0"
style="fill:#4d4d4d" />
<path
d="m 101.59025,-56.190303 13.51297,0 0,7.911436 c 1.46292,-3.118318 3.40709,-5.485972 5.83251,-7.102968 2.42538,-1.616872 5.08177,-2.425339 7.96919,-2.425403 2.04038,6.4e-5 4.17705,0.539042 6.40999,1.616935 l -4.90855,13.570711 c -1.84796,-0.923913 -3.36865,-1.385895 -4.56207,-1.385945 -2.42543,5e-5 -4.4851,1.501489 -6.179,4.504321 -1.65546,3.002923 -2.48318,8.893183 -2.48316,17.670797 l 0.0577,3.060628 0,25.4089893 -15.64963,0 0,-62.8295013"
id="path2920-3"
style="fill:#4d4d4d" />
<path
d="m 141.78656,-56.190303 15.70737,0 0,6.409995 c 3.58033,-3.002821 6.8142,-5.081736 9.70162,-6.236752 2.92584,-1.193388 5.90947,-1.790114 8.95089,-1.790178 6.2367,6.4e-5 11.53024,2.175225 15.88062,6.52549 3.65729,3.695907 5.48597,9.162684 5.48603,16.400348 l 0,41.5205983 -15.59188,0 0,-27.5456543 c -5e-5,-7.507166 -0.34653,-12.492713 -1.03946,-14.956655 -0.65452,-2.463857 -1.82872,-4.331031 -3.52261,-5.601527 -1.65547,-1.308899 -3.71514,-1.963372 -6.179,-1.963422 -3.19541,5e-5 -5.94805,1.078006 -8.25792,3.233871 -2.27144,2.117461 -3.84988,5.062591 -4.73532,8.835399 -0.462,1.963458 -0.69299,6.217534 -0.69297,12.762242 l 0,25.2357463 -15.70737,0 0,-62.8295013"
id="path2922-9"
style="fill:#4d4d4d" />
</g>
<g
transform="matrix(1.4868765,0,0,1.4868765,477.80324,740.33267)"
id="g2886-8"
style="fill:#4d4d4d;fill-opacity:1">
<text
x="-299.4765"
y="15.69857"
transform="scale(0.95410088,1.0481072)"
id="text3109-8-2-3-7-6"
xml:space="preserve"
style="font-size:127.35551453px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Palatino;-inkscape-font-specification:Palatino Bold"><tspan
x="-299.4765"
y="15.69857"
id="tspan2884-5"
style="font-size:127.35551453px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;font-family:Palatino;-inkscape-font-specification:Palatino Bold">g</tspan></text>
</g>
<path
d="m -339.89735,-32.881535 a 120.17799,8.4974337 0 1 1 -240.35599,0 120.17799,8.4974337 0 1 1 240.35599,0 z"
transform="matrix(1.1060606,0,0,1.1060606,426.17959,848.32285)"
id="path3423-1"
style="opacity:0.26353838;fill:url(#linearGradient3269);fill-opacity:1;stroke:none" />
<path
d="m -100.65527,815.73848 c -2.57334,-0.81915 -2.58247,-1.18087 -0.21166,-8.37918 2.367628,-7.18862 1.282568,-13.86445 -3.10637,-19.11195 -5.96822,-7.13575 -8.84216,-13.22467 -9.75823,-20.67444 -0.78646,-6.3958 -1.03575,-6.90285 -3.6397,-7.40279 -1.74646,-0.33531 -4.15929,0.32877 -9.90965,2.72745 -8.36615,3.4898 -10.35876,5.02218 -12.33291,9.4843 -1.03707,2.34406 -1.16172,3.7482 -0.57348,6.45967 0.7183,3.31089 3.66212,8.64054 4.77653,8.64768 0.29081,0.002 1.89748,1.1023 3.57036,2.44541 2.77589,2.22869 2.96643,2.61592 2.18093,4.43265 -1.70673,3.94745 -5.76177,8.73342 -7.39962,8.73342 -0.91894,0 -4.67154,-2.62848 -8.80223,-6.16546 -8.11348,-6.94729 -8.45354,-7.64379 -9.29155,-19.03126 -0.99988,-13.58711 2.34128,-19.92818 17.22216,-32.68537 l 9.33328,-8.0013 0.5961,-4.8534 c 0.61452,-5.00328 -0.25183,-16.91684 -1.70841,-23.49298 -0.86051,-3.885 -3.7003,-7.58525 -6.39519,-8.33292 -2.93605,-0.8146 -4.65723,0.86613 -6.89082,6.72892 -2.40994,6.32567 -4.71315,8.53245 -8.90528,8.53245 -2.61108,0 -5.04774,-1.67029 -6.73027,-4.61349 -1.20562,-2.10894 -1.90545,-14.77861 -1.18473,-21.44783 0.34669,-3.20813 0.36656,-6.45629 0.0442,-7.21814 -0.52459,-1.23963 -5.04199,-3.92118 -15.69218,-9.31491 -1.93608,-0.98052 -4.19318,-2.30073 -5.01577,-2.93381 -0.82258,-0.63307 -2.95712,-1.79702 -4.74342,-2.58654 -4.0461,-1.78831 -14.59582,-7.95686 -13.60818,-7.95686 1.86847,0 9.78678,2.4371 14.00212,4.30958 2.57327,1.14308 5.0365,2.07831 5.47385,2.07831 0.43736,0 5.39838,1.59698 11.0245,3.54885 5.62613,1.95185 10.76835,3.54883 11.42716,3.54883 1.56481,0 1.81019,-1.35379 1.30876,-7.22052 -0.22777,-2.66503 -0.21772,-4.84552 0.0224,-4.84552 0.24005,0 1.27682,0.51453 2.3039,1.14339 3.13787,1.92125 9.88743,3.09794 17.82053,3.10678 7.58555,0.009 17.48687,1.51346 21.27112,3.23319 5.42864,2.46702 11.72565,10.17235 19.713658,24.12261 5.55341,9.69849 11.5205,13.80519 20.07216,13.81419 3.45705,0.004 12.6805,-1.42134 25.17062,-3.88871 10.29868,-2.03446 23.894192,-2.49173 29.171452,-0.98115 6.43791,1.8428 14.95039,6.76935 21.98861,12.72577 6.58741,5.57491 7.60197,6.81262 11.64852,14.21045 4.82928,8.82878 10.15926,21.37645 14.899,35.07479 0.67537,1.95185 2.10182,5.23512 3.1699,7.29614 2.84984,5.49914 2.70779,5.83455 -2.47093,5.83455 -5.62088,0 -8.25697,-0.88636 -11.94164,-4.01528 -3.534,-3.00098 -4.45715,-4.83696 -9.98855,-19.86556 -2.83329,-7.6979 -5.59135,-12.31728 -7.35421,-12.31728 -1.20786,0 -3.65266,8.24914 -3.65266,12.32476 0,2.89469 1.814,6.8052 6.50386,14.02068 7.61871,11.72159 11.62643,28.29168 10.02221,41.4373 l -0.69293,5.67814 -5.07747,0.21136 c -7.99385,0.33278 -7.91382,0.44389 -7.91382,-10.98681 0,-12.16922 -0.82877,-14.80464 -6.19901,-19.71247 -2.2306,-2.03853 -7.23508,-7.83031 -11.12107,-12.87062 -3.88602,-5.04032 -7.60749,-9.16422 -8.26995,-9.16422 -1.52225,0 -2.28133,4.14488 -2.36225,12.8988 -0.0532,5.76495 -0.28025,6.74074 -1.98112,8.5172 -4.611042,4.81598 -7.847772,13.58519 -9.843172,26.668 -0.44167,2.89579 -0.82033,3.43751 -2.6974,3.85899 -2.76002,0.61973 -10.40844,0.72118 -11.06755,0.14681 -0.56842,-0.49534 0.42766,-8.35904 2.68721,-21.21493 0.85765,-4.87965 1.79377,-11.42725 2.08028,-14.55022 0.51005,-5.55953 -0.62987,-15.97557 -1.97899,-18.08289 -0.56095,-0.8762 -3.4173,-1.06606 -16.77722,-1.11512 -8.85564,-0.0325 -18.56749,-0.32384 -21.58186,-0.64737 l -5.48072,-0.58825 0,2.43214 c 0,2.60447 0.66758,4.90008 5.1317,17.6466 1.57224,4.48928 3.85053,11.33318 5.06287,15.20868 l 2.20425,7.04637 -1.86007,5.72944 c -1.02305,3.15119 -2.54137,6.92717 -3.37407,8.39107 -1.46872,2.58204 -1.64095,2.65994 -5.76025,2.60558 -2.33545,-0.0308 -5.28634,-0.38711 -6.557538,-0.79175 z"
id="path3046-2-3-0"
style="fill:#499848;fill-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1 @@
<svg height="2282" viewBox="-1.19275382 .5 25.19275382 24.582" width="2500" xmlns="http://www.w3.org/2000/svg"><path d="m1.406 16.346c.023.052.049.1.077.148.013.028.031.057.047.083.026.052.054.102.081.152l.157.264c.029.049.057.097.09.145.055.094.12.186.177.28.026.039.05.078.079.117.11.171.21.313.317.451.076.103.152.204.234.305.027.038.057.076.085.114l.221.268c.027.031.054.067.083.099.098.118.202.232.306.348 0 .002.003.004.005.007.129.162.268.306.42.434l.004.004c.08.082.16.163.245.243l.101.097c.111.104.222.207.339.307.002 0 .003.002.005.003l.057.05c.102.089.205.177.31.259l.125.105c.085.068.173.132.26.199l.136.104c.093.07.192.138.287.206.035.025.07.05.106.073l.029.023.281.184.12.08c.147.094.293.182.439.27.042.021.084.044.123.068.108.062.22.125.329.182.06.034.122.063.184.094.075.042.153.083.233.125.022.007.04.014.058.024l.004-.004c.033.015.064.031.096.047.12.06.245.117.375.173.024.01.05.02.076.034.144.063.288.123.437.181.034.01.07.027.105.04.135.051.274.103.412.152l.05.018c.153.052.304.102.46.149.036.01.073.023.111.033.159.048.313.105.474.135 10.273 1.863 13.258-6.146 13.258-6.146-2.508 3.25-6.959 4.107-11.174 3.153-.156-.036-.312-.086-.47-.132a11.753 11.753 0 0 1 -.663-.209l.095.029-.062-.024c-.136-.046-.267-.097-.4-.148a1.53 1.53 0 0 0 -.099-.038l-.011-.003c-.147-.059-.29-.119-.432-.182-.031-.01-.057-.024-.088-.036a13.656 13.656 0 0 1 -.5-.23l.138.061a1.483 1.483 0 0 1 -.106-.052c-.094-.044-.188-.094-.28-.141a3.784 3.784 0 0 1 -.207-.106l.02.01c-.113-.06-.226-.125-.34-.186-.034-.024-.073-.044-.112-.066a14.058 14.058 0 0 1 -.502-.306l.063.038a2.042 2.042 0 0 1 -.124-.083l.006.004a6.039 6.039 0 0 1 -.316-.208c-.034-.022-.065-.046-.1-.07a8.47 8.47 0 0 1 -.318-.228l.024.017c-.042-.034-.087-.066-.132-.099-.088-.069-.177-.135-.265-.207l-.118-.094a10.16 10.16 0 0 1 -.37-.309l-.001-.001-.347-.315-.1-.094c-.082-.083-.166-.162-.25-.244l-.097-.1a9.008 9.008 0 0 1 -.303-.315l-.006-.007-.017-.014a17.877 17.877 0 0 1 -.313-.353c-.027-.031-.052-.064-.08-.097l-.227-.275a13.75 13.75 0 0 1 -.3-.391l-.04-.056c-2.338-3.176-3.184-7.559-1.313-11.155l-1.652 2.089c-2.125 3.039-1.862 6.991-.237 10.218.037.079.078.153.118.228z" fill="#1266a9"/><path d="m8.563 11.968-.011-.016-.009-.012z"/><path d="m9.681 13.28.09.09c.114.11.231.217.35.324l.015.013c.12.106.255.217.394.325l.021.016c.034.023.063.05.096.073.14.108.281.211.428.314l.015.009c.062.045.128.086.198.13.028.018.06.042.09.06.106.068.21.131.317.196.017.007.032.016.048.023.09.055.188.108.282.156.033.02.065.035.099.054.067.033.133.068.197.102l.032.014c.135.066.273.128.408.189.034.013.063.024.092.038.111.048.224.094.335.136.05.017.097.037.144.052.102.038.209.073.31.108l.14.045c.146.045.294.104.449.128 7.933 1.306 9.769-4.771 9.769-4.771-1.653 2.367-4.852 3.495-8.261 2.614a8.215 8.215 0 0 1 -.506-.145l.057.016c-.048-.013-.09-.028-.136-.042-.104-.036-.211-.071-.312-.108l-.144-.054c-.112-.045-.226-.087-.335-.135-.034-.015-.065-.025-.091-.04-.14-.063-.281-.125-.418-.191l-.206-.107-.119-.06c-.092-.048-.177-.098-.265-.149a.558.558 0 0 1 -.065-.036l.003.001c-.106-.066-.216-.13-.318-.197-.034-.019-.065-.042-.097-.062l-.208-.135c-.144-.1-.285-.207-.428-.311-.032-.029-.063-.053-.094-.079-1.499-1.173-2.681-2.776-3.242-4.591-.591-1.887-.461-4.003.56-5.72l-1.255 1.768c-1.541 2.201-1.454 5.143-.254 7.471.219.43.441.793.686 1.139.228.326.48.708.784.97.108.123.224.24.345.359z" fill="#1266a9"/><path d="m2.436 17.992-.004-.006-.007-.009zm4.158-.744.01.007.002.003z"/><path d="m13.666 1.427c-.909 1.327-.996 2.975-.37 4.438.665 1.554 2.024 2.774 3.608 3.352.065.025.128.046.195.07l.088.027c.092.029.185.063.28.084 4.381.841 5.567-2.238 5.886-2.691-1.043 1.49-2.792 1.848-4.938 1.329a4.753 4.753 0 0 1 -.55-.17l.033.011a6.196 6.196 0 0 1 -.656-.27l.038.017c-.41-.2-.762-.416-1.089-.664-1.918-1.45-3.104-4.211-1.852-6.46z" fill="#1266a9"/></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -0,0 +1 @@
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="512px" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="512px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="_x32_67-python"><g><path d="M194.005,240.252h105.054c29.216,0,52.529-24.101,52.529-53.414V86.603 c0-28.525-24.002-49.871-52.529-54.691c-35.214-5.804-73.478-5.509-105.054,0.097c-44.462,7.87-52.527,24.298-52.527,54.693 v21.453H246.63v31.959H102.033c-30.591,0-57.349,18.394-65.709,53.315c-9.64,40.035-10.033,65.02,0,106.826 c7.476,31.085,25.28,53.314,55.872,53.314h36.101v-48.001C128.296,270.845,158.298,240.252,194.005,240.252L194.005,240.252z" style="fill:#347AB4;"/><path d="M474.975,209.372c-7.575-30.395-21.935-53.315-52.527-53.315h-39.443v46.626 c0,36.199-30.692,66.691-65.71,66.691H212.24c-28.724,0-52.528,24.594-52.528,53.414v100.138 c0,28.524,24.788,45.246,52.528,53.413c33.247,9.737,65.215,11.509,105.054,0c26.462-7.675,52.529-23.116,52.529-53.413v-20.997 H264.867v-32.417h157.58c30.593,0,41.904-21.346,52.527-53.314C485.992,283.244,485.501,251.57,474.975,209.372L474.975,209.372z" style="fill:#FFCA1D;"/><path d="M187.415,89.594c-10.479,0-18.975-8.591-18.975-19.164c0.094-10.668,8.496-19.259,18.975-19.259 c10.385,0,18.976,8.685,18.976,19.259C206.39,81.003,197.894,89.594,187.415,89.594z" style="fill:#FFFFFF;"/><path d="M314.908,460.076c-10.479,0-18.976-8.591-18.976-19.164c0.095-10.668,8.496-19.259,18.976-19.259 c10.385,0,18.976,8.685,18.976,19.259C333.884,451.485,325.388,460.076,314.908,460.076z" style="fill:#FFFFFF;"/></g></g><g id="Layer_1"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,254 @@
{% extends "dashboard.html" %}
{% block content %}
<!-- Content -->
<div class="row g-3">
<div class="col-12 col-md-6 col-lg-4">
<div class="card p-4 position-relative h-100">
<i class='bx bxs-rocket bx-sm position-absolute top-0 end-0 m-3'></i>
<div class="card-body">
<div class="d-flex align-items-center justify-content-center h-100">
<div class="text-center text-primary">
<div class="app-brand justify-content-center">
<a href="https://www.bunkerweb.io/?utm_campaign=self&utm_source=ui"
target="_blank"
rel="noopener"
class="app-brand-link gap-2">
<span class="app-brand-logo login">
<img class="img-fluid"
src="{{ url_for('static', filename='img/icon.svg') }}"
alt="BunkerWeb logo"
width="100">
</span>
</a>
</div>
<h4 class="text-primary shine fw-bold mt-2 mb-2">BunkerWeb-UI</h4>
<p class="fs-6 mt-2 mb-2">Powerful Protection, Simplified</p>
<p class="mt-2 mb-2">Version: {{ bw_version }}</p>
<a class="github-button mt-2 mb-2"
href="https://github.com/bunkerity/bunkerweb"
data-icon="octicon-star"
data-size="large"
data-show-count="true"
aria-label="Star bunkerity/bunkerweb on GitHub">Stars</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="card p-2 position-relative">
<i class='bx bx-hard-hat bx-sm position-absolute top-0 end-0 m-3'></i>
<div class="card-header">
<h5 class="card-title fw-semibold">Build with</h5>
</div>
<div class="card-body">
<div class="row g-6 pt-0">
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://www.python.org"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Python">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/python.svg') }}"
alt="Python">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://flask.palletsprojects.com"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Flask">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/flask.png') }}"
alt="Flask">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://gunicorn.org"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Gunicorn">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/gunicorn.svg') }}"
alt="Gunicorn">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://getbootstrap.com"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Bootstrap">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/bootstrap.png') }}"
alt="Bootstrap">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://jquery.com"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="JQuery">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/jquery.svg') }}"
alt="JQuery">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://datatables.net"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="DataTables">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/datatables.png') }}"
alt="DataTables">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://leafletjs.com/"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Leaflet">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/leaflet.png') }}"
alt="Leaflet">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://apexcharts.com"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="apexcharts.js">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/apexcharts.png') }}"
alt="apexcharts.js">
</a>
<a class="col-4 d-flex justify-content-center align-items-center"
href="https://ace.c9.io"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title="Ace">
<img class="img-fluid w-70 p-3"
src="{{ url_for('static', filename='img/brands/ace.png') }}"
alt="Ace">
</a>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="row g-3">
<div class="col-12">
<div class="card p-2 position-relative">
<i class='bx bx-paperclip bx-sm position-absolute top-0 end-0 m-3'></i>
<div class="card-header">
<h5 class="card-title fw-semibold">License</h5>
</div>
<div class="card-body text-center">
<p class="fs-5 mb-4">GNU Affero General Public License v3.0</p>
<a class="btn btn-sm btn-primary"
href="https://github.com/bunkerity/bunkerweb/blob/master/LICENSE.md"
target="_blank"
rel="noreferrer">Read more</a>
</div>
</div>
</div>
<div class="d-none d-lg-inline col-12">
<div class="card p-2 position-relative">
<i class='bx bxs-megaphone bx-sm position-absolute top-0 end-0 m-3'></i>
<div class="card-header">
<h5 class="card-title fw-semibold">Socials</h5>
</div>
<div class="card-body text-center">
<div class="social-buttons">
<a href="https://discord.bunkerity.com/?utm_campaign=self&utm_source=ui"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
<i class='bx bxl-discord-alt bx-sm'></i>
</a>
<a href="https://www.linkedin.com/company/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-linkedin bx-sm'></i>
</a>
<a href="https://www.reddit.com/r/BunkerWeb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-reddit bx-sm'></i>
</a>
<a href="https://www.instagram.com/bunkerweb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-instagram bx-sm'></i>
</a>
<a href="https://x.com/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-twitter bx-sm'></i>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 d-inline d-lg-none">
<div class="card p-2 position-relative">
<i class='bx bxs-megaphone bx-sm position-absolute top-0 end-0 m-3'></i>
<div class="card-header">
<h5 class="card-title fw-semibold">Socials</h5>
</div>
<div class="card-body text-center">
<div class="social-buttons">
<a href="https://discord.bunkerity.com/?utm_campaign=self&utm_source=ui"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
<i class='bx bxl-discord-alt bx-sm'></i>
</a>
<a href="https://www.linkedin.com/company/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-linkedin bx-sm'></i>
</a>
<a href="https://www.reddit.com/r/BunkerWeb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-reddit bx-sm'></i>
</a>
<a href="https://www.instagram.com/bunkerweb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-instagram bx-sm'></i>
</a>
<a href="https://x.com/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noreferrer">
<i class='bx bxl-twitter bx-sm'></i>
</a>
</div>
</div>
</div>
</div>
</div>
<!--/ Content -->
{% endblock %}

View file

@ -80,7 +80,7 @@
data-bs-placement="bottom"
data-bs-original-title="Download {{ cache['file_name'] }}"
target="_blank"
rel="noopener noreferrer">
rel="noreferrer">
<i class="bx bx-download bx-xs"></i>
</a>
</div>

View file

@ -11,7 +11,7 @@
data-bs-placement="bottom"
data-bs-original-title="Download file"
target="_blank"
rel="noopener noreferrer">
rel="noreferrer">
<i class="bx bx-download bx-xs"></i>
<span class="d-none d-md-inline">&nbsp;Download</span>
</a>

View file

@ -31,7 +31,7 @@
<a href="https://github.com/bunkerity/bunkerweb/blob/{% if bw_version != 'dev' and bw_version != 'testing' %}v{% endif %}{{ bw_version }}/LICENSE.md"
class="footer-link"
target="_blank"
rel="noopener">License</a>
rel="noreferrer">License</a>
</div>
</div>
</div>

View file

@ -22,7 +22,7 @@
</div>
<div class="col-sm-3 mb-2">
<a role="button"
href="{{ url_for("instances") }}"
href="{{ url_for('instances') }}"
class="card p-4 position-relative shadow-sm rounded-3 h-100">
<i class='bx bx-server bx-sm position-absolute top-0 end-0 m-3 text-secondary'></i>
<p class="ps-4 fs-4 mb-2">
@ -49,7 +49,7 @@
</div>
<div class="col-sm-3 mb-2">
<a role="button"
href="{{ url_for("services") }}"
href="{{ url_for('services') }}"
class="card p-4 position-relative shadow-sm rounded-3 h-100">
<i class='bx bx-cube bx-sm position-absolute top-0 end-0 m-3 text-secondary'></i>
<p class="ps-4 fs-4 mb-2">
@ -74,7 +74,7 @@
</div>
<div class="col-sm-3 mb-2">
<a role="button"
href="{{ url_for("plugins") }}"
href="{{ url_for('plugins') }}"
class="card p-4 position-relative shadow-sm rounded-3 h-100">
<i class='bx bx-plug bx-sm position-absolute top-0 end-0 m-3 text-secondary'></i>
<p class="ps-4 fs-4 mb-2">
@ -172,7 +172,7 @@
<div class="col-sm-3 mb-2">
<a role="button"
class="card p-4 position-relative shadow-sm rounded-3 h-100 text-color-hover-danger"
href="{{ url_for("reports") }}">
href="{{ url_for('reports') }}">
<i class='bx bx-block bx-sm position-absolute top-0 end-0 m-3 text-danger'></i>
<p class="ps-4 fs-4 mb-2">
Blocked Requests

View file

@ -130,7 +130,7 @@
class="dropdown-item"
href="{{ url_for("cache") }}/{{ service_id }}/{{ job_data['plugin_id'] }}/{{ job }}/{{ cache['file_name'].replace('/', '_') if cache['file_name'].startswith('folder:') else cache['file_name'] }}?download=true"
target="_blank"
rel="noopener noreferrer">
rel="noreferrer">
<i class="tf-icons bx bx-download bx-xs me-1"></i>{{ cache["file_name"] }}
</a>
</li>

View file

@ -3,6 +3,7 @@
<div class="app-brand main mb-2">
<a href="https://www.bunkerweb.io/?utm_campaign=self&utm_source=ui"
target="_blank"
rel="noopener"
class="app-brand-link">
<span class="app-brand-logo main w-100">
<img class="img-fluid"
@ -109,19 +110,26 @@
<span class="menu-header-text">Misc</span>
</li>
<li class="menu-item">
<a href="https://panel.bunkerweb.io/order/support/?utm_campaign=self&utm_source=ui"
target="_blank"
class="menu-link">
<i class="menu-icon tf-icons bx bx-support"></i>
<div class="text-truncate" data-i18n="Support">Support</div>
<a href="{{ url_for('about') }}" class="menu-link">
<i class="menu-icon tf-icons bx bx-info-circle"></i>
<div class="text-truncate" data-i18n="About">About</div>
</a>
</li>
<li class="menu-item">
<a href="https://docs.bunkerweb.io/latest/?utm_campaign=self&utm_source=ui"
<a href="{{ url_for('pro') }}" class="menu-link">
<img class="menu-icon tf-icons"
src="{{ pro_diamond_url }}"
alt="Pro plugin">
<div class="text-truncate" data-i18n="Pro">Pro</div>
</a>
</li>
<li class="menu-item">
<a href="https://panel.bunkerweb.io/order/support/?utm_campaign=self&utm_source=ui"
target="_blank"
rel="noopener"
class="menu-link">
<i class="menu-icon tf-icons bx bx-file"></i>
<div class="text-truncate" data-i18n="Documentation">Documentation</div>
<i class="menu-icon tf-icons bx bx-support"></i>
<div class="text-truncate" data-i18n="Support">Support</div>
</a>
</li>
</ul>

View file

@ -59,7 +59,7 @@
<input type="hidden"
id="raw-config-defaults"
name="raw-config"
value="{{ default_settings | join("\r\n") }}">
value="{{ default_settings | join('\r\n') }}">
<div class="form-floating">
<textarea class="form-control w-100 h-100 text-white"
rows="35"

View file

@ -46,7 +46,7 @@
aria-pressed="true"
href="https://github.com/bunkerity/bunkerweb/?utm_campaign=self&utm_source=ui"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class="tf-icons bx bxl-github me-md-2"></i>
<span class="d-none d-md-inline">Github</span>
</a>
@ -80,7 +80,7 @@
aria-pressed="true"
href="https://github.com/bunkerity/bunkerweb/releases/latest"
target="_blank"
rel="noopener"
rel="noreferrer"
{% if bw_version != latest_version %} data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="New version available" {% endif %}>
Version {{ bw_version }}
{% if bw_version != latest_version %}
@ -104,7 +104,7 @@
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li>
<a class="dropdown-item" href="{{ url_for("profile") }}">
<a class="dropdown-item" href="{{ url_for('profile') }}">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-2 me-md-3">
<div class="avatar avatar-online">
@ -125,7 +125,7 @@
</li>
<li>
<a class="dropdown-item d-flex align-items-center"
href="{{ url_for("logout") }}">
href="{{ url_for('logout') }}">
<i class="bx bx-power-off bx-md me-2"></i><span>Log Out</span>
</a>
</li>

View file

@ -96,7 +96,7 @@
data-bs-placement="bottom"
data-bs-original-title="Access {{ plugin_data['name'] }} page"
target="_blank"
rel="noopener noreferrer">
rel="noreferrer">
<i class="bx bx-link-external bx-xs"></i>
</a>
</div>

View file

@ -0,0 +1,6 @@
{% extends "dashboard.html" %}
{% block content %}
<!-- Content -->
<!--/ Content -->
{% endblock %}

View file

@ -71,7 +71,7 @@
</tr>
{% endfor %}
</tbody>
<input type="hidden" id="countries" value="{{ ns.countries|join(",") }}" />
<input type="hidden" id="countries" value="{{ ns.countries|join(',') }}" />
<span class="position-absolute bottom-0 start-50 translate-middle badge rounded-pill bg-secondary">
TZ: <script nonce="{{ script_nonce }}">document.write(Intl.DateTimeFormat().resolvedOptions().timeZone);</script>
</span>

View file

@ -72,7 +72,7 @@
data-bs-placement="bottom"
data-bs-original-title="Access service {{ service['id'] }}"
target="_blank"
rel="noopener noreferrer">
rel="noreferrer">
<i class="bx bx-link-external bx-xs"></i>
</a>
<a role="button"

View file

@ -467,20 +467,14 @@
{% include "models/input_setting.html" %}
</div>
</div>
<!-- <div class="text-center pt-2 mb-6">
<h6 class="mb-1 fw-bold">Check server name DNS</h6>
<button id="check-dns" class="btn btn-primary">Check DNS</button>
<p class="mt-1 mb-0">
In case of issues, you can also click <a id="check_url" class="fw-semibold" href="https://www.example.com/setup/check" target="_blank" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title='If the shown text is "ok", that means that the server name is available'>here</a> to perform a manual check.
</p>
</div> -->
{% endif %}
<div class="row p-0">
<div class="col-md-{% if not ui_user %}4{% else %}6{% endif %}">
<h5 class="mb-3 text-dark">Join the Newsletter</h5>
<form action="https://bunkerity.us1.list-manage.com/subscribe/post?u=ec5b1577cf427972b9bd491a6&amp;id=37076d9d67"
method="POST"
target="_blank">
target="_blank"
rel="noopener">
<div class="mb-3">
<input type="email"
name="EMAIL"
@ -614,6 +608,7 @@
class="fw-semibold"
href="https://www.example.com/setup/check"
target="_blank"
rel="noreferrer"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-original-title='If the shown text is "ok", that means that the server name is available'>here</a> to perform a manual check.

View file

@ -14,25 +14,25 @@
<a href="https://www.linkedin.com/company/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-linkedin bx-sm'></i>
</a>
<a href="https://www.reddit.com/r/BunkerWeb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-reddit bx-sm'></i>
</a>
<a href="https://www.instagram.com/bunkerweb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-instagram bx-sm'></i>
</a>
<a href="https://x.com/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-twitter bx-sm'></i>
</a>
</div>

View file

@ -14,25 +14,25 @@
<a href="https://www.linkedin.com/company/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-linkedin bx-sm'></i>
</a>
<a href="https://www.reddit.com/r/BunkerWeb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-reddit bx-sm'></i>
</a>
<a href="https://www.instagram.com/bunkerweb/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-instagram bx-sm'></i>
</a>
<a href="https://x.com/bunkerity/"
class="btn btn-sm btn-link"
target="_blank"
rel="noopener">
rel="noreferrer">
<i class='bx bxl-twitter bx-sm'></i>
</a>
</div>

View file

@ -6,7 +6,7 @@
<div class="authentication-inner">
<!-- Register -->
<div class="card px-sm-6 px-0">
<a href="{{ url_for("login") }}">
<a href="{{ url_for('login') }}">
<i class="bx bx-arrow-back me-1"></i>
<span>back to login</span></a>
<div class="card-body">

View file

@ -22,6 +22,7 @@ from werkzeug.routing.exceptions import BuildError
from app.models.reverse_proxied import ReverseProxied
from app.routes.about import about
from app.routes.bans import bans
from app.routes.cache import cache
from app.routes.configs import configs
@ -33,6 +34,7 @@ from app.routes.login import login
from app.routes.logout import logout, logout_page
from app.routes.logs import logs
from app.routes.plugins import plugins
from app.routes.pro import pro
from app.routes.profile import profile
from app.routes.reports import reports
from app.routes.services import services
@ -437,6 +439,6 @@ def check_reloading():
return jsonify({"reloading": DATA.get("RELOADING", False)})
BLUEPRINTS = (bans, cache, configs, global_config, home, instances, jobs, login, logout, logs, plugins, profile, reports, services, setup, totp)
BLUEPRINTS = (about, services, profile, jobs, reports, totp, home, logout, instances, plugins, global_config, pro, cache, logs, login, configs, bans, setup)
for blueprint in BLUEPRINTS:
app.register_blueprint(blueprint)