Skip to content

A platform for experimenting with fullstack applications using various technologies.

Notifications You must be signed in to change notification settings

h3nryc0ding/k8splay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ Under Construction ⚠️

This Kubernetes playground is currently undergoing significant upgrades and will not be available for a few weeks as I rewrite the deployment pipeline using FluxCD.

Please check back later for updates! Thank you for your understanding! 🙏

Motivation

This repository is a playground for me to experiment with Kubernetes and its ecosystem. It is a full stack application with a Spring Boot backend, a SvelteKit frontend, and a Keycloak server for authentication.

Features

  • GraphQL API
  • SSO Authentication
  • SSL Encryption using Let's Encrypt and cert-manager
  • WebSocket based live chat

Backend

Deployed at api.k8splay.xyz

  • Reactive Spring Boot with WebFlux and Kotlin
  • Persistence with R2DBC and MongoDB
  • Authentication and Authorization using Keycloak and oAuth2
  • GraphiQL available at /graphiql

Frontend

Deployed at k8splay.xyz

  • SvelteKit
  • ShadCN and TailwindCSS for styling
  • Houdini GraphQL client for SSR
  • Authenticated routes
  • All pages support SSR with in-cluster backend requests

Keycloak

Deployed at accounts.k8splay.xyz

  • Optimized Docker image
  • Persistence with PostgreSQL
  • Custom theme

DevOps

Deployed at <PR>.test.k8splay.xyz. Please replace <PR> with the PR number, e.g. pr-1.test.k8splay.xyz. The API is deployed at api.<PR>.test.k8splay.xyz. The deployment is automatically deleted when the PR is closed.

Implemented using GitHub Actions:

  • Automated prod deployment
  • Automated test deployments on pull requests
  • Automated linting and testing

About

A platform for experimenting with fullstack applications using various technologies.

Resources

Stars

Watchers

Forks

Packages