Merge pull request '2024 Redesign' (#3) from 2024-new-design into main

Reviewed-on: https://codeberg.org/TechTransThai/www.techtransthai.org/pulls/3
This commit is contained in:
Late Night Defender 2024-04-09 21:56:00 +00:00
commit 58afbf2a86
12 changed files with 457 additions and 625 deletions

View file

@ -1,4 +0,0 @@
FROM docker.io/library/nginx:alpine
# Copy files to nginx path
COPY . /usr/share/nginx/html

View file

@ -1,5 +1,7 @@
# TechTransThai.org # TechTransThai.org
Source code for the front page of [TechTransThai.org](https://www.techtransthai.org), showcasing our currently available services, projects and authors. Written in plain HTML and CSS. Source code for the [TechTransThai.org](https://www.techtransthai.org) website, showcasing our currently available services, projects and team members. Written in plain HTML and CSS. Inspired by [Flathub](https://flathub.org).
This website will work just fine WITHOUT Javascript.
[![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page) [![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page)

BIN
avatars/nekovari.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
avatars/placeholder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -1,61 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<meta http-equiv="Content-Language" content="th">
<meta http-equiv="content-Type" content="text/html; charset=UTF-8">
<title>ข้อมูลเบราว์เซอร์</title>
<link rel="icon" type="image/png" href="icons/ttt-org.png">
</head>
<body>
<div class="topbar">
<a href="/" class="backbutton">
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path fill="currentColor" d="m 10.9375 0.996094 c -0.292969 0 -0.558594 0.128906 -0.742188 0.328125 l -6.671874 6.671875 l 6.671874 6.675781 c 0.011719 0.011719 0.023438 0.023437 0.035157 0.03125 c 0.179687 0.183594 0.429687 0.292969 0.707031 0.292969 h 1 v -1 c 0 -0.273438 -0.113281 -0.523438 -0.292969 -0.707032 c -0.011719 -0.007812 -0.019531 -0.019531 -0.035156 -0.03125 l -5.257813 -5.261718 l 5.292969 -5.292969 c 0.179688 -0.179687 0.292969 -0.429687 0.292969 -0.707031 v -1 z m 0 0"/></svg>
</a>
<div style="display: flex; align-items:start; justify-content: center; margin-top: -0.3cm;">
<h4>ข้อมูลเบราว์เซอร์</h4>
</div>
</div>
<div class="grid-container">
<div class="middle">
<div class="list" style="margin-top: 1.5cm;">
<a class="listinfo">
<div style="display: flex; margin-left: 0.5cm; align-items: center; justify-content: left;">
<p>เบราว์เซอร์</p>
</div>
<div style="display: flex; margin-right: 0.5cm; align-items: center; justify-content: right; opacity: 0.5">
<p id="browser-display"></p>
</div>
</a>
<div class="separator"></div>
<a class="listinfo">
<div style="display: flex; margin-left: 0.5cm; align-items: center; justify-content: left;">
<p>ระบบปฏิบัติการ</p>
</div>
<div style="display: flex; margin-right: 0.5cm; align-items: center; justify-content: right; opacity: 0.5">
<p id="os-display"></p>
</div>
</a>
</div>
</div>
</div>
</body>
<script>
const agent = navigator.userAgent;
const browserName = agent.split(" ")[agent.split(" ").length-1]
document.getElementById("browser-display").innerHTML = browserName;
const OS = agent.split("(")[1].split(")")[0]
document.getElementById("os-display").innerHTML = OS;
</script>
</html>

View file

@ -5,290 +5,170 @@
<meta http-equiv="Content-Language" content="th"> <meta http-equiv="Content-Language" content="th">
<meta http-equiv="content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Home of TechTransThai's available services"> <meta name="description" content="Home of TechTransThai's available services">
<title>TechTransThai 🏳️‍⚧️</title> <title>TechTransThai</title>
<link rel="icon" type="image/png" href="icons/ttt-org.png"> <link rel="icon" type="image/png" href="icons/ttt-org.png">
</head> </head>
<body> <body>
<div class="header" > <div class="header" >
<div class="banner"> <div class="topbar">
Warning: Scheduled connection reset on our side at 2AM every day.
<div style="display: flex; justify-content: space-between; margin-left: 1cm; margin-right: 1cm;">
<a href="/" style="display: flex; align-items: center; text-decoration: none;">
<img src="icons/ttt-org.png" alt="TTT Logo" width="36" height="36" style="margin-right: 5px;">
<h4 class="logo">TechTransThai</h4>
</a>
<div style="display: flex; align-items: center">
<a target="_blank" rel="noopener noreferrer" href="/team.html" class="headerbutton">
ทีม
</a>
<a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/latenightdef/ttt-org" class="headerbutton">
ซอร์สโคด
</a>
<a target="_blank" rel="noopener noreferrer" href="https://webring.wonderful.software#techtransthai.org" class="headerbutton">
วงแหวนเว็บ
</a>
<a target="_blank" rel="noopener noreferrer" href="https://status.techtransthai.org/status/techtransthai" class="headerbutton">
สถานะการให้บริการ
</a>
</div>
</div>
</div> </div>
</div> </div>
<div class="header" style="margin-top: 2cm;"> <div class="header" style="margin-top: 2cm;">
<img src="icons/ttt-org.png" alt="TTT Logo" width="64" height="64" style="margin-right: 10px;">
<h1 class="logo">TechTransThai 🏳️‍⚧️</h1>
</div>
<div class="header">
<em class="logo">A tech community for trans people and allies in Thailand</em>
</div>
<div class="header" style="margin: 1cm;">
<a target="_blank" rel="noopener noreferrer" href="https://webring.wonderful.software#techtransthai.org" class="headerbutton">
<div style="margin-right: 0.2cm; display: flex;">
<svg width="20" height="20" fill="none" viewBox="0 0 416 416" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M53 128.8l-16-8.2a192 192 0 1094.7-88.9l7.1 16.6A174 174 0 1153 128.8z" fill="currentColor"/>
<path d="M94.7 92.3L82 126.5 62.6 95.7l-36.4-1.4 23.3-28-9.9-35.1 33.9 13.5 30.3-20.3-2.4 36.4L130 83.3l-35.3 9z" fill="currentColor"/>
</svg>
</div>
วงแหวนเว็บ
</a>
<a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/latenightdef/ttt-org" class="headerbutton">
<div style="margin-right: 0.2cm; display: flex;">
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="20px" viewBox="0 0 16 16" width="20px"><path d="m 7 -0.0273438 c -1.105469 0 -2 0.8945318 -2 1.9999998 c 0.003906 0.710938 0.382812 1.371094 1 1.726563 v 8.542969 c -0.617188 0.359374 -1 1.015624 -1 1.730468 c 0 1.105469 0.894531 2 2 2 s 2 -0.894531 2 -2 c 0 -0.714844 -0.382812 -1.375 -1 -1.734375 v -0.238281 c 0 -0.667969 0.1875 -0.726562 0.445312 -0.859375 c 0.261719 -0.128906 0.554688 -0.144531 0.554688 -0.144531 h 0.007812 l 1.992188 -0.023438 c 0.832031 0 1.550781 -0.386718 2.082031 -0.917968 s 0.917969 -1.25 0.917969 -2.082032 v -2.273437 c 0.617188 -0.355469 0.996094 -1.015625 1 -1.726563 c 0 -1.105468 -0.894531 -2 -2 -2 s -2 0.894532 -2 2 c 0 0.710938 0.382812 1.371094 1 1.726563 v 2.273437 c 0 0.167969 -0.113281 0.449219 -0.332031 0.667969 s -0.5 0.332031 -0.667969 0.332031 h -0.007812 l -2 0.027344 c -0.007813 0 -0.445313 -0.003906 -0.992188 0.171875 v -5.472656 c 0.617188 -0.355469 0.996094 -1.015625 1 -1.726563 c 0 -1.105468 -0.894531 -1.9999998 -2 -1.9999998 z m 0 0"/></svg>
</div>
DATE-VERSION
</a>
<a target="_blank" rel="noopener noreferrer" href="https://status.techtransthai.org/status/techtransthai" class="headerbutton">
<div style="margin-right: 0.2cm; display: flex;">
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="20px" viewBox="0 0 16 16" width="20px"><path d="m 9.492188 0.140625 c -0.851563 -0.1640625 -1.722657 -0.1835938 -2.574219 -0.0664062 c -1.699219 0.2304692 -3.328125 1.0078122 -4.601563 2.2929692 c -2.546875 2.566406 -3.050781 6.539062 -1.230468 9.664062 c 1.824218 3.121094 5.53125 4.636719 9.019531 3.683594 c 3.488281 -0.949219 5.90625 -4.132813 5.890625 -7.75 c 0 -0.550782 -0.453125 -1 -1.003906 -0.996094 c -0.550782 0.003906 -0.996094 0.453125 -0.996094 1.003906 c 0.015625 2.722656 -1.792969 5.097656 -4.417969 5.816406 c -2.625 0.714844 -5.390625 -0.417968 -6.761719 -2.765624 c -1.371094 -2.351563 -0.996094 -5.316407 0.921875 -7.25 c 1.914063 -1.929688 4.875 -2.335938 7.238281 -0.984376 c 0.476563 0.273438 1.089844 0.109376 1.363282 -0.371093 c 0.273437 -0.480469 0.109375 -1.089844 -0.371094 -1.367188 c -0.785156 -0.445312 -1.621094 -0.75 -2.476562 -0.910156 z m 0 0"/><path d="m 15.753906 3.65625 c 0.175782 -0.199219 0.261719 -0.460938 0.246094 -0.722656 c -0.019531 -0.265625 -0.140625 -0.511719 -0.339844 -0.6875 c -0.199218 -0.175782 -0.460937 -0.265625 -0.726562 -0.246094 c -0.265625 0.015625 -0.511719 0.140625 -0.6875 0.339844 l -6.296875 7.195312 l -2.242188 -2.246094 c -0.390625 -0.390624 -1.023437 -0.390624 -1.414062 0 c -0.1875 0.1875 -0.292969 0.445313 -0.292969 0.710938 s 0.105469 0.519531 0.292969 0.707031 l 3 3 c 0.195312 0.195313 0.464843 0.300781 0.742187 0.292969 c 0.277344 -0.011719 0.535156 -0.132812 0.71875 -0.34375 z m 0 0"/></svg>
</div>
สถานะการให้บริการ
</a>
</div> </div>
<div class="grid-container"> <div class="grid-container">
<div class="middle"> <div class="middle-large">
<h3>บริการสาธารณะ</h3> <h1>เทคทรานส์ไทย 🏳️‍⚧️ 🇹🇭</h1>
<div class="list">
<!-- Invidious --> ชุมชนเทคโนโลยีสำหรับคนข้ามเพศและพันธมิตรในประเทศไทย เราให้ความสำคัญกับซอฟต์แวร์เสรี แพลตฟอร์มกระจายศูนย์ และข้อมูลเปิด
<div class="inner-grid">
<div>
<img src="icons/inv.svg" alt="Invidious" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>Invidious</h3>
<p>ดูวิดีโอจาก YouTube ไร้โฆษณากวนใจ</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://inv.techtransthai.org/feed/trending" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div> <div style="margin-top: 1cm; margin-bottom: 1cm; ">
<a class="button" target="_blank" rel="noopener noreferrer" href="https://discord.gg/QrdhSFvbha">
<!-- LibreSpeed --> ร่วมพูดคุยกับเรา
<div class="inner-grid"> </a>
<div> </div>
<img src="icons/librespeed.png" alt="LibreSpeed" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>LibreSpeed</h3>
<p>ทดสอบความเร็วอินเทอร์เน็ต</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://test.techtransthai.org/" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div>
<!-- Little Lines -->
<div class="inner-grid">
<div>
<img src="icons/ll.svg" alt="little-lines" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>Little Lines</h3>
<p>ระบบนำทางสำหรับล้อขนาดเล็ก</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://little-lines.techtransthai.org/" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div>
<!-- Syncthing Relay -->
<div class="inner-grid">
<div>
<img src="icons/syncthing.svg" alt="syncthing-relay" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>Syncthing Relay</h3>
<p>Relay server สำหรับ Syncthing</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://relays.syncthing.net/" class="button">Stats...</a>
</div>
</div>
</div>
<h3>เฉพาะบุคคลที่ได้รับอนุญาตเท่านั้น</h3>
<div class="list">
<!-- Nextcloud --> <h3>บริการ โปรเจกต์ และคอนเทนต์ของเรา</h3>
<div class="inner-grid">
<div>
<img src="icons/nextcloud.png" alt="Nextcloud" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>TechTransThai Cloud</h3>
<p>Nextcloud instance ของเรา</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://cloud.techtransthai.org/" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div> <div class="row">
<!-- Sharkey --> <a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://c4c.techtransthai.org/">
<div class="inner-grid"> <div class="listaction">
<div> <img src="icons/c4c.png" alt="Compute4Change" width="80" height="80" style="margin: 0.3cm;">
<img src="icons/sharkey.png" alt="Sharkey" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>TechTransThai F-Social</h3>
<p>Sharkey instance ของเรา</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://f-social.techtransthai.org" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div>
<!-- Home Assistant-->
<div class="inner-grid">
<div>
<img src="icons/homeassistant.svg" alt="Home Assistant" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>TechTransThai Home</h3>
<p>Home Assistant instance ของเรา</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://home.techtransthai.org" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div>
<!-- Peertube -->
<div class="inner-grid">
<div>
<img src="icons/peertube-logo.svg" alt="Peertube" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>TechTransThai Video</h3>
<p>Peertube instance ของเรา</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://video.techtransthai.org" class="button">Visit...</a>
</div>
</div>
</div>
<h3>โปรเจกต์</h3>
<div class="list">
<!-- FOSS4Change -->
<div class="inner-grid">
<div>
<img src="icons/f4c.svg" alt="FOSS4Change" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div>
<h3>FOSS4Change</h3>
<p>ร่วมสร้างความเปลี่ยนแปลงด้วยโอเพนซอร์ส</p>
</div>
<div>
<a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/@FOSS4ChangeTH" class="button">Visit...</a>
</div>
</div>
<div class="separator"></div>
<!-- Compute4Change -->
<div class="inner-grid">
<div>
<img src="icons/c4c.png" alt="Compute4Change" width="80" height="80" style="margin-left: 0.3cm;">
</div>
<div> <div>
<h3>Compute4Change</h3> <h3>Compute4Change</h3>
<p>อัปเดตความเคลื่อนไหวจากวงการ BOINC</p> <p>อัปเดตความเคลื่อนไหวจากวงการ BOINC</p>
</div> </div>
</div>
</a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/@FOSS4ChangeTH">
<div class="listaction">
<img src="icons/f4c.svg" alt="FOSS4Change" width="80" height="80" style="margin: 0.3cm;">
<div> <div>
<a target="_blank" rel="noopener noreferrer" href="https://c4c.techtransthai.org/" class="button">Visit...</a> <h3>FOSS4Change</h3>
<p>ร่วมสร้างความเปลี่ยนแปลงด้วยโอเพนซอร์ส</p>
</div> </div>
</div> </div>
</div> </a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://inv.techtransthai.org/feed/trending">
<h3>เครื่องมือ</h3> <div class="listaction">
<img src="icons/inv.svg" alt="Invidious" width="80" height="80" style="margin: 0.3cm;">
<div class="list"> <div>
<a class="listaction" href="ip.html"> <h3>Invidious</h3>
<div style="display: flex; margin-left: 0.5cm; align-items: center;"> <p>ดูวิดีโอจาก YouTube ไร้โฆษณากวนใจ</p>
<p>หมายเลข IP</p>
</div> </div>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px" ><path fill="currentColor" d="m 4 0.996094 v 1 c 0 0.296875 0.125 0.558594 0.328125 0.742187 l 5.257813 5.257813 l -5.257813 5.261718 l -0.035156 0.03125 c -0.179688 0.183594 -0.292969 0.433594 -0.292969 0.707032 v 1 h 1 c 0.277344 0 0.527344 -0.109375 0.707031 -0.292969 l 0.035157 -0.03125 l 6.671874 -6.675781 l -6.671874 -6.671875 c -0.183594 -0.199219 -0.449219 -0.328125 -0.742188 -0.328125 z m 0 0"/></svg>
</a>
<div class="separator"></div>
<a class="listaction" href="browser.html">
<div style="display: flex; margin-left: 0.5cm; align-items: center;">
<p>ข้อมูลเบราว์เซอร์</p>
</div> </div>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px" ><path fill="currentColor" d="m 4 0.996094 v 1 c 0 0.296875 0.125 0.558594 0.328125 0.742187 l 5.257813 5.257813 l -5.257813 5.261718 l -0.035156 0.03125 c -0.179688 0.183594 -0.292969 0.433594 -0.292969 0.707032 v 1 h 1 c 0.277344 0 0.527344 -0.109375 0.707031 -0.292969 l 0.035157 -0.03125 l 6.671874 -6.675781 l -6.671874 -6.671875 c -0.183594 -0.199219 -0.449219 -0.328125 -0.742188 -0.328125 z m 0 0"/></svg>
</a> </a>
</div> </div>
<h3>รู้จักกับเรา</h3>
<div class="list"> <div class="row">
<a class="listaction" href="https://latenightdef.techtransthai.org/"> <a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://test.techtransthai.org/">
<div style="display: flex; margin-left: 0.5cm; align-items: center;"> <div class="listaction">
<p style="margin-right: 0.2cm;">Late Night Defender</p> <img src="icons/librespeed.png" alt="LibreSpeed" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>LibreSpeed</h3>
<p>ทดสอบความเร็วอินเทอร์เน็ต</p>
</div> </div>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px" ><path fill="currentColor" d="m 4 0.996094 v 1 c 0 0.296875 0.125 0.558594 0.328125 0.742187 l 5.257813 5.257813 l -5.257813 5.261718 l -0.035156 0.03125 c -0.179688 0.183594 -0.292969 0.433594 -0.292969 0.707032 v 1 h 1 c 0.277344 0 0.527344 -0.109375 0.707031 -0.292969 l 0.035157 -0.03125 l 6.671874 -6.675781 l -6.671874 -6.671875 c -0.183594 -0.199219 -0.449219 -0.328125 -0.742188 -0.328125 z m 0 0"/></svg> </div>
</a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://little-lines.techtransthai.org/">
<div class="listaction">
<img src="icons/ll.svg" alt="little-lines" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>Little Lines</h3>
<p>ระบบนำทางสำหรับล้อขนาดเล็ก</p>
</div>
</div>
</a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://relays.syncthing.net/">
<div class="listaction">
<img src="icons/syncthing.svg" alt="syncthing-relay" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>Syncthing Relay</h3>
<p>Relay server แห่งแรกในไทย</p>
</div>
</div>
</a>
</div>
<div class="row">
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://video.techtransthai.org">
<div class="listaction">
<img src="icons/peertube-logo.svg" alt="Peertube" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>TechTransThai Video (Peertube)</h3>
<p>รับชมวิดีโอในเครือของเราได้ที่นี่</p>
</div>
</div>
</a> </a>
<div class="separator"></div> </div>
<a class="listaction" href="https://nekovari.techtransthai.org/"> <h3>สำหรับใช้งานภายในเท่านั้น</h3>
<div style="display: flex; margin-left: 0.5cm; align-items: center;">
<p style="margin-right: 0.2cm;">NekoVari</p>
</div>
<svg class="feather feather-external-link" viewBox="0 0 24 24" fill="none" height="20" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" x2="21" y1="14" y2="3"></line></svg>
</a>
<div class="separator"></div>
<a class="listaction" href="https://srp-mangoeater.techtransthai.org/">
<div style="display: flex; margin-left: 0.5cm; align-items: center;">
<p style="margin-right: 0.2cm;">srp-mangoeater</p>
</div>
<svg class="feather feather-external-link" viewBox="0 0 24 24" fill="none" height="20" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" x2="21" y1="14" y2="3"></line></svg>
</a>
<div class="separator"></div>
<a class="listaction" href="https://matsuri.techtransthai.org/">
<div style="display: flex; margin-left: 0.5cm; align-items: center;">
<p style="margin-right: 0.2cm;">matsuri</p>
</div>
<svg class="feather feather-external-link" viewBox="0 0 24 24" fill="none" height="20" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" x2="21" y1="14" y2="3"></line></svg>
</a>
<div class="separator"></div>
<a class="listaction" href="https://blachp.techtransthai.org/">
<div style="display: flex; margin-left: 0.5cm; align-items: center;">
<p style="margin-right: 0.2cm;">BlaCHp</p>
</div>
<svg class="feather feather-external-link" viewBox="0 0 24 24" fill="none" height="20" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" x2="21" y1="14" y2="3"></line></svg>
</a>
<!-- Website verification via rel=me --> <div class="row">
<a href="https://en.pronouns.page/@latenightdef" rel="me"></a> <a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://cloud.techtransthai.org/">
<a href="https://f-social.techtransthai.org/@latenightdef" rel="me"></a> <div class="listaction">
<a href="https://webring.wonderful.software#techtransthai.org"><a/> <img src="icons/nextcloud.png" alt="Nextcloud" width="80" height="80" style="margin: 0.3cm;">
</div> <div>
<h3>TechTransThai Cloud</h3>
<p>Nextcloud instance ของเรา</p>
</div>
</div>
</a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://f-social.techtransthai.org/">
<div class="listaction">
<img src="icons/sharkey.png" alt="Sharkey" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>TechTransThai F-Social</h3>
<p>Sharkey instance ของเรา</p>
</div>
</div>
</a>
<a class="itemcard" target="_blank" rel="noopener noreferrer" href="https://home.techtransthai.org">
<div class="listaction">
<img src="icons/homeassistant.svg" alt="Home Assistant" width="80" height="80" style="margin: 0.3cm;">
<div>
<h3>TechTransThai Home</h3>
<p>Home Assistant instance ของเรา</p>
</div>
</div>
</a>
</div>
<a href="https://en.pronouns.page/@latenightdef" rel="me"></a>
<a href="https://f-social.techtransthai.org/@latenightdef" rel="me"></a>
<a href="https://webring.wonderful.software#techtransthai.org"><a/>
</div> </div>
</div> </div>

View file

@ -1,10 +1,4 @@
systemctl --user stop ttt-org systemctl --user stop ttt-org
cp ttt-org.container ~/.config/containers/systemd cp ttt-org.container ~/.config/containers/systemd
systemctl --user daemon-reload systemctl --user daemon-reload
sed -i "s/DATE/$(date -I)/g" index.html
sed -i "s/VERSION/$(git log -1 --oneline | awk '{print $1}')/g" index.html
podman build -t ttt-org .
systemctl --user start ttt-org systemctl --user start ttt-org

46
ip.html
View file

@ -1,46 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<meta http-equiv="Content-Language" content="th">
<meta http-equiv="content-Type" content="text/html; charset=UTF-8">
<title>หมายเลข IP</title>
<link rel="icon" type="image/png" href="icons/ttt-org.png">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
<script>
$.getJSON("https://api.ipify.org?format=json", function(data) {
$("#userip").html(data.ip);
})
</script>
</head>
<body>
<div class="topbar">
<a href="/" class="backbutton">
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path fill="currentColor" d="m 10.9375 0.996094 c -0.292969 0 -0.558594 0.128906 -0.742188 0.328125 l -6.671874 6.671875 l 6.671874 6.675781 c 0.011719 0.011719 0.023438 0.023437 0.035157 0.03125 c 0.179687 0.183594 0.429687 0.292969 0.707031 0.292969 h 1 v -1 c 0 -0.273438 -0.113281 -0.523438 -0.292969 -0.707032 c -0.011719 -0.007812 -0.019531 -0.019531 -0.035156 -0.03125 l -5.257813 -5.261718 l 5.292969 -5.292969 c 0.179688 -0.179687 0.292969 -0.429687 0.292969 -0.707031 v -1 z m 0 0"/></svg>
</a>
<div style="display: flex; align-items:start; justify-content: center; margin-top: -0.3cm;">
<h4>หมายเลข IP</h4>
</div>
</div>
<div class="grid-container">
<div class="middle">
<div class="list" style="margin-top: 1.5cm;">
<a class="listinfo">
<div style="display: flex; margin-left: 0.5cm; align-items: center; justify-content: left;">
<p>หมายเลข IPv4</p>
</div>
<div style="display: flex; margin-right: 0.5cm; align-items: center; justify-content: right; opacity: 0.5">
<p id="userip"></p>
</div>
</a>
</div>
</div>
</div>
</body>
</html>

77
navbar.css Normal file
View file

@ -0,0 +1,77 @@
.header {
display: flex;
justify-content: center;
align-items: center;
}
@media (prefers-color-scheme: light) {
.headerbutton {
color: black;
border: none;
border-radius: 8px;
justify-content: center;
align-items: center;
text-decoration: none;
display: flex;
font-size: 16px;
margin: 4px 2px;
padding-left: 0.3cm;
padding-right: 0.3cm;
cursor: pointer;
height: 35px;
transition-duration: 0.2s;
}
.headerbutton:hover {
background-color: #fafafa;
}
.topbar {
position: fixed;
width: 100%;
top: 0px;
left: 0px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(224, 224, 224, 1);
color: #000000;
z-index: 10;
}
}
@media (prefers-color-scheme: dark) {
.headerbutton {
color: #ffffff;
border: none;
border-radius: 8px;
justify-content: center;
align-items: center;
text-decoration: none;
display: flex;
font-size: 16px;
margin: 4px 2px;
padding-left: 0.3cm;
padding-right: 0.3cm;
cursor: pointer;
height: 35px;
transition-duration: 0.2s;
}
.headerbutton:hover {
background-color: #4a4a4a;
}
.topbar {
position: fixed;
width: 100%;
top: 0px;
left: 0px;
background-color: #303030;
border: 1px solid #1f1f1f;
color: #ffffff;
z-index: 10;
}
}

380
style.css
View file

@ -1,4 +1,5 @@
@import url("cantarell/cantarell.css"); @import url("cantarell/cantarell.css");
@import url("navbar.css");
html * html *
{ {
@ -26,30 +27,37 @@ html *
flex-direction: column; flex-direction: column;
} }
.pfp { .middle-large {
display: flex;
justify-content: center;
align-items: center;
margin-top: 3cm;
}
.middle {
grid-area: middle; grid-area: middle;
width: 15cm; width: 80vw;
} max-width: 35cm;
.inner-grid {
display: grid;
align-items: center;
grid-template-columns: 3cm 1fr 3cm;
grid-template-areas:
'inner-left inner-middle inner-right'
} }
.description { .description {
font-size: 10pt; font-size: 10pt;
margin-top: -0.3cm; margin-top: -0.3cm;
opacity: 0.7;
}
.pronouns {
font-size: 12pt;
opacity: 0.5; opacity: 0.5;
margin-left: 0.25cm;
}
.row {
display: flex;
justify-content: space-between;
}
.itemcard-placeholder {
display: grid;
border-radius: 12px;
text-decoration: none;
margin-bottom: 0.5cm;
min-height: 3cm;
min-width: 6cm;
width: 32.5%
} }
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
@ -60,6 +68,8 @@ html *
.logo { .logo {
color: #000; color: #000;
font-weight: bold;
text-decoration: none;
} }
.grid-container { .grid-container {
@ -70,129 +80,29 @@ html *
'left middle right' 'left middle right'
} }
.button { .listaction {
background-color: #EBEBEB;
color: black;
border: none;
border-radius: 8px;
justify-content: center;
align-items: center;
text-decoration: none;
display: flex; display: flex;
font-size: 16px; color: black;
align-items: center;
}
.button {
height: 1cm;
border-radius: 6px;
background-color: rgba(0, 0, 0, 0.08);
color: black;
text-decoration: none;
font-weight: bold; font-weight: bold;
margin: 4px 2px; padding: 10px 10px;
cursor: pointer; margin-top: 1cm;
width: 100px; margin-bottom: 1cm;
height: 35px;
transition-duration: 0.2s; transition-duration: 0.2s;
} }
.button:hover { .button:hover {
background-color: #E0E0E0; background-color: rgba(0, 0, 0, 0.18);
} }
.headerbutton {
background-color: #EBEBEB;
color: black;
border: none;
border-radius: 8px;
justify-content: center;
align-items: center;
text-decoration: none;
display: flex;
font-size: 16px;
font-weight: bold;
margin: 4px 2px;
padding-left: 0.3cm;
padding-right: 0.3cm;
cursor: pointer;
height: 35px;
transition-duration: 0.2s;
}
.headerbutton:hover {
background-color: #E0E0E0;
}
.list {
border-radius: 12px 12px 12px 12px;
background-color: #ffffff;
box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13);
margin-bottom: 50px;
}
.separator {
width: 15cm;
height: 1px;
background-color: rgba(237, 237, 237, 1);
}
.listaction {
display: grid;
grid-template-columns: 1fr 1cm;
text-decoration: none;
color: black;
align-items: center;
height: 1.5cm;
}
.listinfo {
display: grid;
grid-template-columns: 1fr 2fr;
text-decoration: none;
color: black;
align-items: center;
height: 1.5cm;
}
.topbar {
position: fixed;
width: 100%;
height: 1.2cm;
top: 0px;
left: 0px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(224, 224, 224, 1);
color: #000000;
z-index: 10;
}
.backbutton {
position: absolute;
color: black;
border-radius:10px;
justify-content: center;
align-items: center;
text-decoration: none;
display: grid;
font-size: 14px;
cursor: pointer;
margin: 0.1cm;
transition-duration: 0.2s;
width: 1cm;
height: 1cm;
}
.backbutton:hover {
background-color: #DEDEDE;
}
.banner {
position: fixed;
background-color: #BFD7F3;
color: black;
width: 100%;
height: 1.2cm;
top: 0px;
left: 0px;
justify-content: center;
align-items: center;
display: flex;
font-weight: bold;
text-align: center;
}
.gtk-button-pill { .gtk-button-pill {
position: relative; position: relative;
@ -211,149 +121,80 @@ html *
padding: 0px 32px; padding: 0px 32px;
flex-wrap: nowrap; flex-wrap: nowrap;
} }
.itemcard {
display: grid;
border-radius: 12px;
text-decoration: none;
background-color: #ffffff;
box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13);
margin-bottom: 0.5cm;
min-height: 3cm;
min-width: 6cm;
width: 32.5%;
transition-duration: 0.2s;
}
.itemcard-stealth {
display: grid;
border-radius: 12px;
text-decoration: none;
margin-bottom: 0.5cm;
min-height: 3cm;
min-width: 6cm;
width: 32.5%;
transition-duration: 0.2s;
}
.itemcard:hover {
background-color: #fafafa;
}
.itemcard-stealth:hover {
background-color: #e0e0e0;
}
} }
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.logo {
color: #fff;
}
body { body {
background-color: #222222; background-color: #222222;
} }
.logo {
color: #fff;
font-weight: bold;
text-decoration: none;
}
.grid-container { .grid-container {
display: grid; display: grid;
justify-content: center; justify-content: center;
color: #ffffff; color: #fff;
grid-template-areas: grid-template-areas:
'left middle right' 'left middle right'
}
.listaction {
display: flex;
color: white;
align-items: center;
} }
.button { .button {
background-color: #4a4a4a; height: 1cm;
color: #ffffff; border-radius: 6px;
border: none; background: rgba(255, 255, 255, 0.1);
border-radius: 8px; color: white;
justify-content: center;
align-items: center;
text-decoration: none; text-decoration: none;
display: flex;
font-size: 16px;
font-weight: bold; font-weight: bold;
margin: 4px 2px; padding: 10px 10px;
cursor: pointer; margin-top: 1cm;
width: 100px; margin-bottom: 1cm;
height: 35px;
transition-duration: 0.2s; transition-duration: 0.2s;
} }
.button:hover { .button:hover {
background-color: #595959; background: rgba(255, 255, 255, 0.18);
}
.headerbutton {
background-color: #4a4a4a;
color: #ffffff;
border: none;
border-radius: 8px;
justify-content: center;
align-items: center;
text-decoration: none;
display: flex;
font-size: 16px;
font-weight: bold;
margin: 4px 2px;
padding-left: 0.3cm;
padding-right: 0.3cm;
cursor: pointer;
height: 35px;
transition-duration: 0.2s;
}
.headerbutton:hover {
background-color: #595959;
}
.list {
border-radius: 12px 12px 12px 12px;
background-color: #363636;
box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13);
margin-bottom: 50px;
}
.separator {
width: 15cm;
height: 1px;
background-color: #232323;
}
.listaction {
display: grid;
grid-template-columns: 1fr 1cm;
text-decoration: none;
color: #ffffff;
align-items: center;
height: 1.5cm;
}
.listinfo {
display: grid;
grid-template-columns: 1fr 2fr;
text-decoration: none;
color: #ffffff;
align-items: center;
height: 1.5cm;
}
.topbar {
position: fixed;
width: 100%;
height: 1.2cm;
top: 0px;
left: 0px;
background-color: #303030;
border: 1px solid #1f1f1f;
color: #ffffff;
z-index: 10;
}
.backbutton {
position: absolute;
color: #ffffff;
border-radius:10px;
justify-content: center;
align-items: center;
text-decoration: none;
display: grid;
font-size: 14px;
cursor: pointer;
margin: 0.1cm;
transition-duration: 0.2s;
width: 1cm;
height: 1cm;
}
.backbutton:hover {
background-color: #3e3e3e;
}
.banner {
position: fixed;
background-color: #29415E;
color: white;
width: 100%;
height: 1.2cm;
top: 0px;
left: 0px;
justify-content: center;
align-items: center;
display: flex;
font-weight: bold;
text-align: center;
} }
.gtk-button-pill { .gtk-button-pill {
@ -373,4 +214,35 @@ html *
padding: 0px 32px; padding: 0px 32px;
flex-wrap: nowrap; flex-wrap: nowrap;
} }
.itemcard {
display: grid;
border-radius: 12px;
text-decoration: none;
background-color: #303030;
box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13);
margin-bottom: 0.5cm;
min-height: 3cm;
min-width: 6cm;
width: 32.5%;
transition-duration: 0.2s;
}
.itemcard-stealth {
display: grid;
border-radius: 12px;
text-decoration: none;
margin-bottom: 0.5cm;
min-height: 3cm;
min-width: 6cm;
width: 32.5%;
transition-duration: 0.2s;
}
.itemcard:hover {
background-color: #4a4a4a;
}
.itemcard-stealth:hover {
background-color: #4a4a4a;
}
} }

