diff --git a/_snippets/common-links.md b/_snippets/common-links.md index 7f56c62..1056733 100644 --- a/_snippets/common-links.md +++ b/_snippets/common-links.md @@ -75,4 +75,9 @@ [tfa-dex-static]: /docker-swarm/traefik-forward-auth/dex-static/ [tfa-google]: /docker-swarm/traefik-forward-auth/google/ [tfa-keycloak]: /docker-swarm/traefik-forward-auth/keycloak/ -[tfa]: /docker-swarm/traefik-forward-auth/ \ No newline at end of file +[tfa]: /docker-swarm/traefik-forward-auth/ +[elfhosted]: https://elfhosted.com +[elfhosted/apps]: https://elfhosted.com/app/ +[elfhosted/elfbot]: https://elfhosted.com/app/elfbot/ +[elfhosted/discord]: https://discord.elfhosted.com +[elfhosted/store]: https://dev.elfhosted.com \ No newline at end of file diff --git a/_snippets/what-is-elfhosted.md b/_snippets/what-is-elfhosted.md index aa8f404..713a260 100644 --- a/_snippets/what-is-elfhosted.md +++ b/_snippets/what-is-elfhosted.md @@ -2,4 +2,6 @@ ElfHosted is "self-hosting as a service" (*SHAAS?* ) - Using our [Kubernetes](/kubernetes/) / [GitOps](kubernetes/deployment/flux/design/) designs, we've build infrastructure and automation to run popular self-hosted apps (*think "Plex, Radarr, Mattermost.."*) and attach your own cloud storage ("bring-your-own-storage"). - We're at the rapid-prototyping phase currently, follow the progress on the [blog](/blog/tags/#elfhosted) or via the [#elfhosted](https://discord.com/channels/396055506072109067/1118645576884572303) channel in [Discord](https://chat.funkypenguin.co.nz). During "test mode" (*June 2023 - *), you can [sign up](https://dev.elfhosted.com) using "play money", and {--perform unpaid QA for me--} {++try it out for free++}! :thumbsup: \ No newline at end of file + We're building "in public", so follow the progress on the [blog](/blog/tags/#elfhosted) or in [Discord][elfhosted/discord]). During "test mode" (*June-July 2023*), you can [sign up](https://elfhosted.com) using "play money", and {--perform unpaid QA for me--} {++try it out for free++}! :thumbsup: + + TL;DR? Here's a guide to [getting started](https://elfhosted.com/how-to/get-started/), and another to [migrating](https://elfhosted.com/how-to/migrate/) from another provider. \ No newline at end of file diff --git a/docs/blog/posts/notes/elfhosted/elfhosted-status-update-june-2023.md b/docs/blog/posts/notes/elfhosted/elfhosted-status-update-june-2023.md new file mode 100644 index 0000000..4fd196c --- /dev/null +++ b/docs/blog/posts/notes/elfhosted/elfhosted-status-update-june-2023.md @@ -0,0 +1,130 @@ +--- +date: 2023-07-08 +categories: + - note +tags: + - elfhosted +title: Elf-Disclosure / June 2023 +description: Recent changes, stats, and plans for ElfHosted from June 2023 +--- + +# "Elf-Disclosure" for June 2023 + +It's been a month since [ElfHosted][elfhosted] was born! :baby: + +I've worked way **more** than I expected, and the work has been **harder** than I expected, but I've immensely enjoyed the challenge of building something **fast** and **in public**. + +What follows here are our recent changes, the current stats - time/money spent, revenue (haha), and lots of data / graphs re the current state of the platform. + + + +--8<-- "what-is-elfhosted.md" + +!!! warning "This post may not format nicely via RSS" + To make the amount of data presented below easier to parse, I've used mkdocs-material content tables to format / display data. This will probably not look good in a feed reader, so if what follows looks like a huge mess, view it in your browser instead! + +## What's new/next? + +=== ":material-calendar: June 2023" + + Here's what we achieved in June 2023 (*not an exhaustive list, there's only so much space!*): + + * [x] [Prod website][elfhosted] based on (*you guessed it!*) mkdocs-material (*look familiar?*) + * [x] HA, fault-tolerant K3s Kubernetes cluster (*3 servers, 3 agents, 3 ceph nodes*) + * [x] Dedicated CI environment for pre-testing infrastructure changes + * [x] BYO storage / VPN fully self-service when purchasing via the [store][elfhosted/store] + * [x] All previously supported Seedplicity [apps][elfhosted/apps] available [^5] + * [x] CLI tool (*[ElfBot][elfhosted/elfbot]*) for self-service app restarts, backups, resets + +=== ":dart: July 2023" + + Here's what's on the short-list for prioritization next: + + * [ ] Bring BYOVPN config to Deluge and ruTorrent + * [ ] Add new apps to support Premiumize + * [ ] Migrate to prod store, make bundles easier to manage + * [ ] Regular daily maintenance period for app updates / maintenance + * [ ] Load test with more users! + +## Stats + +Here's our stats, updated for June 2023: + +=== ":moneybag: Spent" + + :material-target: Focus | :material-calendar: June 2023 + ---------|---------- + :material-cow: Cluster | $428 + :material-cart: Store | $632 [^1] + :material-test-tube: CI | $208 + :material-cloud-cog: Cloud | $30 + :material-clock: Development | 146h / $21,900 [^2] + +=== ":nerd: Tech stats" + + :material-target: Focus | :material-calendar: June 2023 + ---------|---------- + :fontawesome-regular-circle-user: Users | 14 + :octicons-sign-in-16: Ingress | 24TB + :octicons-sign-out-16: Egress | 1TB [^4] + :material-dolphin: Pods | 478 + +=== ":bar_chart: Summary" + + :material-target: Focus | :material-calendar: June 2023 + ---------|---------- + :material-trending-down: Total invested thus far | $23,200 [^6] + :material-trending-up: Revenue | $0 + +## Resources + +=== ":material-cpu-64-bit: CPU" + + Most apps consume almost no CPU while idle - the larger consumers are streamers doing transcoding, and download clients doing download/unpack operations: + + ![CPU stats for June 2023](/images/blog/elf-cpu-stats-june-2023.png) + +=== ":material-memory: RAM" + + This graph represents memory usage across the entire cluster. By far the largest consumers of RAM are the storage platforms (longhorn and ceph): + + ![Memory stats for June 2023](/images/blog/elf-memory-stats-june-2023.png) + +=== ":material-server-network: Network" + + I'm not sure these stats are accurate, they've likely overly high because pods on the host network (like metallb, ceph, etc) will end up counting **all** traffic on each host, rather than the pod itself. This is an outstanding issue to fix! + + ![Memory stats for June 2023](/images/blog/elf-network-stats-june-2023.png) + +=== ":octicons-graph-16: Ingress/Egress" + + These are the traffic stats for egress from Hetzner. They exclude any traffic to/from Hetzner Storageboxes: + + ![Traffic stats for June 2023](/images/blog/elf-traffic-stats-june-2023.png) + +=== ":fontawesome-solid-cow: Longhorn" + + Longhorn provides RWX volumes for `/config`, and for some infrastructure components like Prometheus, Chartmuseum, etc. + + ![Longhorn stats for June 2023](/images/blog/elf-longhorn-stats-june-2023.png) + +=== ":simple-ceph: Ceph" + + Ceph provides optional storage ("ElfStorage"), typically used for long-term slow storage and seeding: + + ![Ceph stats for June 2023](/images/blog/elf-ceph-stats-june-2023.png) + +## Join us! + +!!! tip "Want to get involved?" + + Want to get involved? Join us in [Discord][elfhosted/discord] and come and test-in-production! + +[^1]: Much of this is yearly fees for Wordpress plugins +[^2]: Yes, that's a **lot**! This is the opportunity cost, over a month, of focusing on ElfHosted rather than billable consulting work! +[^3]: Total spend includes yearly payments for Wordpress plugins, etc +[^4]: Low egress is good, because ingress is always free, but Hetzner charges for egress after 20TB! +[^5]: Except Minio, which we're not bringing back! +[^6]: All moneyz are in US dollarz! + +--8<-- "blog-footer.md" \ No newline at end of file diff --git a/docs/images/blog/elf-ceph-stats-june-2023.png b/docs/images/blog/elf-ceph-stats-june-2023.png new file mode 100644 index 0000000..e5c8b3a Binary files /dev/null and b/docs/images/blog/elf-ceph-stats-june-2023.png differ diff --git a/docs/images/blog/elf-cpu-stats-june-2023.png b/docs/images/blog/elf-cpu-stats-june-2023.png new file mode 100644 index 0000000..efcd8c8 Binary files /dev/null and b/docs/images/blog/elf-cpu-stats-june-2023.png differ diff --git a/docs/images/blog/elf-io-stats-june-2023.png b/docs/images/blog/elf-io-stats-june-2023.png new file mode 100644 index 0000000..b9d6386 Binary files /dev/null and b/docs/images/blog/elf-io-stats-june-2023.png differ diff --git a/docs/images/blog/elf-longhorn-stats-june-2023.png b/docs/images/blog/elf-longhorn-stats-june-2023.png new file mode 100644 index 0000000..0f81c8c Binary files /dev/null and b/docs/images/blog/elf-longhorn-stats-june-2023.png differ diff --git a/docs/images/blog/elf-memory-stats-june-2023.png b/docs/images/blog/elf-memory-stats-june-2023.png new file mode 100644 index 0000000..f034072 Binary files /dev/null and b/docs/images/blog/elf-memory-stats-june-2023.png differ diff --git a/docs/images/blog/elf-network-stats-june-2023.png b/docs/images/blog/elf-network-stats-june-2023.png new file mode 100644 index 0000000..0e9f167 Binary files /dev/null and b/docs/images/blog/elf-network-stats-june-2023.png differ diff --git a/docs/images/blog/elf-traffic-stats-june-2023.png b/docs/images/blog/elf-traffic-stats-june-2023.png new file mode 100644 index 0000000..280a6f3 Binary files /dev/null and b/docs/images/blog/elf-traffic-stats-june-2023.png differ