9 Commits

Author SHA1 Message Date
Sweetbread 8c36a3e3a6 Add some services 2025-10-11 02:06:30 +03:00
Sweetbread 4b6449a7a0 Change host info 2025-10-11 02:06:30 +03:00
Sweetbread 3fefa976ea Improve style
- Add more depth to .block
- Make footer lighter
- Stylize scrollbar
2025-10-11 02:06:30 +03:00
Sweetbread d0e38f14ac Add mine page 2025-10-11 02:06:30 +03:00
Sweetbread f56c7831ed style: change sizes to rem
Docker Build and Push / build-and-push (push) Successful in 2m5s
2025-09-04 19:15:27 +03:00
Sweetbread 01600d8e50 style: decrease margins 2025-09-04 17:31:32 +03:00
Sweetbread befb88d498 feat: add tracker script
Docker Build and Push / build-and-push (push) Successful in 1m9s
2025-08-18 14:25:44 +03:00
Sweetbread 217ba01f12 update host specs
Docker Build and Push / build-and-push (push) Successful in 1m10s
2025-08-18 14:20:23 +03:00
Sweetbread 96a3ca543b l10n: add en, de, ja and fr
Docker Build and Push / build-and-push (push) Successful in 3m16s
2025-08-18 14:15:53 +03:00
22 changed files with 263 additions and 28 deletions
+6 -1
View File
@@ -16,7 +16,7 @@ def load_translations(lang):
try:
config = ConfigParser()
config.read(f'translations/{lang}.ini')
config.read(f'locale/{lang}.ini')
for section in config.sections():
translations_cache[lang][section] = dict(config.items(section))
except:
@@ -59,6 +59,7 @@ def inject_translations():
if app.debug:
console("sass static/style/main.scss static/style/main.css")
console("sass static/style/risdeveau.scss static/style/risdeveau.css")
@app.route("/")
def index():
@@ -71,3 +72,7 @@ def host():
@app.route("/us")
def us():
return render_template('us.html')
@app.route("/risdeveau")
def risdeveau():
return render_template('personal/risdeveau.html')
+2
View File
@@ -15,6 +15,8 @@ gitea = Open-Source, selbst gehosteter Git-Repository-Hoster
matrix = Föderierter Messenger
copyparty = Cloud-Dateispeicher
4get = Proxy-Suchmaschine
tools = Satz verschiedener Werkzeuge
vert = Dateiumwandler
[host]
+2
View File
@@ -15,6 +15,8 @@ gitea = Opensource selfhosted Git repository hosting
matrix = federated instant messenger
copyparty = cloud file storage
4get = proxy search engine
tools = set of various tools
vert = file converter
[host]
+2
View File
@@ -15,6 +15,8 @@ gitea = Hébergement de dépôts Git open source en auto-hébergé
matrix = Messagerie fédérée
copyparty = Stockage de fichiers en cloud
4get = Moteur de recherche proxy
tools = ensemble d'outils variés
vert = convertisseur de fichiers
[host]
+2
View File
@@ -15,6 +15,8 @@ gitea = オープンソースのセルフホスティングGitリポジトリ
matrix = 連合型メッセンジャー
copyparty = クラウドファイルストレージ
4get = プロキシ検索エンジン
tools = 様々なツールのセット
vert = ファイル変換ツール
[host]
+2
View File
@@ -15,6 +15,8 @@ gitea = Selfhosted хранилище Git-репозиториев со своб
matrix = федеративный мессенджер
copyparty = облачное хранилище файлов
4get = прокси-поисковик
tools = набор разнообразных утилит
vert = конвертация файлов
[host]
-1
View File
@@ -1,3 +1,2 @@
Flask==3.1.1
Flask-Babel
gunicorn
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
M+ FONTS Copyright (C) 2002-2013 M+ FONTS PROJECT
-
LICENSE_E
These fonts are free software.
Unlimited permission is granted to use, copy, and distribute them, with
or without modification, either commercially or noncommercially.
THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.
http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/
Binary file not shown.
+2 -1
View File
@@ -1,2 +1,3 @@
Monocraft: https://idreesinc.itch.io/monocraft
Pixeloid: https://ggbot.itch.io/pixeloid-font
Pixeloid: https://ggbot.itch.io/pixeloid-font
PixelM+: https://itouhiro.hatenablog.com/entry/20130602/font
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

