config: sync docker configs 2026-06-08T03:59:55Z
This commit is contained in:
parent
9b4d283e23
commit
38af27c7cb
199 changed files with 10640 additions and 92 deletions
56
apps/authentik/docker-compose.myl
Normal file
56
apps/authentik/docker-compose.myl
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
services:
|
||||
postgresql:
|
||||
image: postgres:16-alpine
|
||||
container_name: authentik-postgres
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${PG_PASS}
|
||||
POSTGRES_USER: authentik
|
||||
POSTGRES_DB: authentik
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
container_name: authentik-redis
|
||||
restart: unless-stopped
|
||||
|
||||
authentik:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
container_name: authentik
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
environment:
|
||||
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
|
||||
AUTHENTIK_REDIS__HOST: redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: authentik
|
||||
AUTHENTIK_POSTGRESQL__NAME: authentik
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
volumes:
|
||||
- ./media:/media
|
||||
- ./custom-templates:/templates
|
||||
ports:
|
||||
- "9001:9000"
|
||||
depends_on:
|
||||
- postgresql
|
||||
- redis
|
||||
|
||||
authentik-worker:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
container_name: authentik-worker
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
environment:
|
||||
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
|
||||
AUTHENTIK_REDIS__HOST: redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: authentik
|
||||
AUTHENTIK_POSTGRESQL__NAME: authentik
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
volumes:
|
||||
- ./media:/media
|
||||
- ./custom-templates:/templates
|
||||
depends_on:
|
||||
- postgresql
|
||||
- redis
|
||||
57
apps/authentik/docker-compose.yml
Normal file
57
apps/authentik/docker-compose.yml
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
services:
|
||||
postgresql:
|
||||
image: postgres:16-alpine
|
||||
container_name: authentik-postgres
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${PG_PASS}
|
||||
POSTGRES_USER: authentik
|
||||
POSTGRES_DB: authentik
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
container_name: authentik-redis
|
||||
restart: unless-stopped
|
||||
|
||||
authentik:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
container_name: authentik
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
environment:
|
||||
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
|
||||
AUTHENTIK_REDIS__HOST: redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: authentik
|
||||
AUTHENTIK_POSTGRESQL__NAME: authentik
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
volumes:
|
||||
- ./media:/media
|
||||
- ./custom-templates:/templates
|
||||
ports:
|
||||
- "9001:9000"
|
||||
depends_on:
|
||||
- postgresql
|
||||
- redis
|
||||
|
||||
authentik-worker:
|
||||
image: ghcr.io/goauthentik/server:latest
|
||||
container_name: authentik-worker
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
environment:
|
||||
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
|
||||
AUTHENTIK_REDIS__HOST: redis
|
||||
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||
AUTHENTIK_POSTGRESQL__USER: authentik
|
||||
AUTHENTIK_POSTGRESQL__NAME: authentik
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
|
||||
volumes:
|
||||
- ./media:/media
|
||||
- ./custom-templates:/templates
|
||||
depends_on:
|
||||
- postgresql
|
||||
- redis
|
||||
|
||||
2
apps/bookstack/bookstack/.migrations
Normal file
2
apps/bookstack/bookstack/.migrations
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
01-nginx-site-confs-default
|
||||
02-default-location
|
||||
23
apps/bookstack/bookstack/keys/cert.crt
Normal file
23
apps/bookstack/bookstack/keys/cert.crt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDxzCCAq+gAwIBAgIUVt05s9wgylfcEPx3fQDn2e4dF3owDQYJKoZIhvcNAQEL
|
||||
BQAwaDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhDYXJsc2Jh
|
||||
ZDEXMBUGA1UECgwOTGludXhzZXJ2ZXIuaW8xFDASBgNVBAsMC0xTSU8gU2VydmVy
|
||||
MQowCAYDVQQDDAEqMB4XDTI2MDYwNTAwNDczMloXDTM2MDYwMjAwNDczMlowaDEL
|
||||
MAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhDYXJsc2JhZDEXMBUG
|
||||
A1UECgwOTGludXhzZXJ2ZXIuaW8xFDASBgNVBAsMC0xTSU8gU2VydmVyMQowCAYD
|
||||
VQQDDAEqMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAooBdmf0Nmewk
|
||||
YIreTSqKgHJpj+C5uiYflmiQ7TBNrMCyeg7VrkDKlAIbrMsWDbdxbJ3gIWX/+WL9
|
||||
iFG3SVwLwj3OLAdaPhLU8vodrjMkxkNFHk7CFNG53sEOU1WOskdwK3xtWUx3F6CD
|
||||
tBJwWyIepdsiXiFoug6kgKZ7r7Koraqp7fW36iNztvW+V2DakF6F4ufSduzq1zTZ
|
||||
mp+woGVPUVcI2UPoOuKLQqIt93GmHbmFqw1AKKZkbaoTxJHVnz56YfjmMn/ls+8s
|
||||
ovLX8wR9zSp+ExwitrbD//zyWYt7GWmDZIuSB0pqb/ofXDSijiDiobM5UJ6bygv1
|
||||
BAXXbyg0pwIDAQABo2kwZzAdBgNVHQ4EFgQUSWIeem3I7aV7kjCN9t2xKz9ayBEw
|
||||
HwYDVR0jBBgwFoAUSWIeem3I7aV7kjCN9t2xKz9ayBEwDwYDVR0TAQH/BAUwAwEB
|
||||
/zAUBgNVHREEDTALgglsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAIsbdBRB
|
||||
sENi2gz8zRqL9oEwiZ6n02mvd/uYh0ReBxp5AAkRJ0v1vqhMtCi26lHA2FoUdUFS
|
||||
aOKitgpXZn3oP5SqBVfxsE9WUTBP544H3lsUKnsQl06dBpKQCmXrnVedM6ktb33P
|
||||
EpppqudyS+y+mNVLi9lM4bMqGxQRdze2y4p9+qNYHREczkPgMlEgujOKcd533YJ/
|
||||
EbrwKgvYBWQeR0Rl0YnGS3j/mFXYYfsg4jpxHezX5tZRWT7FTtV8GpcchR97qvZH
|
||||
Ax/cOIYmWF0KIkiW8qTmiMowwm2pEQLxOOxaLwPsICk6jf9kvPeHdu1+aMfvuZhc
|
||||
MbvugyYpqDKGRCg=
|
||||
-----END CERTIFICATE-----
|
||||
28
apps/bookstack/bookstack/keys/cert.key
Normal file
28
apps/bookstack/bookstack/keys/cert.key
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCigF2Z/Q2Z7CRg
|
||||
it5NKoqAcmmP4Lm6Jh+WaJDtME2swLJ6DtWuQMqUAhusyxYNt3FsneAhZf/5Yv2I
|
||||
UbdJXAvCPc4sB1o+EtTy+h2uMyTGQ0UeTsIU0bnewQ5TVY6yR3ArfG1ZTHcXoIO0
|
||||
EnBbIh6l2yJeIWi6DqSApnuvsqitqqnt9bfqI3O29b5XYNqQXoXi59J27OrXNNma
|
||||
n7CgZU9RVwjZQ+g64otCoi33caYduYWrDUAopmRtqhPEkdWfPnph+OYyf+Wz7yyi
|
||||
8tfzBH3NKn4THCK2tsP//PJZi3sZaYNki5IHSmpv+h9cNKKOIOKhszlQnpvKC/UE
|
||||
BddvKDSnAgMBAAECggEAFP1Bmc8+v3/p3vJw7kStaRPeILBlLO8Zq2LMPWa80bB+
|
||||
HRfnb798qwtuqa39pj3oj6AAwC+dlYe8uavcYcRa3HcBN1ynwlbKXKwDw2lluZoc
|
||||
xmJj3S6NtID5KbhmWw6xJVzH/v3KcCnSeSLckljg3olkcgYcsdOMWfWnCjWoZe3t
|
||||
jZqwhHKn7tLUKvkcbsILGp5iM0Ff5fJeqfnCMOOAgpFpGdsLT0Ro3Hl3RGOGx29z
|
||||
TBey3I2pKyaK4sC+Z444lmvPlSNA/+hXmn0CxncG1d6KqPSdVd4+rK3ubJLDM0l0
|
||||
wzbzUFeCBWdWORpgJ5JirGD4Z24pU8g2zO75Rx3fiQKBgQDWa4Y0rheR3CPTE/g9
|
||||
p8lT8RRGBxge50ldbw7au3+zt89AKVbZ0+PnllWgjgL/qx4bWvOJp9q9WUODhjVO
|
||||
Qd+B3vlWtlLzBcs53KbVf49E6Ag4g3KvcJ4R7dHLlBNkvcqBwnHyR8WuBDNTWbr2
|
||||
Yy6r5P6SXIB27W6ex1KyfCslKwKBgQDCA3D9ppWX9Wj6miJ/0cvJUSKL7wMu+Hhl
|
||||
JTt8sL0KfuOzLU4/5jtkWXSxCqEWzGteWc7s5rIi/NILBJRxGPG7T/e6R3+n+iiu
|
||||
T7qgoihl5gecw7sK3PzEAcJMd9TwCiD8Wcy7gGiRz/0Ajqju6fB7i5KqoYodqnTq
|
||||
a1cM7ySodQKBgQC7e9klRvQk/a/1aIiuoH9RfoKTmLBmlSV5JRp/92J56ka1e3AN
|
||||
l1C3tqO4d3P3yc/Ra3125+ZDmkGGR1tkygR8slKil1mAVZiVR3I5TAgh4CEQCR/G
|
||||
d1o/owrGTvuGIs1nGHY5urgGqHWYc+Ueeyrb8qcFowxQ8NrAythsaFXxcQKBgQC/
|
||||
qPKoQTaqxW8NkdLe/nwYxqQgJN+6OQ+Gq/9WMKqvgaajTPBuQ50Mhyq18tAsW4j9
|
||||
zi6S7VuxIJzG8aFLEN9MsbUCOrurT398o5q0MT1DXLjMbreKBcFWSH6PWBntf7QS
|
||||
VwvfdvzWfudq84ODcWt2QO2EzsxIfim9ooh+aIiIOQKBgErUJXO3Z6YqxpHjZka9
|
||||
0zXRZaUHBTTTQTy014VUT69bKKgwYvaecKZlzgzlzj4wEAZuNmgWQfinGEfUezu8
|
||||
VwL+a0BsWnQDMAK96FWGFfui55DmXp8Wo+pzIrSR7O0+GPnSr6B6RPjwEuFKziWX
|
||||
v4HTdlayWFSvB+uArMUKowFP
|
||||
-----END PRIVATE KEY-----
|
||||
3
apps/bookstack/bookstack/nginx/resolver.conf
Normal file
3
apps/bookstack/bookstack/nginx/resolver.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# This file is auto-generated only on first start, based on the container's /etc/resolv.conf file. Feel free to modify it as you wish.
|
||||
|
||||
resolver 127.0.0.11 valid=30s;
|
||||
46
apps/bookstack/bookstack/nginx/site-confs/default.conf
Normal file
46
apps/bookstack/bookstack/nginx/site-confs/default.conf
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
## Version 2025/12/26 - Changelog: https://github.com/linuxserver/docker-baseimage-alpine-nginx/commits/3.23/root/defaults/nginx/site-confs/default.conf.sample
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
listen 443 ssl default_server;
|
||||
listen [::]:443 ssl default_server;
|
||||
listen 443 quic reuseport default_server;
|
||||
listen [::]:443 quic reuseport default_server;
|
||||
|
||||
server_name _;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
set $root /app/www/public;
|
||||
if (!-d /app/www/public) {
|
||||
set $root /config/www;
|
||||
}
|
||||
root $root;
|
||||
index index.html index.htm index.php;
|
||||
|
||||
location / {
|
||||
# enable for basic auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
try_files $uri $uri/ /index.html /index.htm /index.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ ^(.+\.php)(.*)$ {
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
if (!-f $document_root$fastcgi_script_name) { return 404; }
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_index index.php;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
}
|
||||
|
||||
# deny access to .htaccess/.htpasswd files
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
36
apps/bookstack/bookstack/nginx/ssl.conf
Normal file
36
apps/bookstack/bookstack/nginx/ssl.conf
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
## Version 2026/05/04 - Changelog: https://github.com/linuxserver/docker-baseimage-alpine-nginx/commits/3.23/root/defaults/nginx/ssl.conf.sample
|
||||
|
||||
ssl_certificate /config/keys/cert.crt;
|
||||
ssl_certificate_key /config/keys/cert.key;
|
||||
|
||||
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||
#add_header Strict-Transport-Security "max-age=63072000" always;
|
||||
|
||||
### Mozilla SSL Configuration Generator
|
||||
# generated 2026-05-04, Mozilla Guideline v6.0, nginx 1.28.3, OpenSSL 3.5.6, intermediate config, HSTS
|
||||
# https://ssl-config.mozilla.org/#server=nginx&version=1.28.3&config=intermediate&openssl=3.5.6&hsts&guideline=6.0
|
||||
# intermediate configuration
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1:secp384r1;
|
||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
|
||||
ssl_prefer_server_ciphers off;
|
||||
|
||||
# see also ssl_session_ticket_key alternative to stateful session cache
|
||||
ssl_session_timeout 1d;
|
||||
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
|
||||
|
||||
### Mozilla Practical security implementation
|
||||
# https://developer.mozilla.org/en-US/docs/Web/Security
|
||||
#add_header Access-Control-Allow-Origin $http_origin always;
|
||||
#add_header Content-Security-Policy "upgrade-insecure-requests; base-uri 'self'; form-action 'self'; frame-ancestors 'self';" always;
|
||||
#add_header Cross-Origin-Resource-Policy "same-origin" always;
|
||||
#add_header Referrer-Policy "same-origin" always;
|
||||
#add_header X-Content-Type-Options "nosniff" always;
|
||||
#add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
|
||||
### Optional additional headers
|
||||
#add_header Alt-Svc 'h3=":443"' always;
|
||||
#add_header Cache-Control "no-transform" always;
|
||||
#add_header Permissions-Policy "interest-cohort=()" always;
|
||||
#add_header X-UA-Compatible "IE=Edge" always;
|
||||
#add_header X-XSS-Protection "1; mode=block" always;
|
||||
3
apps/bookstack/bookstack/nginx/worker_processes.conf
Normal file
3
apps/bookstack/bookstack/nginx/worker_processes.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# This file is auto-generated only on first start, based on the cpu cores detected. Feel free to change it to any other number or to auto to let nginx handle it automatically.
|
||||
|
||||
worker_processes 8;
|
||||
3
apps/bookstack/bookstack/php/php-local.ini
Normal file
3
apps/bookstack/bookstack/php/php-local.ini
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
; Edit this file to override php.ini directives
|
||||
|
||||
date.timezone = America/Chicago
|
||||
5
apps/bookstack/bookstack/php/www2.conf
Normal file
5
apps/bookstack/bookstack/php/www2.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
; Edit this file to override www.conf and php-fpm.conf directives and restart the container
|
||||
|
||||
; Pool name
|
||||
[www]
|
||||
|
||||
34
apps/bookstack/bookstack/www/index.html
Normal file
34
apps/bookstack/bookstack/www/index.html
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Welcome to our server</title>
|
||||
<style>
|
||||
body{
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
}
|
||||
.message{
|
||||
width:330px;
|
||||
padding:20px 40px;
|
||||
margin:0 auto;
|
||||
background-color:#f9f9f9;
|
||||
border:1px solid #ddd;
|
||||
}
|
||||
center{
|
||||
margin:40px 0;
|
||||
}
|
||||
h1{
|
||||
font-size: 18px;
|
||||
line-height: 26px;
|
||||
}
|
||||
p{
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="message">
|
||||
<h1>Welcome to our server</h1>
|
||||
<p>The website is currently being setup under this address.</p>
|
||||
<p>For help and support, please contact: <a href="me@example.com">me@example.com</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
1
apps/bookstack/db/mariadb_upgrade_info
Normal file
1
apps/bookstack/db/mariadb_upgrade_info
Normal file
|
|
@ -0,0 +1 @@
|
|||
11.8.8-MariaDB
|
||||
33
apps/bookstack/docker-compose.yml
Normal file
33
apps/bookstack/docker-compose.yml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
services:
|
||||
bookstack:
|
||||
image: lscr.io/linuxserver/bookstack:latest
|
||||
container_name: bookstack
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/Chicago
|
||||
- APP_URL=http://192.168.1.205:6875
|
||||
- DB_HOST=bookstack-db
|
||||
- DB_PORT=3306
|
||||
- DB_USERNAME=bookstack
|
||||
- DB_PASSWORD=bookstackpassword
|
||||
- DB_DATABASE=bookstackapp
|
||||
volumes:
|
||||
- ./bookstack:/config
|
||||
ports:
|
||||
- "6875:80"
|
||||
depends_on:
|
||||
- bookstack-db
|
||||
|
||||
bookstack-db:
|
||||
image: mariadb:11
|
||||
container_name: bookstack-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=supersecretrootpassword
|
||||
- MYSQL_DATABASE=bookstackapp
|
||||
- MYSQL_USER=bookstack
|
||||
- MYSQL_PASSWORD=bookstackpassword
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
15
apps/cloudflared/docker-compose.yml
Normal file
15
apps/cloudflared/docker-compose.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
services:
|
||||
cloudflared:
|
||||
image: cloudflare/cloudflared:latest
|
||||
container_name: cloudflared
|
||||
restart: unless-stopped
|
||||
command: tunnel --no-autoupdate run
|
||||
environment:
|
||||
- TUNNEL_TOKEN=eyJhIjoiZDBiYjc2NzMzMzNmY2Q3OTQ2MjI5NTZmMTY2MmY3ODUiLCJ0IjoiNWU2MGVhOGUtYTU0My00OWI2LWJhYjUtMzI1ZjM5NDQxZTAwIiwicyI6IkJyR3NreXdTSEFjQllobk9IcWFBZWJhT2djRUU0cjVSMXcwKzVGeTkrUHc9In0=
|
||||
networks:
|
||||
- default
|
||||
- kitestacks
|
||||
|
||||
networks:
|
||||
kitestacks:
|
||||
external: true
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
services:
|
||||
cloudflared:
|
||||
image: cloudflare/cloudflared:latest
|
||||
container_name: cloudflared
|
||||
restart: unless-stopped
|
||||
command: tunnel --no-autoupdate run
|
||||
environment:
|
||||
- TUNNEL_TOKEN=eyJhIjoiZDBiYjc2NzMzMzNmY2Q3OTQ2MjI5NTZmMTY2MmY3ODUiLCJ0IjoiNWU2MGVhOGUtYTU0My00OWI2LWJhYjUtMzI1ZjM5NDQxZTAwIiwicyI6Ik1ESTBPVEV5WVRNdFl6WmlOaTAwWTJNeUxUa3pPRE10T1RRME1tTmlOV1ZsTVRZNCJ9
|
||||
|
||||
12
apps/forgejo/configmap.yaml
Normal file
12
apps/forgejo/configmap.yaml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kitestacks-scripts
|
||||
namespace: monitoring
|
||||
data:
|
||||
kitestacks_check.py: |
|
||||
# Paste the full contents of your kitestacks_check.py script here
|
||||
# Example:
|
||||
# import requests
|
||||
# from datetime import datetime
|
||||
# ...
|
||||
24
apps/forgejo/cronjob.yaml
Normal file
24
apps/forgejo/cronjob.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: kitestacks-widget-check
|
||||
namespace: monitoring
|
||||
spec:
|
||||
schedule: "0 * * * *" # every hour
|
||||
concurrencyPolicy: Forbid
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: kitestacks-check
|
||||
image: python:3.12-slim
|
||||
command: ["python3", "/scripts/kitestacks_check.py"]
|
||||
volumeMounts:
|
||||
- name: scripts
|
||||
mountPath: /scripts
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: scripts
|
||||
configMap:
|
||||
name: kitestacks-scripts
|
||||
17
apps/forgejo/docker-compose.yml
Normal file
17
apps/forgejo/docker-compose.yml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
services:
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:11
|
||||
container_name: forgejo
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3006:3000"
|
||||
- "2222:22"
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- FORGEJO__server__DOMAIN=192.168.1.205
|
||||
- FORGEJO__server__ROOT_URL=http://192.168.1.205:3006
|
||||
- FORGEJO__server__SSH_DOMAIN=192.168.1.205
|
||||
- FORGEJO__server__SSH_PORT=2222
|
||||
volumes:
|
||||
- ./data:/data
|
||||
12
apps/forgejo/gitrepository.yaml
Normal file
12
apps/forgejo/gitrepository.yaml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||
kind: GitRepository
|
||||
metadata:
|
||||
name: kitestacks-cron
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1m
|
||||
url: https://gitforge.kitestacks.com/kenpat/kitestacks-homelab.git
|
||||
ref:
|
||||
branch: master
|
||||
secretRef:
|
||||
name: forgejo-access # Only needed if repo is private
|
||||
17
apps/forgejo/kitestacks_check.py
Normal file
17
apps/forgejo/kitestacks_check.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: kitestacks-widget-check
|
||||
namespace: monitoring
|
||||
spec:
|
||||
schedule: "0 * * * *" # every hour
|
||||
concurrencyPolicy: Forbid
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: kitestacks-check
|
||||
image: yourdockerhubuser/kitestacks-check:latest
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: OnFailure
|
||||
0
apps/forgejo/uptime-kuma/-n
Normal file
0
apps/forgejo/uptime-kuma/-n
Normal file
0
apps/forgejo/uptime-kuma/:31333
Normal file
0
apps/forgejo/uptime-kuma/:31333
Normal file
0
apps/forgejo/uptime-kuma/NodePort
Normal file
0
apps/forgejo/uptime-kuma/NodePort
Normal file
147
apps/forgejo/uptime-kuma/configmap.yaml
Normal file
147
apps/forgejo/uptime-kuma/configmap.yaml
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kitestacks-monitors
|
||||
namespace: monitoring
|
||||
data:
|
||||
monitors.json: [
|
||||
{
|
||||
"name": "Open Web UI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://www.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Auth",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://auth.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Kavita",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://kavita.kitestacks.com:5000",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tasks",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://tasks.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "AI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://ai.kitestacks.com:3100",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Forgejo",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://gitforge.kitestacks.com:3006",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Linkding",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://links.kitestacks.com:9005",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Grafana",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://grafana.kitestacks.com:3150",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "OpenProject",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://openproject.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"type": "tcp",
|
||||
"host": "prometheus.kitestacks.com",
|
||||
"port": 9090,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Node Exporter",
|
||||
"type": "tcp",
|
||||
"host": "node-exporter.kitestacks.com",
|
||||
"port": 9100,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Pixel 4",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.201",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.205",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14s",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.206",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Gaming Desktop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.207",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tesla Model Y",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.208",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Mom's HP Laptop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.209",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Uptime Kuma",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://status.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
}
|
||||
]
|
||||
|
||||
13
apps/forgejo/uptime-kuma/gitrepository.yaml
Normal file
13
apps/forgejo/uptime-kuma/gitrepository.yaml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||
kind: GitRepository
|
||||
metadata:
|
||||
name: uptime-kuma-repo
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1m
|
||||
url: https://gitforge.kitestacks.com/kenpat/docker
|
||||
ref:
|
||||
branch: master
|
||||
secretRef:
|
||||
name: forgejo-access
|
||||
|
||||
172
apps/forgejo/uptime-kuma/kitestacks-cron.yaml
Normal file
172
apps/forgejo/uptime-kuma/kitestacks-cron.yaml
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kitestacks-monitors
|
||||
namespace: monitoring
|
||||
data:
|
||||
monitors.json: |
|
||||
[
|
||||
{
|
||||
"name": "Open Web UI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://www.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Auth",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://auth.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Kavita",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://kavita.kitestacks.com:5000",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tasks",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://tasks.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "AI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://ai.kitestacks.com:3100",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Forgejo",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://gitforge.kitestacks.com:3006",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Linkding",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://links.kitestacks.com:9005",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Grafana",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://grafana.kitestacks.com:3150",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "OpenProject",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://openproject.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"type": "tcp",
|
||||
"host": "prometheus.kitestacks.com",
|
||||
"port": 9090,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Node Exporter",
|
||||
"type": "tcp",
|
||||
"host": "node-exporter.kitestacks.com",
|
||||
"port": 9100,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Pixel 4",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.201",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.205",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14s",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.206",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Gaming Desktop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.207",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tesla Model Y",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.208",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Mom's HP Laptop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.209",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Uptime Kuma",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://status.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
}
|
||||
]
|
||||
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: kitestacks-monitors-check
|
||||
namespace: monitoring
|
||||
spec:
|
||||
schedule: "*/5 * * * *"
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: monitor-check
|
||||
image: python:3.12-slim
|
||||
command: ["python3", "/scripts/kitestacks_check.py"]
|
||||
volumeMounts:
|
||||
- name: monitors
|
||||
mountPath: /scripts
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: monitors
|
||||
configMap:
|
||||
name: kitestacks-monitors
|
||||
140
apps/forgejo/uptime-kuma/kitestacks-monitors.json
Normal file
140
apps/forgejo/uptime-kuma/kitestacks-monitors.json
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
[
|
||||
{
|
||||
"name": "Open Web UI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://www.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Auth",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://auth.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Kavita",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://kavita.kitestacks.com:5000",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tasks",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://tasks.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "AI",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://ai.kitestacks.com:3100",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Forgejo",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://gitforge.kitestacks.com:3006",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Linkding",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://links.kitestacks.com:9005",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Grafana",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://grafana.kitestacks.com:3150",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "OpenProject",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "http://openproject.kitestacks.com:8080",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"type": "tcp",
|
||||
"host": "prometheus.kitestacks.com",
|
||||
"port": 9090,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Node Exporter",
|
||||
"type": "tcp",
|
||||
"host": "node-exporter.kitestacks.com",
|
||||
"port": 9100,
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Pixel 4",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.201",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.205",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Lenovo T14s",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.206",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Gaming Desktop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.207",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Tesla Model Y",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.208",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Mom's HP Laptop",
|
||||
"type": "ping",
|
||||
"host": "192.168.1.209",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
},
|
||||
{
|
||||
"name": "Uptime Kuma",
|
||||
"type": "http",
|
||||
"method": "GET",
|
||||
"url": "https://status.kitestacks.com",
|
||||
"interval": 60,
|
||||
"retries": 3
|
||||
}
|
||||
]
|
||||
32
apps/forgejo/uptime-kuma/scripts/kitestacks_uptimecheck.py
Executable file
32
apps/forgejo/uptime-kuma/scripts/kitestacks_uptimecheck.py
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env python3
|
||||
import json
|
||||
import requests
|
||||
import subprocess
|
||||
|
||||
# Load the monitors JSON
|
||||
with open("/scripts/kitestacks-monitors.json", "r") as f:
|
||||
monitors = json.load(f)
|
||||
|
||||
for monitor in monitors:
|
||||
name = monitor.get("name")
|
||||
mtype = monitor.get("type")
|
||||
|
||||
try:
|
||||
if mtype == "http":
|
||||
url = monitor.get("url")
|
||||
method = monitor.get("method", "GET").upper()
|
||||
resp = requests.request(method, url, timeout=10, verify=False)
|
||||
print(f"[{name}] HTTP {method} {url} -> Status {resp.status_code}")
|
||||
elif mtype == "tcp":
|
||||
host = monitor.get("host")
|
||||
port = monitor.get("port")
|
||||
result = subprocess.run(["nc", "-zvw3", host, str(port)], capture_output=True)
|
||||
print(f"[{name}] TCP {host}:{port} -> Returncode {result.returncode}")
|
||||
elif mtype == "ping":
|
||||
host = monitor.get("host")
|
||||
result = subprocess.run(["ping", "-c", "1", host], capture_output=True)
|
||||
print(f"[{name}] Ping {host} -> Returncode {result.returncode}")
|
||||
else:
|
||||
print(f"[{name}] Unknown type: {mtype}")
|
||||
except Exception as e:
|
||||
print(f"[{name}] Error: {e}")
|
||||
0
apps/forgejo/uptime-kuma/uptime-kuma
Normal file
0
apps/forgejo/uptime-kuma/uptime-kuma
Normal file
59
apps/forgejo/uptime-kuma/uptime-kuma-deployment.yaml
Normal file
59
apps/forgejo/uptime-kuma/uptime-kuma-deployment.yaml
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: monitoring
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: uptime-kuma-pvc
|
||||
namespace: monitoring
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: uptime-kuma
|
||||
namespace: monitoring
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: uptime-kuma
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: uptime-kuma
|
||||
spec:
|
||||
containers:
|
||||
- name: uptime-kuma
|
||||
image: louislam/uptime-kuma:latest
|
||||
ports:
|
||||
- containerPort: 3001
|
||||
volumeMounts:
|
||||
- name: kuma-data
|
||||
mountPath: /app/data
|
||||
volumes:
|
||||
- name: kuma-data
|
||||
persistentVolumeClaim:
|
||||
claimName: uptime-kuma-pvc
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: uptime-kuma
|
||||
namespace: monitoring
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: uptime-kuma
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 3001
|
||||
targetPort: 3001
|
||||
|
||||
24
apps/forgejo/uptime-kuma/uptime-kuma-ingress.yaml
Normal file
24
apps/forgejo/uptime-kuma/uptime-kuma-ingress.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: uptime-kuma-ingress
|
||||
namespace: monitoring
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx # or your ingress controller name
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod # if using cert-manager for TLS
|
||||
spec:
|
||||
rules:
|
||||
- host: status.kitestacks.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: uptime-kuma
|
||||
port:
|
||||
number: 3001
|
||||
tls:
|
||||
- hosts:
|
||||
- status.kitestacks.com
|
||||
secretName: uptime-kuma-tls
|
||||
7
apps/grafana/docker-compose.yml
Normal file
7
apps/grafana/docker-compose.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
services:
|
||||
grafana:
|
||||
image: grafana/grafana-oss
|
||||
container_name: grafana
|
||||
ports:
|
||||
- "3150:3000" # host:container
|
||||
restart: unless-stopped
|
||||
19
apps/grafana/grafana-networkpolicy.yaml
Normal file
19
apps/grafana/grafana-networkpolicy.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: allow-grafana-ingress
|
||||
namespace: monitoring
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: grafana
|
||||
policyTypes:
|
||||
- Ingress
|
||||
ingress:
|
||||
- from:
|
||||
- ipBlock:
|
||||
cidr: 192.168.1.0/24 # replace with your LAN subnet
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 3000
|
||||
|
||||
0
apps/grafana/test-autosync.txt
Normal file
0
apps/grafana/test-autosync.txt
Normal file
13
apps/homepage-archived-2026-06-07/Dockerfile
Normal file
13
apps/homepage-archived-2026-06-07/Dockerfile
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Use Node.js Alpine base
|
||||
FROM node:20-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy all homepage files
|
||||
COPY . /app
|
||||
|
||||
# Expose port for the homepage
|
||||
EXPOSE 8080
|
||||
|
||||
# Start the homepage (adjust if your entry point is different)
|
||||
CMD ["node", "server.js"]
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
- Social:
|
||||
- Discord:
|
||||
- abbr:
|
||||
href: https://discord.gg/QbdveTb6Kw
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
# port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# sample kubernetes config
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
# pve:
|
||||
# url: https://proxmox.host.or.ip:8006
|
||||
# token: username@pam!Token ID
|
||||
# secret: secret
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Linkding:
|
||||
icon: linkding.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Shaarli:
|
||||
icon: shaarli.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
- Social:
|
||||
- Discord:
|
||||
- abbr:
|
||||
href: https://discord.gg/QbdveTb6Kw
|
||||
|
||||
|
||||
91
apps/homepage-archived-2026-06-07/config-test/custom.css
Normal file
91
apps/homepage-archived-2026-06-07/config-test/custom.css
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
/* ==========================================================
|
||||
KITESTACKS CYBERPUNK TEST THEME
|
||||
TEST ONLY
|
||||
========================================================== */
|
||||
|
||||
/* Background */
|
||||
body {
|
||||
background: url("/images/cyberpunk-bg.png") center center fixed !important;
|
||||
background-size: cover !important;
|
||||
}
|
||||
|
||||
/* Remove old injected banner */
|
||||
body::before,
|
||||
body::after {
|
||||
display: none !important;
|
||||
content: none !important;
|
||||
}
|
||||
|
||||
/* Dark overlay for readability */
|
||||
body::selection {
|
||||
background: rgba(56,189,248,0.35);
|
||||
}
|
||||
|
||||
/* Main containers */
|
||||
div[class*="service"],
|
||||
div[class*="widget"],
|
||||
.card,
|
||||
.service-card {
|
||||
background: rgba(7,15,30,0.72) !important;
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
|
||||
border: 1px solid rgba(56,189,248,0.25) !important;
|
||||
|
||||
border-radius: 18px !important;
|
||||
|
||||
box-shadow:
|
||||
0 0 15px rgba(56,189,248,0.08),
|
||||
0 0 30px rgba(56,189,248,0.05) !important;
|
||||
}
|
||||
|
||||
/* Section headers */
|
||||
h2 {
|
||||
color: #dbeafe !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: 0.03em !important;
|
||||
|
||||
text-shadow:
|
||||
0 0 8px rgba(56,189,248,0.45);
|
||||
}
|
||||
|
||||
/* Search box */
|
||||
input[type="text"] {
|
||||
background: rgba(5,10,20,0.75) !important;
|
||||
border: 1px solid rgba(56,189,248,0.35) !important;
|
||||
border-radius: 14px !important;
|
||||
}
|
||||
|
||||
/* Widget row */
|
||||
div[class*="widget"] {
|
||||
border-radius: 18px !important;
|
||||
}
|
||||
|
||||
/* Hover effects */
|
||||
a:hover .service-card,
|
||||
.service-card:hover,
|
||||
.card:hover {
|
||||
transform: translateY(-2px);
|
||||
|
||||
box-shadow:
|
||||
0 0 15px rgba(56,189,248,0.25),
|
||||
0 0 35px rgba(56,189,248,0.18) !important;
|
||||
|
||||
transition: all .2s ease;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
backdrop-filter: blur(8px);
|
||||
}
|
||||
|
||||
/* Slightly dim the background for readability */
|
||||
body::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: rgba(0,0,20,0.45);
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
}
|
||||
EOF
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
body::before {
|
||||
content: "";
|
||||
display: block;
|
||||
height: 155px;
|
||||
margin: 24px 38px 10px 38px;
|
||||
background-image: url("/images/kitestacks-logo.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
background-size: 360px auto;
|
||||
border-bottom: 2px solid rgba(56, 189, 248, 0.75);
|
||||
}
|
||||
|
||||
body::after {
|
||||
content: "Personal Infrastructure Platform";
|
||||
position: absolute;
|
||||
top: 128px;
|
||||
left: 185px;
|
||||
font-size: 15px;
|
||||
letter-spacing: 0.18em;
|
||||
text-transform: uppercase;
|
||||
color: rgba(203, 213, 225, 0.75);
|
||||
}
|
||||
|
||||
.service-card,
|
||||
div[class*="service"] {
|
||||
border-radius: 14px !important;
|
||||
}
|
||||
|
||||
h2 {
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
0
apps/homepage-archived-2026-06-07/config-test/custom.js
Normal file
0
apps/homepage-archived-2026-06-07/config-test/custom.js
Normal file
10
apps/homepage-archived-2026-06-07/config-test/docker.yaml
Normal file
10
apps/homepage-archived-2026-06-07/config-test/docker.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
# port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.9 KiB |
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# sample kubernetes config
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
# pve:
|
||||
# url: https://proxmox.host.or.ip:8006
|
||||
# token: username@pam!Token ID
|
||||
# secret: secret
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Linkding:
|
||||
icon: linkding.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
89
apps/homepage-archived-2026-06-07/config-test/services.yaml
Normal file
89
apps/homepage-archived-2026-06-07/config-test/services.yaml
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity & Access
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Control
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Service Health
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Dashboards & Metrics
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Telemetry
|
||||
|
||||
- AI & Automation:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Knowledge Base:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Shaarli:
|
||||
icon: shaarli.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Development:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Community:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Community Hub
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Coming Soon
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: Coming Soon
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: Coming Soon
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: Coming Soon
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Shaarli:
|
||||
icon: shaarli.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
37
apps/homepage-archived-2026-06-07/config-test/settings.yaml
Normal file
37
apps/homepage-archived-2026-06-07/config-test/settings.yaml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
title: KiteStacks
|
||||
theme: dark
|
||||
color: slate
|
||||
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 4
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 3
|
||||
|
||||
AI & Automation:
|
||||
style: row
|
||||
columns: 3
|
||||
|
||||
Knowledge Base:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Development:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Community:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Future Projects:
|
||||
style: row
|
||||
columns: 4
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
24
apps/homepage-archived-2026-06-07/config-test/widgets.yaml
Normal file
24
apps/homepage-archived-2026-06-07/config-test/widgets.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
6
apps/homepage-archived-2026-06-07/config/bookmarks.yaml
Normal file
6
apps/homepage-archived-2026-06-07/config/bookmarks.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
- Social:
|
||||
- Discord:
|
||||
- abbr:
|
||||
href: https://discord.gg/QbdveTb6Kw
|
||||
|
||||
|
||||
0
apps/homepage-archived-2026-06-07/config/custom.css
Normal file
0
apps/homepage-archived-2026-06-07/config/custom.css
Normal file
0
apps/homepage-archived-2026-06-07/config/custom.js
Normal file
0
apps/homepage-archived-2026-06-07/config/custom.js
Normal file
10
apps/homepage-archived-2026-06-07/config/docker.yaml
Normal file
10
apps/homepage-archived-2026-06-07/config/docker.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
# port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
2
apps/homepage-archived-2026-06-07/config/kubernetes.yaml
Normal file
2
apps/homepage-archived-2026-06-07/config/kubernetes.yaml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# sample kubernetes config
|
||||
5
apps/homepage-archived-2026-06-07/config/proxmox.yaml
Normal file
5
apps/homepage-archived-2026-06-07/config/proxmox.yaml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
# pve:
|
||||
# url: https://proxmox.host.or.ip:8006
|
||||
# token: username@pam!Token ID
|
||||
# secret: secret
|
||||
90
apps/homepage-archived-2026-06-07/config/services-live.yaml
Normal file
90
apps/homepage-archived-2026-06-07/config/services-live.yaml
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Linkding:
|
||||
icon: linkding.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
90
apps/homepage-archived-2026-06-07/config/services.yaml
Normal file
90
apps/homepage-archived-2026-06-07/config/services.yaml
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
- Infrastructure:
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Docker Management
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
- Cloudflare:
|
||||
icon: cloudflare.png
|
||||
href: https://dash.cloudflare.com
|
||||
description: DNS & Tunnel Management
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Uptime Monitoring
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: Private AI Workspace
|
||||
- LiteLLM:
|
||||
icon: si-openai
|
||||
href: https://llm.kitestacks.com
|
||||
description: AI Model Gateway
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books, Comics & PDFs
|
||||
- Shaarli:
|
||||
icon: shaarli.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Code:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://gitforge.kitestacks.com
|
||||
description: Self-Hosted Git
|
||||
- TicketSystem:
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: http://192.168.1.205:3150
|
||||
description: Monitoring Dashboards
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9090
|
||||
description: Metrics Database
|
||||
- Node Exporter:
|
||||
icon: prometheus.png
|
||||
href: http://192.168.1.205:9100
|
||||
description: Host Metrics
|
||||
|
||||
- Future Projects:
|
||||
- Kubernetes:
|
||||
icon: kubernetes.png
|
||||
href: https://kubernetes.io
|
||||
description: Cluster Platform
|
||||
- FluxCD:
|
||||
icon: flux-cd.png
|
||||
href: https://fluxcd.io
|
||||
description: GitOps Automation
|
||||
- Cilium:
|
||||
icon: cilium.png
|
||||
href: https://cilium.io
|
||||
description: eBPF Networking
|
||||
- CloudNativePG:
|
||||
icon: postgresql.png
|
||||
href: https://cloudnative-pg.io
|
||||
description: PostgreSQL Operator
|
||||
|
||||
- Social:
|
||||
- Discord:
|
||||
icon: discord.png
|
||||
href: https://discord.gg
|
||||
description: Discord
|
||||
32
apps/homepage-archived-2026-06-07/config/settings-live.yaml
Normal file
32
apps/homepage-archived-2026-06-07/config/settings-live.yaml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
32
apps/homepage-archived-2026-06-07/config/settings.yaml
Normal file
32
apps/homepage-archived-2026-06-07/config/settings.yaml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: KiteStacks.AO
|
||||
theme: dark
|
||||
color: slate
|
||||
headerStyle: boxed
|
||||
hideVersion: true
|
||||
useEqualHeights: true
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Library:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Code:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Projects:
|
||||
style: row
|
||||
columns: 1
|
||||
|
||||
Monitoring:
|
||||
style: row
|
||||
columns: 2
|
||||
|
||||
Social:
|
||||
style: row
|
||||
columns: 1
|
||||
24
apps/homepage-archived-2026-06-07/config/widgets-live.yaml
Normal file
24
apps/homepage-archived-2026-06-07/config/widgets-live.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
24
apps/homepage-archived-2026-06-07/config/widgets.yaml
Normal file
24
apps/homepage-archived-2026-06-07/config/widgets.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: full
|
||||
timeStyle: short
|
||||
|
||||
- openmeteo:
|
||||
label: Wheaton
|
||||
latitude: 41.8661
|
||||
longitude: -88.1065
|
||||
timezone: America/Chicago
|
||||
units: imperial
|
||||
cache: 5
|
||||
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
12
apps/homepage-archived-2026-06-07/docker-compose.test.yml
Normal file
12
apps/homepage-archived-2026-06-07/docker-compose.test.yml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
services:
|
||||
homepage-test:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage-test
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3007:3000"
|
||||
environment:
|
||||
- HOMEPAGE_ALLOWED_HOSTS=localhost:3007,192.168.1.205:3007,www.kitestacks.test.com,kitestacks.test.com
|
||||
volumes:
|
||||
- ./config-test:/app/config
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
13
apps/homepage-archived-2026-06-07/docker-compose.yml
Normal file
13
apps/homepage-archived-2026-06-07/docker-compose.yml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
services:
|
||||
homepage:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3005:3000"
|
||||
environment:
|
||||
- HOMEPAGE_ALLOWED_HOSTS=localhost:3005,192.168.1.205:3005,www.kitestacks.com,kitestacks.com,home.kitestacks.com
|
||||
|
||||
volumes:
|
||||
- ./config:/app/config
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
69
apps/homepage-archived-2026-06-07/services.yaml
Normal file
69
apps/homepage-archived-2026-06-07/services.yaml
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
- Infrastructure:
|
||||
- Homepage:
|
||||
icon: homepage.png
|
||||
href: https://www.kitestacks.com
|
||||
description: Main Dashboard
|
||||
|
||||
- Authentik:
|
||||
icon: authentik.png
|
||||
href: https://auth.kitestacks.com
|
||||
description: Identity Provider
|
||||
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
href: https://portainer.kitestacks.com
|
||||
description: Container Management
|
||||
|
||||
- Development:
|
||||
- Forgejo:
|
||||
icon: forgejo.png
|
||||
href: https://git.kitestacks.com
|
||||
description: Git Repositories
|
||||
|
||||
- OpenProject:
|
||||
icon: openproject.png
|
||||
href: https://tasks.kitestacks.com
|
||||
description: Project Management
|
||||
|
||||
- AI:
|
||||
- Kite AI:
|
||||
icon: open-webui.png
|
||||
href: https://ai.kitestacks.com
|
||||
description: AI Workspace
|
||||
|
||||
- LiteLLM:
|
||||
icon: litellm.png
|
||||
href: https://llm.kitestacks.com
|
||||
description: Model Gateway
|
||||
|
||||
- OpenRouter:
|
||||
icon: si-openai
|
||||
href: https://openrouter.ai
|
||||
description: Hosted AI Models
|
||||
|
||||
- Library:
|
||||
- Kavita:
|
||||
icon: kavita.png
|
||||
href: https://kavita.kitestacks.com
|
||||
description: Books & Documents
|
||||
|
||||
- Shaarli:
|
||||
icon: shaarli.png
|
||||
href: https://links.kitestacks.com
|
||||
description: Bookmark Library
|
||||
|
||||
- Monitoring:
|
||||
- Grafana:
|
||||
icon: grafana.png
|
||||
href: https://grafana.kitestacks.com
|
||||
description: Dashboards
|
||||
|
||||
- Prometheus:
|
||||
icon: prometheus.png
|
||||
href: https://prometheus.kitestacks.com
|
||||
description: Metrics Collection
|
||||
|
||||
- Uptime Kuma:
|
||||
icon: uptime-kuma.png
|
||||
href: https://status.kitestacks.com
|
||||
description: Service Monitoring
|
||||
0
apps/homepage-archived-2026-06-07/test-autosync.txt
Normal file
0
apps/homepage-archived-2026-06-07/test-autosync.txt
Normal file
BIN
apps/homepage-backup-pre-cyberpunk-2026-06-07-0152.tar.gz
Normal file
BIN
apps/homepage-backup-pre-cyberpunk-2026-06-07-0152.tar.gz
Normal file
Binary file not shown.
|
|
@ -1,20 +0,0 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: homepage
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: homepage
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: homepage
|
||||
spec:
|
||||
containers:
|
||||
- name: homepage
|
||||
image: ghcr.io/yourusername/homepage:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1m
|
||||
path: ./apps/homepage
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: kitestacks-homelab
|
||||
targetNamespace: homepage
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: homepage
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: homepage
|
||||
spec:
|
||||
selector:
|
||||
app: homepage
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
type: ClusterIP
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: kavita-docker-auto-restart
|
||||
namespace: automation
|
||||
spec:
|
||||
schedule: "*/15 * * * *"
|
||||
successfulJobsHistoryLimit: 2
|
||||
failedJobsHistoryLimit: 3
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
containers:
|
||||
- name: restart-kavita
|
||||
image: docker:27-cli
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
echo "Restarting Kavita Docker container..."
|
||||
docker restart kavita
|
||||
echo "Kavita restart completed."
|
||||
volumeMounts:
|
||||
- name: docker-sock
|
||||
mountPath: /var/run/docker.sock
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
hostPath:
|
||||
path: /var/run/docker.sock
|
||||
type: Socket
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- kavita-docker-restart-cronjob.yaml
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: automation
|
||||
15
apps/kavita/config/appsettings.json
Normal file
15
apps/kavita/config/appsettings.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"TokenKey": "0dAB10RcaX3mUwxMGE5pVcauZhDybFyoaPM6bGup5GLTFGq3yO6GFKpsnWCJ2TMS8GT2BpB4cXXc8wqB7mOV14\u002BS3ys5fgb2eWjX31DrmDgfJJYapAFr2Unx\u002BTv5fpeS9TyH\u002BnzAEhISPxXRApn4n6zJ7RUbJ79QEGyX2eKCjxJqsV6xBrHta4weL7zGQmPcWoMswezglOnFMoEYhzURpyVkwl1KeXFnfbdrPuGzcUCtsbdjBoRYXqIn5gcdjDOyrdwAxNT8Of3CGMnYFGLzg0kMIwPzBPqD5nsGXBisHQYEPUSwYsIIGwAfYLV3HtS\u002B\u002BXagEW3pgnbHYljsxSTQ==",
|
||||
"Port": 5000,
|
||||
"IpAddresses": "",
|
||||
"BaseUrl": "/",
|
||||
"Cache": 75,
|
||||
"AllowIFraming": false,
|
||||
"OpenIdConnectSettings": {
|
||||
"Authority": "",
|
||||
"ClientId": "kavita",
|
||||
"Secret": "",
|
||||
"CustomScopes": [],
|
||||
"Enabled": false
|
||||
}
|
||||
}
|
||||
Binary file not shown.
7
apps/kavita/config/cache-long/pr_cache/pr_4691.json
Normal file
7
apps/kavita/config/cache-long/pr_cache/pr_4691.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Title": "Cover Chooser Overhaul",
|
||||
"Body": "\r\n\u003Cimg width=\u00221127\u0022 height=\u0022773\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ba3fe03a-880c-4c48-a348-25169f0afdc8\u0022 /\u003E\r\n\u003Cimg width=\u0022965\u0022 height=\u0022658\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/55b8c9ac-3781-4725-ac7a-2176214b3489\u0022 /\u003E\r\n\r\n\r\n# Added\r\n- Added: (Kavita\u002B) Cover chooser will now present cover image choices from Kavita\u002B (powered by Hardcover, MangaBaka, and ComicBookRoundup). \r\n\r\n# Changed\r\n- Changed: Redesigned Kavita\u0027s Cover Image chooser to use tabs for individual types of media (Current, Uploaded, Volume, Chapter, Kavita\u002B). (Closes #3891) (Thanks @therobbiedavis for the great design)\r\n- Changed: Moved the Reset cover image from a weird button into a dedicated button with clear labeling if the underlying cover was locked or not. \r\n\r\n# Fixed\r\n- Fixed: Fixed up a case where entity title service would avoid having Volume X in some cases\r\n- Fixed: Fixed Chrome PWA not showing the install button (Thanks @Ansh2209 )\r\n",
|
||||
"Html_Url": "https://github.com/Kareadita/Kavita/pull/4691",
|
||||
"Merged_At": "2026-05-19T18:27:50Z",
|
||||
"Number": 4691
|
||||
}
|
||||
7
apps/kavita/config/cache-long/pr_cache/pr_4711.json
Normal file
7
apps/kavita/config/cache-long/pr_cache/pr_4711.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Title": "Kavita\u002B Audit Log",
|
||||
"Body": "\r\n\u003Cimg width=\u00221860\u0022 height=\u0022743\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/563b5045-c954-4b9a-9206-1ceb81fa773d\u0022 /\u003E\r\n\r\n\u003Cimg width=\u00221656\u0022 height=\u0022755\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/fb372b91-0ef1-4472-8215-633c776b3ebb\u0022 /\u003E\r\n\r\n\u003Cimg width=\u00221113\u0022 height=\u0022751\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ae3496e3-31eb-4854-8c2f-d84307f75881\u0022 /\u003E\r\n\r\n\r\nThis is the first piece of a lot of architectural changes to make the Kavita\u002B integration feel understandable. Since Kavita\u002B launched, the systems have been evolving, but understanding what is happening under the hood has been difficult. The pressure was added with both AniList and MAL having many downtime events and users wondering when metadata is matching, needs rematching, or why a scrobble event didn\u0027t post. \r\n\r\nI hope this Audit system helps shed light and I am open to feedback to ensure it addresses the needs. \r\n\r\n\r\n# Added\r\n- Added: Added 3 new screens that help users understand what Kavita\u002B is doing around their series, their scrobbling, and for admins, the whole behind the scenes logic. (Closes #4705)\r\n\r\n# Changed\r\n- Changed: Scrobbling screen is likely going to be replaced by the new screens\r\n\r\n# Fixed\r\n- Fixed: Fixed a bug where marking a chapter as read wasn\u0027t triggering scrobbling.\r\n- Fixed: Fixed a bug where MAL was never getting a proper response for token expiration in the Account Screen\r\n- Fixed: Fixed a bug where series detail page could refresh the cover when a chapter cover update event triggered. \r\n\r\nNote: Relies on #4691",
|
||||
"Html_Url": "https://github.com/Kareadita/Kavita/pull/4711",
|
||||
"Merged_At": "2026-05-21T13:09:15Z",
|
||||
"Number": 4711
|
||||
}
|
||||
7
apps/kavita/config/cache-long/pr_cache/pr_4727.json
Normal file
7
apps/kavita/config/cache-long/pr_cache/pr_4727.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Title": "Kavita\u002B Match UX Refresh",
|
||||
"Body": "\r\n\u003Cimg width=\u00221150\u0022 height=\u0022551\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/dfb1fcb3-9502-4b3c-89d5-1ac823a7f0c3\u0022 /\u003E\r\n\r\nNote: Although you see Hardcover, it is not enabled yet in Kavita. This will come later. \r\n\r\n# Added\r\n- Added: Kavita\u002B Match can now accept direct ids via anilist:1234 in addition to existing urls. \r\n\r\n# Changed\r\n- Changed: Massive UX refresh to the Match modal for Kavita\u002B to surface tips on how to search. (Closes #4725)\r\n\r\n",
|
||||
"Html_Url": "https://github.com/Kareadita/Kavita/pull/4727",
|
||||
"Merged_At": "2026-05-27T16:42:40Z",
|
||||
"Number": 4727
|
||||
}
|
||||
7
apps/kavita/config/cache-long/pr_cache/pr_4731.json
Normal file
7
apps/kavita/config/cache-long/pr_cache/pr_4731.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Title": "Feature/kavita\u002B license",
|
||||
"Body": "\r\n\u003Cimg width=\u00221880\u0022 height=\u0022653\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/203bc8bf-a4c2-49c0-ae74-03d86de5d4fb\u0022 /\u003E\r\n\r\n\u003Cimg width=\u00221876\u0022 height=\u0022817\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/f62d4b8e-6660-4aca-8b5a-fb98b38b45e9\u0022 /\u003E\r\n\r\n\u003Cimg width=\u00221852\u0022 height=\u0022794\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/d13674e9-28e3-430c-8322-3b131d572018\u0022 /\u003E\r\n\r\nThis is another massive rework to Kavita/Kavita\u002B around the first setup to understanding the impact and status of Kavita\u002B. The main focus is on expanded availablility of information for licensed servers, helping users understand what Kavita\u002B is, and streamlining and polishing the registration/management points. \r\n\r\n**Note: The discord button is not implemented and some providers are not fully realized. This will come later.**\r\n\r\n\r\n# Added\r\n- Added: Added an upsell page that explains what Kavita\u002B is, so users are more informed, rather than linking to the wiki\r\n- Added: Added a status page to services that Kavita\u002B relies on, to surface incidents (like AL going down and scrobbling not working)\r\n- Added: Added stats about what Kavita\u002B is doing and how many calls your license has made (note: Not all data will be present, existing data is mixy)\r\n\r\n# Changed\r\n- Changed: Complete overhaul to the Kavita\u002B license page. New design have an upsell feel (from the main site) that explains what Kavita\u002B is. \r\n- Changed: When editing the license, the email is auto-filled for you\r\n- Changed: Expanded how much information we log out in the Kavita\u002B Audit pages (develop)\r\n- Changed: Kavita\u002B Audit will now track Metadata Sync trigger (Manual, on file Add, Background Sync)\r\n- Changed: Lots of polish added to the Match screen and made all the screens much nicer on mobile (develop)\r\n\r\n# Fixed\r\n- Fixed: Fixed incorrect native/docker wiki links (Fixes #4704)\r\n- Fixed: Fixed incorrect setup link (Fixes #4702)\r\n- Fixed: Fixed my activity throwing an exception when no K\u002B license. (develop)\r\n- Fixed: Fixed CBL Upload restriction and reworked the hardening of how file upload validation checks are done. Ensure we log out when we reject and why.\r\n- Fixed: Fixed up/down not responding to keypresses (Fixes #4697)\r\n\r\n# Developer\r\n- Reworked the cover chooser logic so that everything is streamlined via a file upload rather than base64 nonsense (bloated images). Base64 still exists for a non-breaking API, but Kavita will upload a file via upload/upload-by-file which scopes to a temp directory and returns a filename to pass going forward.\r\n\r\n#4709 ",
|
||||
"Html_Url": "https://github.com/Kareadita/Kavita/pull/4731",
|
||||
"Merged_At": "2026-05-31T14:58:33Z",
|
||||
"Number": 4731
|
||||
}
|
||||
7
apps/kavita/config/cache-long/pr_cache/pr_4733.json
Normal file
7
apps/kavita/config/cache-long/pr_cache/pr_4733.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Title": "Scrobble Provider Rework",
|
||||
"Body": "This is a massive update to our Scrobble system and a major expansion into providers, by adding 2 new ones: Hardcover (Traditional Books) and MangaBaka (Manga, Light Novels, etc). We\u0027ve reworked the code from scratch to bring a much better experience, from rate limit tweaks, to allowing backfilling per-provider unlimited times, to the ability to build rules to trigger states for scrobble. \r\n\r\nWe will be taking a break from delivering overhauls to realign the UX and polish these recent additions. Please help by testing and providing feedback, both positive and constructive. \r\n\r\n\r\n\u003Cimg width=\u00221624\u0022 height=\u0022814\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/8d302034-7cc0-4aa6-80a7-d5ab3e87ae8b\u0022 /\u003E\r\n\r\n\u003Cimg width=\u00221612\u0022 height=\u0022846\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/a394f31b-2701-44d4-866c-db13950cd271\u0022 /\u003E\r\n\r\n\r\n# Added \r\n- Added: Added Mangabaka as scrobble provider\r\n- Added: Added Hardcover as scrobble provider\r\n- Added: Added per provider settings (library, age ratings, scrobble progress/ratings/reviews, etc))\r\n- Added: Added inactive \u0026 on hold rules (Auto transition series/books from reading to on hold after x days) (Closes #2447)\r\n- Added: Scrobble Providers can now show information, like username. \r\n\r\n# Changed\r\n- Changed: Improved AniList scrobble speed drastically \r\n- Changed: Scrobble keybind now opens my activity instead\r\n- Changed: Users can now run backfilling of history per provider as many times as they want. Kavita will slowly churn thru it all (note: Re-running multiple times will drastically inflate queue for no reason). \r\n- Changed: (UX) Complete UX overhaul of Scrobble providers (now found under Kavita\u002B \u003E Connections )\r\n\r\n# Fixed\r\n- Fixed: Fixed up token expired warning showing too often (Fixes #4728, Fixes #4720)\r\n- Fixed: Fixed being unable to reset external ids (Fixes #4719)\r\n- Fixed: Fixed getting stuck in a loop if OIDC config is removed while previously being logged in with OIDC\r\n- Fixed: Fixed scrobble events getting marked as processed when hitting the rate limit under some circumstances\r\n- Fixed: Fixed a bug where Rereading a chapter then moving to the next wouldn\u0027t reset the page to 0\r\n\r\nCloses #4710, Closes #4733, Closes #3685",
|
||||
"Html_Url": "https://github.com/Kareadita/Kavita/pull/4733",
|
||||
"Merged_At": "2026-06-05T21:45:36Z",
|
||||
"Number": 4733
|
||||
}
|
||||
BIN
apps/kavita/config/covers/v1_c1.png
Normal file
BIN
apps/kavita/config/covers/v1_c1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 207 KiB |
BIN
apps/kavita/config/covers/v2_c2.png
Normal file
BIN
apps/kavita/config/covers/v2_c2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue