Skip to main content

TJ Palanca Personal Cloud

Project description

TJCloud

This is my personal cloud - for hobby programming, personal projects, and experiments.

Key Technologies

I’m leaning on the following core technologies:

  • Terraform (and Terraform Cloud or Github Actions) for provisioning infrastructure as code,
  • Kubernetes for orchestrating various workloads, with a few general patterns:
    • NGINX Ingress for exposing web services to the web from the cluster
    • Databases as stateful deployments
    • Keycloak for identity and access management
    • OAuth2 Proxy as main gateway to protect private services
    • Kaniko for building images inside a Kubernetes cluster
  • Linode Kubernetes Engine, a simple, developer-friendly, and inexpensive cloud provider for managed Kubernetes, and
  • Linode Object Storage for storing data files
  • Cloudflare for DNS, TLS, and all-around protection. Some key features are:
    • Everything proxied through cloudflare network
    • Origin certificate presented to cloudflare
    • Cloudflare sends client certificate and server verifies
  • GitHub Packages as my main image registry

Applications

As of this writing, I host the following applications:

  • a VS Code instance from code-server that allows me to develop on the cloud, with any device (including iPads and chromebooks!). Some special 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
  • PGAdmin, an excellent open source administration console for PostgreSQL
  • 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.
  • Mastodon - my own personal Mastodon server for interacting with the Fediverse (open source Twitter but less annoying virality and more useful, insightful content)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tjcloud-2.3.0.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

tjcloud-2.3.0-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page