Startpunkt is a clean start page designed to display links to all your self-hosted resources in your kubernetes cluster.
Report a Bug ·
Request a Feature ·
Ask a Question
Table of Contents
- 🔐 Local execution. Everything is executed locally on your cluster.
- ⚡ Automatic. Services are automatically added / removed as they are deployed to the cluster.
- 🗂️ Service Groups. Group services by namespace or custom groups.
- 🏷️ Bookmarks. Create a list of bookmarks using CRDs.
- 👌 GitOps Ready. Manage the services and bookmarks using CRDs and the rest of the application is configured with YAML.
- ⚡ Integrated. Supports displaying services defined in
- Startpunkt annotations/CRDs
- Kubernetes Ingress
- OpenShift Routes
- Hajimari CRDs
- Istio VirtualServices.
- 🚀 Fast. Using Quarkus natively compiled binaries makes them really fast.
- 🌎 Internationalized. Supports multiple languages.
- 🎨 Themes. Supports themes.
The kubectl yaml needed is included in the repo.
NOTE: This will deploy to the 'default' namespace.
kubectl apply -f https://raw.githubusercontent.com/ullbergm/startpunkt/main/deploy/kubernetes/startpunkt-jvm.yaml
kubectl apply -f https://raw.githubusercontent.com/ullbergm/startpunkt/main/deploy/kubernetes/startpunkt-native.yaml
The openshift yaml needed is included in the repo.
NOTE: This will deploy to the 'default' namespace.
oc apply -f https://raw.githubusercontent.com/ullbergm/startpunkt/main/deploy/openshift/startpunkt-jvm.yaml
oc apply -f https://raw.githubusercontent.com/ullbergm/startpunkt/main/deploy/openshift/startpunkt-native.yaml
If you want to update the default configuration, mount a file in /work/config/application.yaml with your desired configuration:
startpunkt:
# Default protocol for links if not specified in the resource
defaultProtocol: "http"
# Default language for the web UI
defaultLanguage: "en-US"
# Namespace selector determines which namespaces to look for resources in
namespaceSelector:
any: true # If true, look for resources in all namespaces
# matchNames: # Uncomment and specify namespace names to limit the search to specific namespaces
# - default
# - startpunkt
# Kubernetes integration, read ingress resources
ingress:
enabled: false # If true, enable the reading of ingress resources
onlyAnnotated: true # Only consider resources with the annotation 'startpunkt.ullberg.us/enabled: "true"'
# OpenShift integration, read OpenShift Routes
openshift:
enabled: false # If true, enable the reading of OpenShift Route resources
onlyAnnotated: true # Only consider resources with the annotation 'startpunkt.ullberg.us/enabled: "true"'
# Hajimari integration, read Hajimari Applications and Bookmarks
hajimari:
enabled: false # If true, enable the reading of Hajimari Applications and Bookmarks
# Istio Virtual Service integration, read Istio VirtualService resources
istio:
virtualservice:
enabled: false # If true, enable the reading of Hajimari Applications and Bookmarks
onlyAnnotated: true # Only consider resources with the annotation 'startpunkt.ullberg.us/enabled: "true"'
# Web ui configuration
web:
title: "Startpunkt" # Title of the web UI
githubLink:
enabled: true # If true, enable the GitHub link in the web UI
checkForUpdates: true # If true, check for updates and show a notification in the web UI
theme:
light:
bodyBgColor: "#F8F6F1"
bodyColor: "#696969"
emphasisColor: "#000000"
textPrimaryColor: "#4C432E"
textAccentColor: "#AA9A73"
dark:
bodyBgColor: "#232530"
bodyColor: "#696969"
emphasisColor: "#FAB795"
textPrimaryColor: "#FAB795"
textAccentColor: "#E95678"
To add applications, that are either outside of the cluster or are using an ingress method that is not supported (yet), you can use the CRDs:
apiVersion: startpunkt.ullberg.us/v1alpha1
kind: Application
metadata:
name: nas
namespace: default
spec:
name: Synology
group: Infrastructure
icon: nas
url: http:https://nas:5000/
info: Storage
You can use annotations to customize how the applications you have are displayed in Startpunkt.
The annotations can go on Ingresses or OpenShift Routes.
Annotation | Description | Required |
---|---|---|
startpunkt.ullberg.us/enabled |
Add this with value true if you want the application to show up in Startpunk | No |
startpunkt.ullberg.us/icon |
Icon/Image URL of the application. Icons can come from material design, etc. | No |
startpunkt.ullberg.us/iconColor |
Color to display the icon in. | No |
startpunkt.ullberg.us/name |
A custom name for your application. Use if you don’t want to use the name of the ingress/route | No |
startpunkt.ullberg.us/url |
A URL for the application. This will override the ingress URL. | No |
startpunkt.ullberg.us/targetBlank |
Determines if links should open in new tabs/windows. | No |
startpunkt.ullberg.us/info |
A short description of the application. | No |
startpunkt.ullberg.us/protocol |
Protocol to use for links if not known. | No |
NOTE: There is compatibility built in to process Hajimari and Forecastle annotations as well.
Quarkus provides a way to compile the java code to native binaries, making the container really small and quick to start up.
It also provides several libraries that simplify the development immensely.
- Rest client
- Kubernetes client
- Caching
- Health checks
- Prometheus monitoring
- Deploying a static website builder in the same application
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the 👍 reaction)
- Top Bugs (Add your votes using the 👍 reaction)
- Newest Bugs
Reach out to the maintainer at one of the following places:
- GitHub Discussions
- Contact options listed on this GitHub profile
If you want to say thank you or/and support active development of Startpunkt:
- Add a GitHub Star to the project.
- Buy me a coffee.
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
The original setup of this repository is by Magnus Ullberg.
For a full list of all authors and contributors, see the contributors page.
Startpunkt follows good practices of security, but 100% security cannot be assured. Startpunkt is provided "as is" without any warranty. Use at your own risk.
For more information and to report security issues, please refer to our security documentation.
This project is licensed under the MIT License.
See LICENSE for more information.