TJCloud
This is my personal cloud - for hobby programming, personal projects,
and experiments.
Key Technologies
Im leaning on the following core technologies:
Previous Technologies
These are tech that Ive retired from my personal cloud:
-
Linode, due to an ominous acquisition by Akamai
and a price increase despite no feature parity with
DigitalOcean to which I have moved.
- Self-hosted stack for user management and authentication of itnernal
services, replaced by Cloudflare
Access
-
Keycloak for identity and access
management
-
OAuth2 Proxy as main
gateway to protect private services
- Self-hosted stack for image building, replaced by GitHub
Actions
-
Kaniko for
building images inside a Kubernetes cluster
Applications
I host the following applications:
- my personal coding and writing environment from
code-server that allows me to
develop on the cloud, with any device (including iPads and
chromebooks!). Some additional mods features are:
- Protected domains (https://\<port>.<domain>) to test web apps
running on the server or for exposing environments like Jupyter or
Pluto
- Custom web fonts through an NGINX sub_filter
- Python, Julia, JS, and R installations for the confused data person
Disabled Applications
The code is still in the repo, but is no longer in active use:
-
PGAdmin, an excellent open source
administration console for PostgreSQL
-
Mastodon - my own personal Mastodon server
for interacting with the Fediverse (open source Twitter but less
annoying virality and more useful, insightful content)
-
FreshRSS - feed reading service, I read using
Reeder on iOS and Mac.
-
Kill the Newsletter -
A self-hosted, secure version of Kill the
Newsletter for managing newsletters
and feeding them into FreshRSS.
-
PostgreSQL for my main database
-
Clickhouse as a requirement for Plausible
Analytics, storing clickstream data
-
Redis as a requirement for Mastodon, but also for
general caching in the development server
-
Plausible Analytics for hosting
privacy-friendly website analytics
- the Kubernetes Dashboard
for administering the cluster, and
metrics-server
for collecting data to present in the dashboard.