factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Repository Overview
Like all cool websites, arc42 has a status-subdomain, showing usage- and repo statistics for its domains and subdomains.
This is a multi-repo, and the directories are organized as follows:
We use make (Makefile, see ADR-0020) as the single entry point for development, database schema management, testing, and deployment:
This site runs as two processes during local development:
make site (aliased as make dev) loads docs/_config.dev.yml, pointing the static site to the local backend. The deployed site uses _config.yml (pointing to Fly.io).README 전문 보기 ↗Like all cool websites, arc42 has a status-subdomain, showing usage- and repo statistics for its domains and subdomains.
This is a multi-repo, and the directories are organized as follows:
| Static Jekyll Site | Documentation | Statistic service (Go app) |
|---|---|---|
| /docs | /documentation | /go-app |
| Jekyll/Github-pages based static website. | arc42-based technical documentation, created with docToolchain. | Cloud-based statistics service written in Golang |
We use make (Makefile, see ADR-0020) as the single entry point for development, database schema management, testing, and deployment:
This site runs as two processes during local development:
make backend # terminal 1: run the Go statistics service on :8043
make site # terminal 2: run the Jekyll dev server on :4046
make doctor # verify setup health (Docker, Go, flyctl, Atlas, secrets, ports)
make help # show all available make targets
make site (aliased as make dev) loads docs/_config.dev.yml, pointing the static site to the local backend. The deployed site uses _config.yml (pointing to Fly.io).
The Jekyll dev server serves on 4046, not Jekyll's default 4000, so it can
run alongside the other arc42 sites' dev servers without a clash — see
raw/port-assignment.md in meta.arc42.org for the full assignment. Jekyll binds
4046 inside the container as well as on the host, so its "Server address:"
startup banner names the real port. Three places must stay in step: SITE_PORT
in the Makefile, the mapping plus --port in docs/docker-compose.yml, and
EXPOSE/CMD in docs/Dockerfile. The Go backend keeps 8043 — that is
this repo's own second port, not part of the site assignment.
The backend requires go-app/set-api-keys.sh, created from template:
cp go-app/set-api-keys.sh.template go-app/set-api-keys.sh
/registrations on the service is for people with push access to
arc42/status.arc42.org-site only (ADR-0022). To use it locally:
http://localhost:4046, authorization callback URL
http://localhost:8043/auth/callback.go-app/set-api-keys.sh, together with
SESSION_KEY (openssl rand -base64 32) and PUBLIC_BASE_URL=http://localhost:8043
(see set-api-keys.sh.template).make backend, then open http://localhost:8043/registrations.Production uses a second OAuth App with callback https://arc42-stats.fly.dev/auth/callback;
its values are fly secrets (make fly-secrets lists them). Without the login variables
/registrations answers 503. Locally the site's web fonts may not load on the page, because the
Jekyll dev server sends no CORS headers for them. Set the fly secrets before merging to
main, because that merge deploys the service.
Database schemas for both local SQLite (~/arc42-stats-dev.db) and production TursoDB (libsql://...) are declaratively managed with Atlas (ADR-0013):
make db-apply-dev # Apply schema.hcl to local development SQLite DB
make db-apply-prod # Apply schema.hcl to production TursoDB
make db-diff-dev # Dry-run / diff schema against local dev DB
make db-diff-prod # Dry-run / diff schema against production TursoDB
make db-validate # Validate schema syntax against an in-memory DB
make db-shell-dev # Open interactive sqlite3 shell on local dev DB
Availability is measured by an external cron trigger (cron-job.org, every ~15 minutes, ADR-0019) calling the secure POST /api/probe endpoint on the Go backend service, which writes availability records into TursoDB. Locally: make db-apply-dev once, then make probe.
The backend Go app is hosted on Fly.io (ADR-0008). Manage deployments directly via make:
make fly-deploy # Deploy backend Go service to Fly.io
make fly-status # Show status of Fly.io app and machines
make fly-logs # Tail live production logs from Fly.io
make fly-ssh # Open SSH console session on running Fly.io instance
make fly-secrets # List secrets configured on Fly.io
make build # Compile the Go service to go-app/arc42-status
make test # Run Go unit tests
make lint # Run golangci-lint over the Go code
The site carries a semantic version, shown in its footer beside the commit and
date of the deploy that built it. It lives in version in docs/_config.yml
and is raised by hand. The Go statistics service versions itself separately —
that history is in go-app/main.go.
| Version | What it marks |
|---|---|
| 2.2.4 | Current release. |
| 2.x | Reworked user interface, and the backend rewritten. |
| 1.5.x | The Go statistics service, running on fly.io. |
| 1.0.0 | The static site on its own — no backend at all, before fly.io. |
Upcoming features and are planned with a GitHub project
This work is actively supported by INNOQ Deutschland GmbH.
This content is provided as-is, without any guarantees. It is open-source under the Creative-Commons-ShareAlike 4.0 licence:
Created 2023 by Dr. Gernot Starke and contributors.