ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
Shanraq.org — независимая площадка на трёх языках: разборы об экономике и обществе, бесплатные курсы программирования Go и Python, объявления о недвижимости.
교육Python · GoGitHub @DauletBai온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Censorship-resistant, trilingual (KZ/RU/EN) publishing platform + real-estate classifieds for Kazakhstan. Go 1.26, PostgreSQL, self-hostable.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A censorship-resistant, trilingual publishing, teaching & classifieds platform for Kazakhstan.
Independent journalism, free programming courses and real-estate listings — in Kazakh, Russian and English — under one roof.README 전문 보기 ↗Shanraq (shanraq.org) is a modular Go platform that fuses three things regional media has always kept apart: trustworthy local journalism, free technical courses written in Kazakh as a first language, and a modern classifieds marketplace (real estate first, autos and more to come). It is built to keep reaching readers even when a single channel is blocked — through automatic syndication to Telegram and RSS — and to run three languages as one publication, not three separate sites.
The name refers to the shanyrak — the crown of the Kazakh yurt — the living centre that holds the whole roof together.
hreflang, sitemaps and JSON-LD.course/lessons/; Rust examples and exercise answers are checked on Windows, macOS and Linux. Lessons belong to course contents and are excluded from the main article feed. See the Rust publication procedure./weather/kachar): conditions now, an hourly chart for two days, the chance of rain, and the week ahead. A reader who told their profile where they live is taken to their own town. Every day of publishing has an address too (/archive/2026-08-25), and both feed the sitemap./predictions, misses included; the score is allowed to go down.llms.txt that offers assistants only the human-written work.| Layer | Choice |
|---|---|
| Language | Go 1.26 (modular monolith) |
| Database | PostgreSQL 16 via pgxpool, embedded Goose migrations |
| Web | Server-rendered html/template, progressive enhancement |
| Config | Viper — typed, env-first (SHANRAQ_*), no secrets in git |
| Observability | Zap structured logging, Prometheus metrics, health/readiness probes |
| Delivery | Docker Compose + Caddy (automatic HTTPS) on a single VPS |
| AI | Anthropic Claude (optional, provider-agnostic) |
git clone https://github.com/DauletBai/shanraq.org.git
cd shanraq.org
cp .env.example .env
# edit .env: POSTGRES_PASSWORD, DOMAIN, SHANRAQ_PUBLIC_BASE_URL,
# SHANRAQ_AUTH_TOKEN_SECRET (>=32 random chars), operator details.
docker compose -f docker-compose.prod.yml up -d --build
Migrations run on first boot; only Caddy is exposed publicly, and it fetches a TLS
certificate automatically. Secrets live only in .env (git-ignored) — in
environment=production the app refuses to start with a weak token secret or a
non-HTTPS base URL. Full guide: docs/DEPLOYMENT.md.
Local development:
make run # start the app
make test # unit tests
make smoke # smoke test
A single Go binary composed of independent modules that implement the
shanraq.Module contract (init / start / routes):
articles · shop · payments · auth · ai · media · syndicate · notifier · jobs · ratings · migrations
Each module wires its own routes, migrations, and background workers, so features compose without a service mesh.
pkg/site is the page frame every module shares: the three languages, the UI
dictionary, the header, the aside, the footer, and one template set that modules
add their own pages to. The dependency points one way — a module knows about the
frame, the frame knows nothing about a module, and a test parses the frame with
no module registered to keep it that way.
A new subject is a new module. pkg/modules/articles grew to 171 files
because every new thing the site did was added beside the last one; a test now
holds it to a ceiling that can only be lowered. Something with its own tables,
its own pages and its own vocabulary belongs in a package with its own name.
See docs/ for the configuration reference, module guides, and deployment runbook.
SHANRAQ_* setting./docs on a running instance.Secrets never live in the repository — configuration is env-first and .env is
git-ignored. To report a vulnerability, see SECURITY.md
(please do not open a public issue for security reports).
Live in production at shanraq.org. Releases follow Semantic Versioning; see CHANGELOG.md.
VERSION is the single release decision. At a project milestone, update it and
its matching CHANGELOG section, let main pass CI, then run the Release
workflow manually. It creates the annotated tag and GitHub Release; ordinary
content commits do not cut releases. Re-running it is safe.
Two licences, because the platform and what is taught on it are different things.
The platform is proprietary — all rights reserved. The source is published for transparency and review; it is not open-source and may not be used, deployed, or redistributed without written permission. See LICENSE.
The course materials are open. Lesson texts and lesson maps under
web/static/course/ are CC BY 4.0; the code examples printed inside the
lessons are MIT. A course whose examples may not be run teaches nothing, so
they are released on terms that let a reader copy, run and adapt them. See
LICENSE-COURSE.
For partnership or commercial-use inquiries: [email protected].