{"id":32479843,"url":"https://github.com/zkemail/archive","last_synced_at":"2026-07-15T10:32:01.197Z","repository":{"id":301385372,"uuid":"994571892","full_name":"zkemail/archive","owner":"zkemail","description":"WIP V2 of the DKIM Archive.","archived":false,"fork":false,"pushed_at":"2026-06-04T11:28:20.000Z","size":6141,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T13:13:01.190Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zkemail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-02T06:32:04.000Z","updated_at":"2026-06-04T11:20:08.000Z","dependencies_parsed_at":"2025-06-26T16:26:51.012Z","dependency_job_id":"a545b07d-80ed-4136-be30-84f7351bd1b9","html_url":"https://github.com/zkemail/archive","commit_stats":null,"previous_names":["zkemail/archive"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zkemail/archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkemail%2Farchive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkemail%2Farchive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkemail%2Farchive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkemail%2Farchive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zkemail","download_url":"https://codeload.github.com/zkemail/archive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkemail%2Farchive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35501662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-15T02:00:06.706Z","response_time":131,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-27T01:28:07.913Z","updated_at":"2026-07-15T10:32:01.191Z","avatar_url":"https://github.com/zkemail.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![DKIM Archive Logo](./public/Vector.png)\n\n**Public archive and search engine for DKIM (DomainKeys Identified Mail) records. This is designed to help users discover, contribute, and verify email authentication keys with web UI and over API.**\n\n## **Overview**\n\n`archive` provides a comprehensive solution for managing DKIM records. Users can:\n\n- **Discover DKIM public keys:** Access a searchable database of DKIM keys for various domains via a web interface and a programmatic API.\n- **Contribute DKIM signatures:** Submit DKIM signatures from multiple sources, including integrated Gmail accounts or by uploading mailbox files (`.mbox`/`.pst`).\n- **Verify Authenticity:** Ensure the integrity and active timeframe of DKIM keys, with records timestamped on-chain using TLSNotary for robust verification.\n\n## **Getting Started**\n\nThese instructions will guide you through setting up the project on your local machine for development and testing.\n\n### **Prerequisites**\n\n- Node.js (LTS version recommended)\n- `pnpm` (recommended), `npm`, or `yarn`\n- A running PostgreSQL server instance\n- Access to Google Cloud Platform (GCP) for Cloud Function deployment (required for full functionality)\n\n### **Installation**\n\n1. **Clone the repository:**\n   ```\n   git clone https://github.com/zkemail/archive\n   cd archive\n   ```\n2. **Install dependencies:**\n\n   ```\n   pnpm install\n   # or npm install\n   # or yarn install\n   ```\n\n3. Set up environment variables:\n   Copy the example environment file and customize it with your configurations:\n\n   ```\n   cp .env.example .env\n   ```\n\n   Key variables to configure:\n   - `POSTGRES_PRISMA_URL`: Your PostgreSQL connection string for Prisma.\n   - `POSTGRES_URL_NON_POOLING`: Direct PostgreSQL connection string (used for migrations, etc.).\n   - `GOOGLE_CLIENT_ID` \u0026 `GOOGLE_CLIENT_SECRET`: Credentials for Gmail OAuth integration via NextAuth.js.\n   - `NEXTAUTH_URL`: The canonical URL of your deployment (e.g., `http://localhost:3000` for local development).\n   - `NEXTAUTH_SECRET`: A secret key for NextAuth.js session encryption.\n   - API keys or endpoint URLs for GCP Cloud Functions and other external services, if applicable.\n\n4. **Run Prisma migrations** to initialize your database schema:\n\n   ```\n   pnpm prisma migrate dev\n   # or npx prisma migrate dev\n   ```\n\n5. **(Optional) Seed the database** with initial data if a seed script is available:\n\n   ```\n   pnpm prisma db seed\n   # or npx prisma db seed\n   ```\n\n### **Running the Development Server**\n\nTo start the Next.js development server:\n\n```\npnpm run dev\n# or npm run dev\n# or yarn dev\n```\n\nThe application will typically be available at [http://localhost:3000](http://localhost:3000/ 'null') (or your configured port).\n\n## **Tech Stack**\n\n- **Framework:** [Next.js](https://nextjs.org/ 'null') (with App Router)\n- **Language:** [TypeScript](https://www.typescriptlang.org/ 'null')\n- **UI Components:** [Shadcn/ui](https://shadcn.com/ui 'null')\n- **Styling:** [Tailwind CSS](https://tailwindcss.com/ 'null')\n- **Database:** [PostgreSQL](https://www.postgresql.org/ 'null')\n- **ORM:** [Prisma](https://www.prisma.io/ 'null')\n- **Authentication:** [NextAuth.js](https://next-auth.js.org/ 'null') (for Gmail integration)\n- **Serverless Functions:** GCP Cloud Functions (e.g., for Python/C++ based GCD)\n- **Linting/Formatting:** ESLint, Prettier\n- **Git Hooks:** Husky\n\n## **High-Level Architecture**\n\nThe system is structured as follows:\n\n1. **Next.js Application:**\n   - **Frontend:** User interface built with React/Next.js and Shadcn/ui components.\n   - **API Routes:** Backend logic handling DKIM lookups, submissions, Gmail integration, and communication with the GCP Cloud Function.\n2. **Database Layer:**\n   - **PostgreSQL:** Stores DKIM records, domain-selector pairs, metadata, and GCD results.\n   - **Prisma:** ORM for database interactions.\n3. **GCP Cloud Function:**\n   - A serverless function dedicated to computationally intensive tasks, such as GCD calculations for DKIM key recovery.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkemail%2Farchive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzkemail%2Farchive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkemail%2Farchive/lists"}