First commit
All checks were successful
Build tesses.net / build-and-push-image (push) Successful in 49s
All checks were successful
Build tesses.net / build-and-push-image (push) Successful in 49s
This commit is contained in:
35
.gitea/workflows/work.yaml
Normal file
35
.gitea/workflows/work.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
name: Build tesses.net
|
||||
run-name: ${{ gitea.actor }} is building tesses.net 🚀
|
||||
on: [push]
|
||||
|
||||
env:
|
||||
GITEA_DOMAIN: git.tesses.org
|
||||
GITEA_REGISTRY_USER: tesses50
|
||||
RESULT_IMAGE_NAME: tesses50/tessesdotnet
|
||||
|
||||
jobs:
|
||||
build-and-push-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Log in to registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.GITEA_DOMAIN }}
|
||||
username: ${{ env.GITEA_REGISTRY_USER }}
|
||||
password: ${{ secrets.PACKAGE_AND_BREW }}
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: ${{ env.GITEA_DOMAIN }}/${{ env.RESULT_IMAGE_NAME }}:latest
|
||||
- name: Deploy to cluster
|
||||
uses: steebchen/kubectl@v2.0.0
|
||||
with:
|
||||
config: ${{ secrets.KUBECONFIG }}
|
||||
command: apply -f kubernetes
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
bin
|
||||
obj
|
||||
13
Dockerfile
Normal file
13
Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
||||
FROM git.tesses.org/tesses50/crosslang-withshell:latest AS build
|
||||
|
||||
COPY . /src
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
RUN crosslang build
|
||||
|
||||
FROM git.tesses.org/tesses50/crosslang:latest
|
||||
|
||||
COPY --from=build /src/bin/TessesNet-1.0.0.0-prod.crvm /TessesNet.crvm
|
||||
|
||||
ENTRYPOINT ["/usr/bin/env", "crossvm", "/TessesNet.crvm"]
|
||||
8
cross.json
Normal file
8
cross.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"$schema": "https:\/\/crosslang.tesseslanguage.com\/\/schema\/cross-json-schema.json",
|
||||
"info": {
|
||||
"type": "console"
|
||||
},
|
||||
"name": "TessesNet",
|
||||
"version": "1.0.0.0-prod"
|
||||
}
|
||||
27
kubernetes/deployment.yaml
Normal file
27
kubernetes/deployment.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: tessesdotnet
|
||||
labels:
|
||||
app: tessesdotnet
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: tessesdotnet
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: tessesdotnet
|
||||
spec:
|
||||
containers:
|
||||
- name: tessesdotnet
|
||||
image: git.tesses.org/tesses50/tessesdotnet:latest
|
||||
ports:
|
||||
- containerPort: 4206
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 500Mi
|
||||
limits:
|
||||
memory: 600Mi
|
||||
13
kubernetes/service.yaml
Normal file
13
kubernetes/service.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: tessesdotnet
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: tessesdotnet
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 30001
|
||||
targetPort: 4206
|
||||
nodePort: 30001
|
||||
185
res/css/styles-new.css
Normal file
185
res/css/styles-new.css
Normal file
@@ -0,0 +1,185 @@
|
||||
* {
|
||||
font-family:'Courier New', Courier, monospace;
|
||||
margin: 0;
|
||||
}
|
||||
@media screen {
|
||||
|
||||
|
||||
.nav-bar h1
|
||||
{
|
||||
color: darkorange;
|
||||
}
|
||||
.nav-bar {
|
||||
background-color: darkgreen;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-content: center;
|
||||
}
|
||||
#branding {
|
||||
padding-left: 40px;
|
||||
display: flex;
|
||||
|
||||
}
|
||||
#branding img {
|
||||
padding-right: 15px;
|
||||
}
|
||||
.nav-bar ul
|
||||
{
|
||||
display: flex;
|
||||
list-style-type: none;
|
||||
flex-wrap: wrap;
|
||||
align-content: center;
|
||||
padding-right: 20px;
|
||||
}
|
||||
.nav-bar-print
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.nav-link
|
||||
{
|
||||
font-size: 1.25rem;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.nav-link a
|
||||
{
|
||||
text-decoration: none;
|
||||
color: blue;
|
||||
}
|
||||
.nav-link a:visited
|
||||
{
|
||||
color: blue;
|
||||
cursor: pointer;
|
||||
}
|
||||
.nav-link a:hover
|
||||
{
|
||||
color: orangered;
|
||||
}
|
||||
.nav-link a:selected
|
||||
{
|
||||
color: orange;
|
||||
}
|
||||
|
||||
main {
|
||||
margin: 5%;
|
||||
}
|
||||
body {
|
||||
background-color: #222;
|
||||
color: white;
|
||||
}
|
||||
@media only screen and (max-width: 1280px) {
|
||||
.jesus {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
max-width: 50vw;
|
||||
max-height: 40vh;
|
||||
z-index: -5;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width: 1280px) {
|
||||
.jesus
|
||||
{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
max-width: 100vw;
|
||||
max-height: 100vh;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
.website_table th,td
|
||||
{
|
||||
border: 1px solid;
|
||||
}
|
||||
a {
|
||||
color: lime;
|
||||
}
|
||||
a:visited {
|
||||
color: lightseagreen;
|
||||
|
||||
}
|
||||
a:hover {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media print {
|
||||
.nav-bar h1
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
.nav-bar {
|
||||
|
||||
display: none;
|
||||
}
|
||||
.nav-bar ul
|
||||
{
|
||||
display: flex;
|
||||
list-style-type: none;
|
||||
flex-wrap: wrap;
|
||||
align-content: center;
|
||||
}
|
||||
.nav-link
|
||||
{
|
||||
font-size: 1.25rem;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.nav-link a
|
||||
{
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.nav-link a:visited
|
||||
{
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
.nav-link a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.nav-link a:selected
|
||||
{
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
|
||||
}
|
||||
|
||||
main {
|
||||
margin: 5%;
|
||||
}
|
||||
body {
|
||||
background-color: #FFF;
|
||||
color: #000;
|
||||
}
|
||||
.website_table th,td
|
||||
{
|
||||
border: 1px solid;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
a:visited {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
* {
|
||||
background-color: #FFF;
|
||||
color: #000;
|
||||
}
|
||||
.nav-bar-print
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
BIN
res/favicon.ico
Normal file
BIN
res/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
4
res/img/favicon.svg
Normal file
4
res/img/favicon.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' aria-hidden='true' role='img' class='iconify iconify--logos' width="100" height="100">
|
||||
<polygon points="50,0,100,25,100,75,50,100,0,75,0,25" style="fill:orange;stroke:black;stroke-width:3" />
|
||||
<polygon points="45,20,55,20,55,35,80,35,80,45,55,45,55,85,45,85,45,45,20,45,20,35,45,35" style="fill:white;stroke:black;stroke-width:3"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 428 B |
51
res/img/jesus.svg
Executable file
51
res/img/jesus.svg
Executable file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com">
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 32.117 486.254 C 32.117 486.254 25.232 489.185 24.818 489.361 C 16.91 492.727 11.227 498.326 2.92 501.272 C 8.703 498.537 24.088 492.624 24.088 487.29"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 10.949 503.344 C 22.333 501.729 32.037 500.153 42.336 496.094 C 45.685 494.773 50.365 495.009 50.365 491.95"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 14.599 498.165 C 23.529 492.981 29.332 482.111 41.606 482.111"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 21.898 500.754 C 28.105 497.231 35.861 489.879 43.796 489.879"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 19.708 497.648 C 31.97 492.111 45.618 489.43 58.394 484.7 C 59.844 484.164 69.343 478.486 69.343 478.486"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 43.796 503.344 C 48.333 499.052 59.013 489.918 64.964 487.808"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 61.314 504.38 C 65.322 500.114 71.208 497.216 75.182 492.986 C 77.171 490.87 78.697 486.35 81.022 484.7 C 81.899 484.078 80.467 486.419 80.292 487.29 C 80.287 487.316 79.779 492.622 79.562 492.468 C 77.298 490.863 76.642 486.848 76.642 484.7"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 51.095 499.719 C 55.886 499.719 67.883 493.504 67.883 493.504"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 77.372 499.719 C 91.336 496.417 94.106 496.65 104.38 489.361"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 93.431 501.79 C 92.268 500.14 85.7 489.361 87.591 489.361"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 111.679 502.308 C 115.18 499.824 121.995 495.886 123.358 492.986 C 123.434 492.823 127.007 490.915 127.007 490.915"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 124.088 503.344 C 125.972 497.551 128.181 494.387 132.117 489.361 C 133.281 487.875 135.036 484.7 135.036 484.7"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 141.606 500.754 C 141.183 495.958 138.847 484.472 142.336 479.522"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 180.292 501.272 C 184.219 495.699 181.133 488.169 184.672 483.147 C 186.516 480.53 188.321 476.852 188.321 473.825"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 98.54 502.308 C 106.725 497.953 112.379 492.226 119.708 488.326 C 122.582 486.796 121.225 481.593 124.818 481.593 C 126.707 481.593 129.197 480.659 129.197 479.522"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 200 501.272 C 197.116 495.135 193.431 485.227 193.431 479.004"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 216.058 496.094 C 212.53 489.835 207.513 485.49 205.109 479.522 C 204.915 479.04 203.65 473.307 203.65 473.307"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 232.117 496.612 C 225.389 490.247 225.547 477.433 225.547 470.2"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 248.905 496.612 C 250.857 487.842 254.745 475.219 254.745 466.575"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 240.146 498.683 C 240.146 493.967 240.531 498.221 238.686 492.986 C 237.143 488.607 235.036 483.531 235.036 479.004 C 235.036 478.108 235.766 473.307 235.766 473.307"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 221.898 499.719 C 221.898 495.101 222.709 487.405 219.708 483.147 C 219.465 482.802 217.518 478.486 217.518 478.486"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 262.774 499.201 C 262.774 487.496 265.693 476.031 265.693 463.985"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 278.102 499.719 C 278.102 489.668 275.182 479.688 275.182 469.682"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 296.35 498.165 C 296.35 494.751 297.073 490.387 294.891 487.29 C 292.067 483.283 286.131 478.492 286.131 473.825"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 310.219 497.648 C 307.528 487.464 311.254 485.17 313.869 475.897 C 314.519 473.59 311.679 471.692 311.679 470.718"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 329.927 499.201 C 326.39 491.673 323.358 475.631 323.358 468.129"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 346.715 500.754 C 344.117 495.224 347.606 482.225 341.606 477.968 C 338.712 475.915 334.307 471.859 334.307 468.129"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 367.883 503.862 C 365.111 490.094 357.917 476.435 351.825 463.467"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 377.372 503.862 C 376.168 500.443 375.657 496.924 374.453 493.504 C 373.593 491.066 372.275 488.712 371.533 486.254 C 369.581 479.793 366.423 471.667 366.423 465.021 C 366.423 464.158 366.423 463.295 366.423 462.431 C 366.423 453.031 363.504 461.101 363.504 464.503"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 403.65 503.862 C 403.65 497.941 401.944 488.838 399.27 483.147 C 396.262 476.745 388.321 470.538 388.321 463.467"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 388.321 498.683 C 386.983 494.884 379.562 488.862 379.562 485.736 C 379.562 478.735 375.182 471.552 375.182 464.503"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 418.248 502.826 C 415.255 490.085 410.989 476.989 402.92 465.539"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 428.467 499.201 C 424.521 492.202 422.424 483.461 420.438 476.415 C 419.724 473.882 420.018 467.831 417.518 466.057"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 446.715 500.754 C 445.037 497.777 444.219 493.587 442.336 490.915 C 437.39 483.897 428.467 477.518 428.467 468.647"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 458.394 500.237 C 456.223 489.455 452.087 477.304 445.255 467.611"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 472.993 500.754 C 470.031 490.249 463.504 478.67 463.504 468.647"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 486.861 501.79 C 484.271 496.276 484.985 490.029 482.482 484.7 C 480.97 481.483 475.182 474.829 475.182 471.753"/>
|
||||
<path style="fill: rgb(216, 216, 216); stroke: rgb(62, 207, 0);" d="M 493.431 502.826 C 490.766 493.374 490.739 484.506 484.672 475.897"/>
|
||||
<rect x="218.248" y="332.117" width="45.255" height="131.387" style="fill: rgb(216, 216, 216); stroke: rgb(0, 0, 0);"/>
|
||||
<rect x="177.372" y="299.27" width="134.306" height="33.577" style="fill: rgb(216, 216, 216); stroke: rgb(0, 0, 0);"/>
|
||||
<rect x="218.978" y="264.963" width="43.796" height="35.036" style="fill: rgb(216, 216, 216); stroke: rgb(0, 0, 0);"/>
|
||||
<text style="fill: rgb(255, 255, 255); font-family: Arial, sans-serif; font-size: 20.4px; white-space: pre;" x="150.365" y="413.139">I wan</text>
|
||||
<text style="white-space: pre; fill: rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 20.4px;" x="70.073" y="368.613"> </text>
|
||||
<text style="fill: rgb(255, 255, 255); font-family: Arial, sans-serif; font-size: 20.4px; white-space: pre;" x="284.671" y="410.949">you to be saved</text>
|
||||
<text style="fill: rgb(255, 255, 255); font-family: Arial, sans-serif; font-size: 20.4px; white-space: pre;" transform="matrix(1, 0, 0, 1, -8.759124, -2.919708)"><tspan x="71.533" y="149.635">I accept you Jesus as my Lord and saviour</tspan><tspan x="71.533" dy="1em"></tspan></text>
|
||||
<text style="fill: rgb(255, 255, 255); font-family: Arial, sans-serif; font-size: 20.4px; white-space: pre;" x="135.037" y="194.891">Thank God we have Jesus</text>
|
||||
<path d="M 5210.82 2647.674 L 5657.825 3261.94 L 4763.815 3261.94 L 5210.82 2647.674 Z" style="stroke: rgba(255, 247, 85, 0.68); fill: rgba(255, 247, 85, 0.4);" transform="matrix(0.880402, 0.474229, -0.509191, 0.861569, -2788.246094, -4697.931641)" bx:shape="triangle 4763.815 2647.674 894.01 614.266 0.5 0 1@fe70595c"/>
|
||||
<ellipse style="paint-order: fill; stroke: rgb(196, 255, 0); fill: rgb(251, 216, 129);" cx="415.328" cy="71.898" rx="71.533" ry="47.08"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
33
src/components/shell.tcross
Normal file
33
src/components/shell.tcross
Normal file
@@ -0,0 +1,33 @@
|
||||
func Components.Shell(title,body)
|
||||
{
|
||||
return <!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/css/styles-new.css">
|
||||
<title>Tesses - {title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2 class="nav-bar-print">(Tesses) {"https://tesses.net/"}</h2>
|
||||
<nav class="nav-bar">
|
||||
<div id="branding">
|
||||
<img src="/img/favicon.svg" width="32" height="32" alt="LOGO">
|
||||
<h1>Tesses</h1>
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
|
||||
<li class="nav-link"><a href="/">Home</a></li>
|
||||
<li class="nav-link"><a href="/othersites">My Other Sites</a></li>
|
||||
<li class="nav-link"><a href="/apps">Apps</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main class=".content">
|
||||
<raw(body)>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
;
|
||||
}
|
||||
15
src/pages/cross-image.tcross
Normal file
15
src/pages/cross-image.tcross
Normal file
@@ -0,0 +1,15 @@
|
||||
func Pages.CrossImage()
|
||||
{
|
||||
|
||||
const html = <null>
|
||||
<h1>This is the cross image</h1>
|
||||
|
||||
<img src="/img/jesus.svg" alt="the-cross">
|
||||
|
||||
<hr>
|
||||
<span>License: <a href="https://creativecommons.org/licenses/by/4.0/deed.en">CC BY 4.0</a></span>
|
||||
|
||||
</null>;
|
||||
|
||||
return Components.Shell("Cross Image", html);
|
||||
}
|
||||
50
src/pages/index.tcross
Normal file
50
src/pages/index.tcross
Normal file
@@ -0,0 +1,50 @@
|
||||
func Pages.Index()
|
||||
{
|
||||
const html = <null>
|
||||
<h1>Home</h1>
|
||||
<br>
|
||||
<p>
|
||||
<h1>GOOGLE WILL STOP ALLOWING SIDELOADING IN ANDROID, WHERE YOU WILL NEED TO FOLLOW GOOGLE PLAY TOS, PAY THEM, PROVIDE YOUR ID AS A DEVELOPER IF YOU MAKE APPS (EVEN FOR APPS OFF PLAY STORE), PLEASE STOP THIS VIEW <a href="https://keepandroidopen.org/">{"https://keepandroidopen.org/"}</a> for more info</h1>
|
||||
Hello my name is Mike Nolan, and this is my <a href="//namecheap.com">Namecheap</a> self hosted website.
|
||||
<br>
|
||||
And yes if you were wondering, I do this for fun.
|
||||
<br>
|
||||
This website is brought to you by <a href="https://crosslang.tesseslanguage.com/">CrossLang</a> my own dynamicly typed programming language
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li><a href="https://holy.site.tesses.net/chapter?bible=Old%20Testament&book=Genesis&chapter=1#verse-26">Genesis 1:26</a></li>
|
||||
<li>PRAY FOR TRUMP (the devil tried to assassinate him)</li>
|
||||
<li>Section 12.01 is evil, <a href="https://www.ifixit.com/News/54317/section-1201-exemptions-for-2021-repair-consoles-medical-devices">here{"'"}s</a> some hope<br><a href="https://youtu.be/2rQ62s87jvw">Louis Rossmans Video</a> <a href="https://tytdarchive.site.tesses.net/watch?v=2rQ62s87jvw">(Archived)</a></li>
|
||||
<li>Lets Go Brandon</li>
|
||||
<li>There ARE only TWO genders (<a href="https://holy.site.tesses.net/chapter?bible=Old%20Testament&book=Genesis&chapter=5#verse-2">Genesis 5:2</a>)</li>
|
||||
<li>The 2020 Election was Stolen <a href="https://odysee.com/@RealNewsforever:a/2000-Mules_-How-The-2020-Election-Was-Stolen:2">Proof 01</a></li>
|
||||
<li>Don{"'"}t Get Vaxed <a href="https://odysee.com/@ProgressiveTruthSeekers:3/The-Vaccine-Injured-Afraid-and-Silenced:9">Watch this</a>, fight for <a href="http://www.votervoice.net/Shares/B3yKJBiYBC6HhA5dfUh7FBA">vaccine choice</a></li>
|
||||
<li>WEF is Evil</li>
|
||||
<li>General Milly Is A Male (and a Piece of shit, pardon my french)</li>
|
||||
<li>Stop Getting Abortions (<a href="https://youtu.be/ngrzBrpI4rw?t=1773">Video</a>)</li>
|
||||
<li>Become Straight, God will forgive you for your sins if you accept Jesus as your LORD and saviour</li>
|
||||
<li>Get Married, stop having sex before Marrage</li>
|
||||
<li>Download <a href="https://crosslang.tesseslanguage.com/software/webapps/tytd2025/">YouTube Videos</a> or whatever you can archive, my archive is right <a href="https://tytdarchive.site.tesses.net/">here</a></li>
|
||||
<li>Stop trafficking kids</li>
|
||||
<li>Don{"'"}t please the world, please God</li>
|
||||
<li>God Made MAN in his own IMAGE, animals and humans are seperate. He also told us to have dominion over the animals (Read Genesis 1-11)</li>
|
||||
<li>Get <a href="https://holy.site.tesses.net/chapter?bible=New%20Testament&book=John&chapter=3#verse-16">SAVED! --></a></li>
|
||||
<li>AND BACKUP YOUR DATA, IF YOU CAN AFFORD TO (I MEAN FINANCIALLY NOT TIME WISE, EVEN IF IT IS A SMALL DRIVE YOU COULD STILL RESTORE FROM BACKUPS) (IT SAVED THIS WEBSITE, I HAD TO RESTORE FROM BACKUP DUE TO SHRINKING PARTITION AND THAT GOING WRONG, SO PLEASE DON{"'"}T USE COMMAND {"'"}lvm lvreduce -L -200G pve/vm-100-disk-0{"'"})</li>
|
||||
<li>Thanks to the people who would hound you to ensure to setup backups and my 20TB HDD for storing that backup and also God because I didn{"'"}t flip out when this happened, if this was before I would of broke everything out of rage)</li>
|
||||
<li>And probably get a home server (so you don{"'"}t get tracked for cloud files and its just awesome to have)</li>
|
||||
<li>That cross image has been removed due to it covering the text too much but it is still available <a href="/cross-image">here</a></li>
|
||||
<li>Try programming, its fun and it maybe easier than you think</li>
|
||||
<li><a href="https://www.defectivebydesign.org/">DRM is EVIL</a></li>
|
||||
<li>{"And best of all this website's backend is now writen in "}<a href="https://crosslang.tesseslanguage.com">CrossLang</a> (my own language)</li>
|
||||
<li>This website gets updated when code is pushed thanks to <a href="https://onedev.io/">Onedev</a> and <a href="https://coolify.io/">Coolfiy</a></li>
|
||||
<li>The source code is <a href="https://onedev.site.tesses.net/mywebsites">here</a> on my Onedev</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
|
||||
</null>;
|
||||
return Components.Shell("Home",html);
|
||||
}
|
||||
48
src/pages/myapps.tcross
Normal file
48
src/pages/myapps.tcross
Normal file
@@ -0,0 +1,48 @@
|
||||
const myApps = [
|
||||
{
|
||||
name = "CrossLang",
|
||||
url = "https://crosslang.tesseslanguage.com/",
|
||||
description = "A programming language I am working on (This website's backend is writen in it now)"
|
||||
},
|
||||
{
|
||||
name = "TimelapseNow",
|
||||
url = "https://timelapse.tesses.net/",
|
||||
description = "Record in steps"
|
||||
},
|
||||
{
|
||||
name = "TYTD2025",
|
||||
url = "https://crosslang.tesseslanguage.com/software/webapps/tytd2025/",
|
||||
description = "My YouTube downloader writen in CrossLang"
|
||||
},
|
||||
{
|
||||
name = "TessesFramework",
|
||||
url = "https://onedev.site.tesses.net/tesses-framework",
|
||||
description = "A library to make C++ more bearable for me (also used for CrossLang's VM)",
|
||||
}
|
||||
];
|
||||
|
||||
func Pages.MyApps()
|
||||
{
|
||||
const html = <null>
|
||||
<h1>My software</h1>
|
||||
|
||||
<table class="website_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>App</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<each(var item : myApps)>
|
||||
<tr>
|
||||
<td><a href={item.url}>{item.name}</a></td>
|
||||
<td>{item.description}</td>
|
||||
</tr>
|
||||
</each>
|
||||
</tbody>
|
||||
</table>
|
||||
</null>;
|
||||
|
||||
return Components.Shell("My Other Sites",html);
|
||||
}
|
||||
56
src/pages/othersites.tcross
Normal file
56
src/pages/othersites.tcross
Normal file
@@ -0,0 +1,56 @@
|
||||
const otherSites = [
|
||||
{
|
||||
domain = "tesseslanguage.com",
|
||||
description = "My programming language(s)"
|
||||
},
|
||||
{
|
||||
domain = "peertube.site.tesses.net",
|
||||
description = "My peertube instance"
|
||||
},
|
||||
{
|
||||
domain = "tessesstudios.com",
|
||||
description = "My media studio website, as of Dec 27, 2023 it is a mailing list (the actual website for tessesstudios.com is not done, I need to finish coding it)"
|
||||
},
|
||||
{
|
||||
domain = "onedev.site.tesses.net",
|
||||
description = "Where my code resides at the moment"
|
||||
},
|
||||
{
|
||||
domain = "gitea.site.tesses.net",
|
||||
description = "My old code"
|
||||
},
|
||||
{
|
||||
domain = "billwolfenheimer.com",
|
||||
description="A fictionary site of the bad guy for a potential movie that I will hopefully create"
|
||||
},
|
||||
{
|
||||
domain = "tesses4you.myfreesites.net",
|
||||
description="My first site"
|
||||
}
|
||||
];
|
||||
|
||||
func Pages.OtherSites()
|
||||
{
|
||||
const html = <null>
|
||||
<h1>My Other Websites</h1>
|
||||
|
||||
<table class="website_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Url</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<each(var item : otherSites)>
|
||||
<tr>
|
||||
<td><a href={$"https://{item.domain}/"}>{item.domain}</a></td>
|
||||
<td>{item.description}</td>
|
||||
</tr>
|
||||
</each>
|
||||
</tbody>
|
||||
</table>
|
||||
</null>;
|
||||
|
||||
return Components.Shell("My Other Sites",html);
|
||||
}
|
||||
41
src/program.tcross
Normal file
41
src/program.tcross
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
var pages = {
|
||||
.["/"] = SendText("text/html",(ctx)=>Pages.Index()),
|
||||
.["/cross-image"] = SendText("text/html",(ctx)=>Pages.CrossImage()),
|
||||
.["/apps"] = SendText("text/html",(ctx)=>Pages.MyApps()),
|
||||
.["/othersites"] = SendText("text/html",(ctx)=>Pages.OtherSites()),
|
||||
.["/css/styles-new.css"] = SendBytes("styles-new.css",embed("css/styles-new.css")),
|
||||
.["/img/favicon.svg"] = SendBytes("favicon.svg",embed("img/favicon.svg")),
|
||||
.["/img/jesus.svg"] = SendBytes("jesus.svg",embed("img/jesus.svg")),
|
||||
.["/robots.txt"] = SendText("text/plain",(ctx)=>"User-Agent: *\r\nAllow: /\r\n"),
|
||||
.["/favicon.ico"] = SendBytes("favicon.ico",embed("favicon.ico"))
|
||||
};
|
||||
func SendBytes(filename,data)
|
||||
{
|
||||
return (ctx)=>{
|
||||
ctx.WithMimeType(Net.Http.MimeType(filename)).SendBytes(data);
|
||||
};
|
||||
}
|
||||
|
||||
func SendText(mimeType,cb)
|
||||
{
|
||||
return (ctx)=>{
|
||||
|
||||
const text = cb(ctx);
|
||||
ctx.WithMimeType(mimeType).SendText(text);
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
func main(args)
|
||||
{
|
||||
Net.Http.ListenSimpleWithLoop((ctx)=>{
|
||||
if(pages.[ctx.Path](ctx) ?? false)
|
||||
return true;
|
||||
else {
|
||||
ctx.StatusCode = 404;
|
||||
ctx.WithMimeType("text/html").SendText(Components.Shell($"File {ctx.Path} Not Found",<h1>:( Page {ctx.Path} not found</h1>));
|
||||
return true;
|
||||
}
|
||||
},4206);
|
||||
}
|
||||
Reference in New Issue
Block a user