Skip to content

Retire orphaned Django EB app (giten-site2) + decide fate of the ~55k-book catalog (static rebuild vs sunset) #102

Description

@rdhyee

Summary

The GITenberg web presence has effectively already moved to static/low-maintenance hostinggitenberg.org is now a WordPress site on a managed shared host. The old Django site in this repo (giten_site, the giten-site2 Elastic Beanstalk environment) is now an orphaned zombie: nothing in DNS points to it, all its routes are offline, yet it's still running — on the retired Amazon Linux 2 platform (the "AL2 retirement, deadline 2026-06-30" notices) and quietly costing money.

This issue captures the current state and proposes two clean decisions: (1) retire the dead EB app + RDS, and (2) decide whether the ~55k-book catalog / metadata API should be rebuilt as static, or sunset.

Investigated 2026-07-03 (read-only). No secrets in this write-up.


Current state (verified)

Content site — already static/low-maintenance ✅

  • gitenberg.org and www.gitenberg.org67.208.34.241 = WordPress / LiteSpeed on GreenGeeks (managed shared host, off AWS entirely). It's a single "Gitenberg Project" marketing page — no book catalog, no links to books.

Django app (giten_site) — orphaned zombie ❌

  • ry.gitenberg.org (the app's own subdomain in ALLOWED_HOSTS) no longer resolves — the EB app is out of the DNS path.
  • Every Django route 404s on the live WordPress site: /books, /search, /all_repos.txt, /books/<id>.json|yaml, /faq. The EB URL itself only 301-redirects. So the app's features — ~55,000-book catalog + title search + metadata API — are currently offline.
  • The app is Django 1.8.11 (~2015) — uses patterns/url + include(admin.site.urls), pre-1.10 syntax. Last real deploy 2025-04-30.

AWS footprint still running (FEF-master account, us-east-1):

Resource Detail
EB env giten-site2-dev3 (app giten_site2) — Status Ready / Health Green right now
Platform Python 3.8 on 64bit Amazon Linux 2 v3.8.0 — the retired AL2 platform (deadline 2026-06-30)
EC2 t3a.micro (i-00c6887dad2339f54, up since 2025-03-29)
Load balancer 1× Application Load Balancer (awseb-AWSEB-QAP8XHEM27XZ) — the biggest cost line
RDS aaptgauwoocjjjdb.t3.micro Postgres, available, created 2022-04-21 (the Book catalog DB)

Rough idle cost ≈ $35–45/month (ALB + RDS + instance + EBS) for something serving no traffic — plus the maintenance/security liability of an EOL platform and the recurring health/retirement alerts.

What the app actually is (why staticizing is easy)

The entire dynamic surface is one Book table (gitensite/apps/bookinfo/models.py): book_id, repo_name, title, language, yaml. Its source of truth is the GITenberg GitHub metadata — each book repo's metadata.yaml loaded via gitenberg.metadata.Pandata. The Postgres table is just a cache; the catalog is regenerable from GitHub.

Routes (gitensite/urls.py):

  • /, /faq, /get-involved, /license, /newsletter/<n> → already static TemplateViews (no data).
  • /books, /searchSearchView: lists Book, optional ?q=title__icontains. That's the whole "search."
  • /all_repos.txt → dump of book_id\trepo_url.
  • /books/<id>.json|yaml → per-book metadata.

Catalog scale ≈ 55,312 books (assets/GITenberg_repos_list_2.tsv).

Decision 1 — Retire the orphaned EB app + RDS

Nothing points to it; features are offline; platform is retired. Retiring it ends the alerts, the AL2 deadline, and the ~$35–45/mo.

  • Preserve first: dump the RDS Book table (or confirm the catalog is fully re-derivable from GitHub) and snapshot the RDS before teardown.
  • Then terminate the EB environment (removes EC2 + ALB + ASG) and delete/snapshot the RDS.

Decision 2 — Catalog + metadata API: rebuild static, or sunset?

It's currently offline, so "do nothing" = permanent sunset. If it should live on, it's trivially static (this is the actual "archive mode" work, and it's small):

  • Content pages → static HTML (or fold into the WordPress site).
  • /books + search → one pre-generated static JSON index (~55k rows) + client-side search (Pagefind/Lunr). title__icontains maps directly to client-side filtering.
  • /all_repos.txt + /books/<id>.json|yaml → generated static files, regenerated from GitHub metadata via a scheduled GitHub Action.
  • Host on S3 + CloudFront (the stated preference, "like the EbookFoundation site") or GitHub Pages (org is already on GitHub).

Why GITenberg is a good "archive-mode" pilot

It's ~80% done already (content site is off AWS). The only live questions are "retire the zombie" (clearly yes) and "resurrect the catalog as static or let it stay gone?" — a small, low-stakes decision that also clears a standing alert. Much more concrete than speculating about archive mode on unglue.it.

Access note

The AWS inventory above was read-only from the FEF-master account. Teardown (Decision 1) and any S3/CloudFront hosting (Decision 2) are also in that account — coordinate access accordingly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions