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
- NGINX Ingress for exposing web services to the web from the cluster
- DigitalOcean as my main Kubernetes provider, while using block storage container storage interface for persistent storage.
- Cloudflare for DNS, TLS, and origin server protection.
- Cloudflare Access for zero-trust access
- GitHub Packages as my main image registry.
Previous Technologies
These are tech that I’ve 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.
- Linode Kubernetes Engine, a simple, developer-friendly, and inexpensive cloud provider for managed Kubernetes, and
- Linode Object Storage for storing data files
- 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.
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-3.0.0.tar.gz
(4.5 kB
view details)
Built Distribution
File details
Details for the file tjcloud-3.0.0.tar.gz
.
File metadata
- Download URL: tjcloud-3.0.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.11.1 Linux/5.18.0-0.deb11.4-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fad6ef317f4135017d601e95dce8f8640bdee0a47388e22c26f267518674d51a |
|
MD5 | bea8eac27342218c04ad6632520eeb51 |
|
BLAKE2b-256 | 917f519fa98e6dbdd9b36801d3c7d7b6598f22b4c8e158e49d5b95f0be6dc7d9 |
File details
Details for the file tjcloud-3.0.0-py3-none-any.whl
.
File metadata
- Download URL: tjcloud-3.0.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.11.1 Linux/5.18.0-0.deb11.4-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8cd9cdee0737ebf2c56dd168d8ffa3143068101182536c822abfaefdb7ce75b |
|
MD5 | 378851fae28b6b0c809255b8bbaa78f0 |
|
BLAKE2b-256 | 0c05b253ccf9645d55242b22254e2f6175b37fb414344c89afd532e49a4563df |