+88 -14
View File
@@ -34,7 +34,7 @@ body {
display: flex;
flex-direction: column;
background-color: $base;
font-family: Pixeloid;
font-family: Pixeloid, PixelMPlus;
color: $text;
width: 100%;
height: 100%;
@@ -44,7 +44,7 @@ body {
main {
max-width: 45rem;
margin-inline: auto;
padding: 0 8px;
padding: 0 .5rem;
flex: 1 0 auto;
}
@@ -54,9 +54,10 @@ h1 {
a {
color: unset;
text-decoration: underline;
text-decoration-color: $blue;
text-underline-offset: 1px;
text: {
decoration: underline {color: $blue};
underline-offset: 1px;
}
transition: 0.3s ease;
&:hover {
@@ -67,6 +68,7 @@ a {
transition: none !important;
display: inline-block;
transform: scale(.98) !important;
background-color: $mantle !important;
}
&.block {
@@ -74,16 +76,24 @@ a {
&:hover {
transform: scale(1.02) translateY(-.25rem);
background-color: $surface1;
}
}
}
p {
margin: .5rem;
}
ul {
margin-top: .25rem;
}
header {
display: flex;
flex-direction: row-reverse;
justify-content: space-between;
background-color: $mantle;
padding: 8px;
padding: .5rem;
font-size: larger;
}
@@ -91,9 +101,9 @@ footer {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
background-color: $crust;
margin-top: 32px;
padding: 16px;
background-color: $mantle;
margin-top: 2rem;
padding: 1rem;
column-gap: 4ch;
}
@@ -101,7 +111,7 @@ footer {
font-family: Monocraft, monospace;
background-color: $mantle;
border-radius: 2px;
padding: 0 4px;
padding: 0 .25rem;
color: $subtext0;
overflow-wrap: anywhere;
@@ -114,11 +124,11 @@ footer {
.block {
display: block;
background-color: $surface0;
border-radius: 8px;
padding: 8px;
border-radius: .5rem;
padding: .5rem;
& + & {
margin-top: 8px;
margin-top: .5rem;
}
&.red {
@@ -129,6 +139,8 @@ footer {
}
&.green {
background-color: color.mix($surface0, $green, 60%);
&:hover { background-color: color.mix($surface1, $green, 60%); }
&:active { background-color: color.mix($mantle, $green, 60%) !important; }
}
& .header {
@@ -142,12 +154,64 @@ footer {
}
}
.blocks {
display: flex;
flex-wrap: wrap;
margin-top: .5rem;
gap: .5rem;
& + &,
& + .block,
.block + & {
margin-top: .5rem;
}
.block {
margin-top: 0;
}
}
.badges {
.block {
flex: 1;
text-wrap-mode: nowrap;
text-align: -webkit-center;
&:hover {
flex: 1.5;
transform: none;
}
}
}
.icon {
width: 1.5em;
vertical-align: middle;
border-radius: .2em;
}
::-webkit-scrollbar {
width: .5rem;
&-button {
display: none;
}
&-track {
background-color: $base;
}
&-thumb {
background-color: $overlay0;
border-radius: .25rem;
&:hover {
background-color: $overlay1;
}
}
}
@font-face {
font-family: Monocraft;
src: url("/static/font/Monocraft.ttc");
@@ -166,3 +230,13 @@ footer {
url("/static/font/Pixeloid/otf/Sans-Bold.otf") format("opentype");
font-weight: bold;
}
@font-face {
font-family: PixelMPlus;
src: url("/static/font/PixelMPlus/Regular.ttf");
}
@font-face {
font-family: PixelMPlus;
src: url("/static/font/PixelMPlus/Bold.ttf");
font-weight: bold;
}
+33
View File
@@ -0,0 +1,33 @@
h3 {
margin-block-end: 0;
}
.qr {
img { width: 100% }
p { text-align: center; }
&.blocks {
flex-wrap: nowrap;
overflow-x: auto;
width: calc(100vw - 1rem);
max-width: 45rem;
scroll: {
behavior: smooth;
snap-type: x mandatory;
}
&::-webkit-scrollbar { display: none; }
&:hover .block.qr:not(:hover) {
filter: blur(5px);
transition: all 0.3s ease;
}
}
&.block {
flex: 0 0 calc(100vw - 2rem);
scroll-snap-align: start;
max-width: 13.666rem;
}
}
+5
View File
@@ -6,6 +6,11 @@
<link rel="stylesheet" href="/static/style/main.css">
<link rel="icon" type="image/webp" href="/static/icon/codrs.webp" />
<script src="/static/script/copy-mono.js"> </script>
<script
src="https://track.codrs.ru/api/script.js"
data-site-id="1"
defer
></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
+6 -4
View File
@@ -1,4 +1,10 @@
<header>
{%- if request.path != url_for('index') %}
<a href="{{ url_for('index') }}">Coders Squad</a>
{%- else %}
<div></div>
{%- endif %}
<div class="header-links">
{%- for (l, t) in (
('us', _('about us')),
@@ -11,8 +17,4 @@
{%- endif %}
{%- endfor %}
</div>
{%- if request.path != url_for('index') %}
<a href="{{ url_for('index') }}">Coders Squad</a>
{%- endif %}
</header>
+5 -5
View File
@@ -3,7 +3,7 @@
{% block title %}{{ _('about host') }}{% endblock %}
{% block content %}
<a href="https://play2go.cloud/" target="_blank" class="block">
<a href="https://play2go.cloud/?ref_id=4baFoOIp5QE" target="_blank" class="block">
<strong>{{ _("host:hoster") }}</strong>: play2go
<p>{{ _('host:hoster_descr') }}</p>
</a>
@@ -11,10 +11,10 @@
<div class="block">
<strong>{{ _("host:specifications") }}</strong>:
<ul>
<li>CPU: Ryzen i9</li>
<li>RAM: 16 GiB</li>
<li>SSD: 120 GiB</li>
<li>ETH: 500GiB/s</li>
<li>CPU: Ryzen i9@3.4GHz (4 cores)</li>
<li>RAM: 8 GiB</li>
<li>SSD: 150 GB</li>
<li>ETH: 500Mb/s</li>
<li>Loc: Deutchland, Frankfurt am Mein</li>
</ul>
</div>
+3 -1
View File
@@ -25,13 +25,15 @@
<p><a href="https://m.codrs.ru" target="_blank"><strong>Matrix</strong></a> &mdash; {{ _('index.descr:matrix') }}</p>
<p><a href="https://c.codrs.ru" target="_blank"><strong>Copyparty</strong></a> &mdash; {{ _('index.descr:copyparty') }}</p>
<p><a href="https://s.codrs.ru" target="_blank"><strong>4get</strong></a> &mdash; {{ _('index.descr:4get') }}</p>
<p><a href="https://tools.codrs.ru" target="_blank"><strong>IT-tools</strong></a> &mdash; {{ _('index.descr:tools') }}</p>
<p><a href="https://vert.codrs.ru" target="_blank"><strong>Vert</strong></a> &mdash; {{ _('index.descr:vert') }}</p>
</div>
<div class="block">
<div>
<strong>DNS</strong>:
<ul>
<li><span class="mono">193.222.99.172</span></li>
<li><span class="mono">64.188.64.176</span></li>
<li>DoT: <span class="mono">codrs.ru:853</span></li>
<li>DoH: <span class="mono">dns.codrs.ru</span></li>
</ul>
+88
View File
@@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<head>
<title>Sweet Bread</title>
<link rel="stylesheet" href="/static/style/main.css">
<link rel="stylesheet" href="/static/style/risdeveau.css">
<link rel="icon" type="image/webp" href="/static/icon/us/risdeveau.webp" />
<script
src="https://track.codrs.ru/api/script.js"
data-site-id="1"
defer
></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<header>
<a href="{{ url_for('index') }}">Coders Squad</a>
</header>
<main>
<h3>Development</h3>
<div class="blocks badges">
<a class="block" href="//g.codrs.ru/Sweetbread">
<img class="icon" src="/static/icon/service/gitea.webp" />
Gitea
</a>
<a class="block" href="https://github.com/VerySweetBread">
<img class="icon" src="https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png" />
GitHub
</a>
<a class="block" href="https://git.kolibrios.org/Sweetbread">
<img class="icon" src="https://git.kolibrios.org/assets/img/logo.svg" />
KolibriOS Git
</a>
</div>
<h3>Contacts</h3>
<div class="blocks badges">
<a class="block" href="https://matrix.to/#/@risdeveau:codrs.ru">
<img class="icon" src="https://matrix.org/assets/favicon.ico" />
Matrix
</a>
<a class="block" href="//b.codrs.ru/@risdeveau">
<img class="icon" src="/static/icon/service/sharkey.webp" />
Fediverse
</a>
<a class="block" href="https://discord.com/users/459823895256498186">
<img class="icon" src="https://cdn.prod.website-files.com/6257adef93867e50d84d30e2/66e3d80db9971f10a9757c99_Symbol.svg" />
Discord
</a>
<a class="block" href="mailto:risdeveau@codrs.ru">
Mail
</a>
</div>
<h3>Game accounts</h3>
<div class="blocks badges">
<a class="block" href="https://steamcommunity.com/id/risdeveau">
<img class="icon" src="https://store.steampowered.com/favicon.ico" />
Steam
</a>
<a class="block" href="https://gamebanana.com/members/3899828">
<img class="icon" src="https://images.gamebanana.com/static/img/favicon/favicon.ico" />
GameBanana
</a>
</div>
<h3>Wallets</h3>
<div class="blocks qr">
<div class="block qr">
<p>POL, BNB</p>
<img src="/static/img/risdeveau/wallets/evm.webp">
</div>
<div class="block qr">
<p>TON</p>
<img src="/static/img/risdeveau/wallets/ton.webp">
</div>
<div class="block qr">
<p>XMR</p>
<img src="/static/img/risdeveau/wallets/xmr.webp">
</div>
</div>
</main>
</body>
</html>
+1 -1
View File
@@ -3,7 +3,7 @@
{% block title %}О нас{% endblock %}
{% block content %}
<a href="#" class="block green">
<a href="{{ url_for('risdeveau') }}" class="block green">
<div class="header">
<img src="/static/icon/us/risdeveau.webp" class="icon"/>
Sweetbread