radamic/radamic.github.io

GitHub: radamic/radamic.github.io

攻击性安全机构 radamic 的静态官方网站,基于 Astro 6 构建,以零 JavaScript、零追踪器为品牌核心隐私姿态。

Stars: 0 | Forks: 0

# radamic.com [![部署](https://static.pigsec.cn/wp-content/uploads/repos/cas/b8/b810711b4925b8ee5fb854ba540557717565270abe528ed5586124c80571b72b.svg)](https://github.com/radamic/radamic.github.io/actions/workflows/deploy.yml) [![网站](https://img.shields.io/badge/site-radamic.com-be6069)](https://radamic.com) [![使用 astro 构建](https://img.shields.io/badge/built%20with-astro%206-191c23)](https://astro.build) **radamic** 的公开营销网站 —— 一家提供红队行动、对手模拟、漏洞利用开发以及安全研究的攻击性安全机构。 该网站是一个静态渲染的单页落地页。根据设计,它**不含任何客户端 JavaScript、追踪器或分析工具**;这种姿态是品牌定位中刻意的组成部分,在任何更改中都必须予以保留(参见 [安全与隐私姿态](#security--privacy-posture))。 - **生产环境:** - **托管:** GitHub Pages (静态) - **所有者:** radamic - `contact@radamic.com` - **构建与维护者:** prodrom3 - **状态:** 生产环境 ## 目录 - [技术栈](#tech-stack) - [前置条件](#prerequisites) - [快速开始](#quick-start) - [可用脚本](#available-scripts) - [项目结构](#project-structure) - [编辑内容](#editing-content) - [构建与部署](#build--deployment) - [安全与隐私姿态](#security--privacy-posture) - [编码规范](#coding-conventions) - [质量门禁](#quality-gates) - [浏览器支持](#browser-support) - [贡献](#contributing) - [许可证](#license) ## 技术栈 | 关注点 | 选择 | | ------------- | --------------------------------------------------- | | 框架 | [Astro 6](https://astro.build) (静态输出) | | 样式 | 通过 Vite 的 [Tailwind CSS v4](https://tailwindcss.com) | | 语言 | TypeScript (严格模式), Astro 组件 | | 字体 | JetBrains Mono | | 托管 / CI | GitHub Pages + GitHub Actions | | 运行时 (开发环境) | Node.js `>= 22.12.0` | ## 前置条件 - **Node.js `>= 22.12.0`**(参见 `package.json` 中的 `engines`)。使用版本管理器(如 `nvm`、`fnm` 或 `mise`)来固定版本。 - **npm**(随 Node 附带)。该仓库提交了 `package-lock.json`;使用 `npm ci` 进行可重复的安装。 ## 快速开始 ``` git clone git@github.com:radamic/radamic.github.io.git cd radamic.github.io npm ci # reproducible install from the lockfile npm run dev # http://localhost:4321 ``` ## 可用脚本 | 脚本 | 描述 | | ----------------- | ------------------------------------------------- | | `npm run dev` | 在 `localhost:4321` 启动开发服务器 | | `npm run build` | 进行类型检查并将静态站点构建到 `./dist` 目录 | | `npm run preview` | 在本地预览生产构建 | | `npm run astro` | 直接运行 Astro CLI | ## 项目结构 ``` .github/workflows/deploy.yml CI: build + deploy to GitHub Pages on push to main astro.config.mjs site URL, sitemap + Tailwind (Vite) plugin public/ copied verbatim to the site root CNAME custom-domain pin (radamic.com) robots.txt, og.png SEO + social share assets .well-known/security.txt RFC 9116 security contact favicon.svg, favicon.ico src/ layouts/Layout.astro page shell: head, meta/OG tags, JSON-LD, fonts components/ hero, about, capabilities, work, trust, contact, header, footer pages/index.astro single-page composition styles/global.css Tailwind v4 entry + theme tokens tsconfig.json extends astro/tsconfigs/strict ``` ## 编辑内容 该页面由 `src/components/` 中的各个部分组件组成,并在 `src/pages/index.astro` 中进行组装。大部分文案位于渲染该组件的文件中: - **Hero 标题 / 定位** - `src/components/Hero.astro` - **关于 / 公司事实** - `src/components/About.astro` - **能力** - `src/components/Capabilities.astro` 顶部的 `capabilities` 数组 - **精选工作** - `src/components/Work.astro` 顶部的 `work` 数组 - **联系详情 / PGP / 范围** - `src/components/Contact.astro` - **全局 `` 和 meta 描述** - `Layout.astro` 的 prop 默认值 主题颜色、字体和终端美学以 CSS 自定义属性的形式集中管理,位于 `src/styles/global.css`(`@theme` 块)中。请在此处修改 token,而不要在组件中硬编码颜色。 ## 构建与部署 部署是自动化的。任何向 `main` 分支的推送都会触发 [`.github/workflows/deploy.yml`](.github/workflows/deploy.yml),该工作流会: 1. 检出仓库并使用 `npm ci` 安装 (Node 22)。 2. 运行 `npm run build` 生成 `./dist`。 3. 上传构建产物并将其发布到 GitHub Pages。 该工作流使用最小权限(`contents: read`、`pages: write`、`id-token: write`)以及 `concurrency` 来取消已被取代的运行。自定义域名通过 `public/CNAME` 固定;请勿删除该文件,否则域名映射将在下次部署时失效。 **回滚:** 回退 `main` 分支上的问题提交(或者通过 *Actions > deploy > Run workflow* 从已知良好的提交重新运行工作流)。没有单独的 staging 环境 —— 在合并前请使用 `npm run build && npm run preview` 在本地进行验证。 ## 安全与隐私姿态 这是一家安全公司的公开网站;因此该仓库也受到相应的对待。 - **无第三方运行时脚本、追踪器或分析工具。** 必须保持这一点。任何引入标签管理器、分析信标或外部脚本的 PR 都应被拒绝,除非有经签字批准的合理理由。 - **仓库中无任何机密。** 这是一个静态营销网站 —— 绝不能包含凭证、内部工具、客户数据、服务记录或 API 密钥。CI 不需要任何这些内容。 - **无第三方运行时请求。** 网络字体通过 `@fontsource-variable/jetbrains-mono` 进行自托管;没有外部字体、脚本或 CDN。不要重新引入任何这些内容(这会泄露访客 IP 并违背无追踪的承诺)。 - **依赖项:** 保持最小攻击面。在升级依赖项时审查 `npm audit`;欢迎针对 Astro、Tailwind 和 Vite 的 Dependabot/renovate 更新。 - **披露:** 安全联系方式和政策发布在 `/.well-known/security.txt` (`security@radamic.com`;PGP 密钥位于 `/pgp.txt`)。 ## 编码规范 - **组件是展示性和静态的。** 优先使用服务端渲染的 Astro,并且零客户端 JS。如果确实需要交互性,请说明理由,并确保它是渐进增强的。 - **使用 theme token 进行样式设计。** 引用在 `global.css` 中定义的 CSS 自定义属性,而不是在标记中使用字面十六进制值。 - **TypeScript 严格** 模式通过 `astro/tsconfigs/strict` 启用;保持构建的类型整洁。 - **无障碍性是一项必要门禁,而不是可有可无的修饰** —— 语义化的 landmark、聚焦状态以及 WCAG AA 对比度(参见 [质量门禁](#quality-gates))。 ## 质量门禁 在合并到 `main` 之前,更改应: - 干净地构建:`npm run build`(类型错误时会失败)。 - 在移动端和桌面端宽度下正确预览:`npm run preview`。 - 保持零 JS / 无追踪器的姿态。 - 维持 WCAG 2.1 AA 颜色对比度和键盘可操作性。 - 不能导致 Lighthouse 分数倒退(目标:静态页面上达到 100 / 100 / 100 / 100)。 ## 浏览器支持 现代常青浏览器(Chrome、Edge、Firefox、Safari 的最新 2 个版本)以及移动端 Safari/Chrome。不支持 IE11。 ## 贡献 内部贡献者: 1. 从 `main` 分支切出新分支(`feat/...`、`fix/...`、`content/...`)。 2. 进行更改;在本地运行 `npm run build`。 3. 打开一个 PR,提供简短描述以及针对视觉更改的前后对比上下文。 4. 合并到 `main` 会部署到生产环境 —— 请相应地进行审查。 ## 许可证 本仓库中的站点**代码**根据 [`LICENSE.txt`](LICENSE.txt) (知识共享署名 3.0) 的条款提供。**radamic** 的名称、文字商标、品牌资产以及站点文案是专有的,**不**受该许可证的涵盖。</div><div><strong>标签:</strong>Astro, GitHub Pages, MITM代理, Tailwind CSS, TypeScript, 企业官网, 安全插件, 暗色界面, 静态网站</div></article></div> <!-- 人机验证 --> <script> (function () { var base = (document.querySelector('base') && document.querySelector('base').getAttribute('href')) || ''; var path = base.replace(/\/?$/, '') + '/cap-wasm/cap_wasm.min.js'; window.CAP_CUSTOM_WASM_URL = new URL(path, window.location.href).href; })(); </script> </body> </html>