init
This commit is contained in:
commit
d4df1e6af3
26
.woodpecker.yml
Normal file
26
.woodpecker.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
branches: main
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
woodpecker-ci:
|
||||||
|
image: woodpeckerci/plugin-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
secrets: [repository_username, repository_password]
|
||||||
|
settings:
|
||||||
|
dockerfile: Containerfile
|
||||||
|
platforms: linux/amd64,linux/arm64/v8
|
||||||
|
registry: git.shrug.pw
|
||||||
|
repo: git.shrug.pw/neil/bellriots.today
|
||||||
|
tags: latest
|
||||||
|
pull_image: true
|
||||||
|
mtu: 1480
|
||||||
|
username:
|
||||||
|
from_secret: registry_username
|
||||||
|
password:
|
||||||
|
from_secret: registry_password
|
||||||
|
logins:
|
||||||
|
- registry: git.shrug.pw
|
||||||
|
username:
|
||||||
|
from_secret: registry_username
|
||||||
|
password:
|
||||||
|
from_secret: registry_password
|
6
Containerfile
Normal file
6
Containerfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FROM docker.io/library/caddy:2
|
||||||
|
|
||||||
|
COPY Caddyfile /etc/caddy/Caddyfile
|
||||||
|
COPY index.html /srv/
|
||||||
|
COPY script.js /srv/
|
||||||
|
COPY styles.css /srv/
|
15
index.html
Normal file
15
index.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="styles.css">
|
||||||
|
<title>Bell Riots - bellriots.today</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<section>
|
||||||
|
<div id="countdown"></div>
|
||||||
|
</section>
|
||||||
|
<script src="script.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
64
nginx.yml
Normal file
64
nginx.yml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: caddy
|
||||||
|
namespace: bellriots
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: caddy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: caddy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: caddy
|
||||||
|
image: git.shrug.pw/neil/bellriots.today
|
||||||
|
ports:
|
||||||
|
- name: tcp
|
||||||
|
containerPort: 8080
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: caddy
|
||||||
|
namespace: bellriots
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
app: caddy
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
nginx.ingress.kubernetes.io/client-max-body-size: 20m
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: 20m
|
||||||
|
name: caddy
|
||||||
|
namespace: bellriots
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: bellriots.today
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: caddy
|
||||||
|
port:
|
||||||
|
number: 8080
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- bellriots.today
|
||||||
|
secretName: default-cert
|
18
script.js
Normal file
18
script.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Set the date of the fictional Bell Riots (updated to August 30, 2024)
|
||||||
|
const bellRiotsDate = new Date('2024-08-30T17:00:00Z').getTime();
|
||||||
|
|
||||||
|
// Update the countdown every second
|
||||||
|
const countdownElement = document.getElementById('countdown');
|
||||||
|
setInterval(function() {
|
||||||
|
const now = new Date().getTime();
|
||||||
|
const distance = bellRiotsDate - now;
|
||||||
|
|
||||||
|
const days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
||||||
|
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
const seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
||||||
|
|
||||||
|
countdownElement.innerHTML = `${days}d ${hours}h ${minutes}m ${seconds}s`;
|
||||||
|
}, 1000);
|
||||||
|
});
|
20
styles.css
Normal file
20
styles.css
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
body {
|
||||||
|
background-color: #222222;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
section {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
div#countdown {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 3rem;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 1.5rem;
|
||||||
|
border: 1px solid white;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user