117
team.html Normal file
View file

@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<meta http-equiv="Content-Language" content="th">
<meta http-equiv="content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Home of TechTransThai's available services">
<title>TechTransThai</title>
<link rel="icon" type="image/png" href="icons/ttt-org.png">
</head>
<body>
<div class="header" >
<div class="topbar">
<div style="display: flex; justify-content: space-between; margin-left: 1cm; margin-right: 1cm;">
<a href="/" style="display: flex; align-items: center; text-decoration: none;">
<img src="icons/ttt-org.png" alt="TTT Logo" width="36" height="36" style="margin-right: 5px;">
<h4 class="logo">TechTransThai</h4>
</a>
<div style="display: flex; align-items: center">
<a target="_blank" rel="noopener noreferrer" href="/team.html" class="headerbutton">
ทีม
</a>
<a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/latenightdef/ttt-org" class="headerbutton">
ซอร์สโคด
</a>
<a target="_blank" rel="noopener noreferrer" href="https://webring.wonderful.software#techtransthai.org" class="headerbutton">
วงแหวนเว็บ
</a>
<a target="_blank" rel="noopener noreferrer" href="https://status.techtransthai.org/status/techtransthai" class="headerbutton">
สถานะการให้บริการ
</a>
</div>
</div>
</div>
</div>
<div class="header" style="margin-top: 2cm;">
</div>
<div class="grid-container">
<div class="middle-large">
<h1>ทีมของเรา</h1>
นี่คือรายชื่อสมาชิกของพวกเราในทีมงาน TechTransThai
<div class="row" style="margin-top: 1cm">
<a class="itemcard-stealth" target="_blank" rel="noopener noreferrer" href="https://latenightdef.techtransthai.org/">
<div class="listaction">
<img src="https://latenightdef.techtransthai.org/icons/avatar.png" alt="no-avatar" width="80" height="80" style="margin: 0.3cm; border-radius: 40px; box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13)">
<div>
<div style="display: flex; align-items: center;">
<h3>Late Night Defender</h3>
<p class="pronouns">she/they</p>
</div>
<p class="description">เข้าร่วมเมื่อ 23 ก.ค. 2023</p>
</div>
</div>
</a>
<a class="itemcard-stealth" target="_blank" rel="noopener noreferrer" href="https://nekovari.techtransthai.org/">
<div class="listaction">
<img src="avatars/nekovari.jpg" alt="latenightdef" width="80" height="80" style="margin: 0.3cm; border-radius: 40px; box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13)">
<div>
<div style="display: flex; align-items: center;">
<h3>NekoVari</h3>
<p class="pronouns">he/they</p>
</div>
<p class="description">เข้าร่วมเมื่อ 24 มี.ค. 2024</p>
</div>
</div>
</a>
<a class="itemcard-stealth" target="_blank" rel="noopener noreferrer" href="https://srp-mangoeater.techtransthai.org/">
<div class="listaction">
<img src="avatars/placeholder.png" alt="no-avatar" width="80" height="80" style="margin: 0.3cm; border-radius: 40px; box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13)">
<div>
<h3>Matsuri</h3>
</div>
</div>
</a>
</div>
<div class="row">
<a class="itemcard-stealth" target="_blank" rel="noopener noreferrer" href="https://matsuri.techtransthai.org/">
<div class="listaction">
<img src="avatars/placeholder.png" alt="no-avatar" width="80" height="80" style="margin: 0.3cm; border-radius: 40px; box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13)">
<div>
<h3>SRP Mangoeater</h3>
</div>
</div>
</a>
<a class="itemcard-stealth" target="_blank" rel="noopener noreferrer" href="https://blachp.techtransthai.org/">
<div class="listaction">
<img src="avatars/placeholder.png" alt="no-avatar" width="80" height="80" style="margin: 0.3cm; border-radius: 40px; box-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.13)">
<div>
<h3>BlaCHp</h3>
<p class="description">เข้าร่วมเมื่อ 27 มี.ค. 2024</p>
</div>
</div>
</a>
<a class="itemcard-placeholder">
</a>
</div>
</div>
</div>
</body>
</html>

View file

@ -3,8 +3,9 @@ Description=TechTransThai.org Website
[Container] [Container]
ContainerName=ttt-org ContainerName=ttt-org
Image=ttt-org Image=docker.io/library/nginx:alpine
PublishPort=8082:80 PublishPort=8082:80
Volume=/run/media/core/Data1/Apps/www.techtransthai.org:/usr/share/nginx/html:ro,z
[Service] [Service]
Restart=always Restart=always