Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Two Packages, One Server: Metadata CSVs, Covers and PDFs for 39 Products

Description and use

An automated toolkit that generates platform‑specific CSV headers, tracks uploads, converts Markdown to styled PDFs, creates covers and thumbnails, and packages assets into ZIPs, enabling the successful publication of 39 products on a single‑core, 2 GB RAM server.

Problem

Rejections from stock platforms due to incorrect CSV headers and duplicate uploads caused wasted time and effort.

Outcome

Produced 39 compliant product packages (856 MB) on a 1 vCPU, 2 GB server, eliminating manual errors and duplicate uploads.

Workflow

  • Generate metadata CSV with make_metadata.py specifying platform and file extensions
  • Supply real titles and keywords via titles.json if needed
  • Track pending uploads with upload_tracker.py pending items.txt
  • Mark items as done with upload_tracker.py done "asset-001.jpg"
  • Check status with upload_tracker.py status
  • Convert Markdown documentation to PDF using md2pdf.py content.md product.pdf "My Product Title"
  • Package product assets, cover, and thumbnail into a zip with pack_product.py my-product "My Product" "A short subtitle" 9
  • Use environment variable PACK_ROOT or --dir to control output location
  • Run entire pipeline on a single-core server, ensuring one process at a time, freeing memory with gc.collect(), measuring peak RSS, isolating heavy renders in subprocesses, and rendering at required resolution

Evidence

One column was out of order in the CSV. That's it.

Source

I built one script, make_metadata.py, that writes the exact header each platform demands and nothing else.

Source

It remembers what you posted: python upload_tracker.py pending items.txt ... python upload_tracker.py done "asset-001.jpg"

Source

md2pdf.py turns a Markdown file into a clean styled PDF with headings, tables, lists and links

Source

pack_product.py zips the files and renders two images: a cover at 1280×720 and a thumbnail at 600×600.

Source

The full pipeline produced 39 products, 856 MB of output, from a single-core server with no GPU.

Source

  • Record date: 2026-10-24T14:41:08.853Z