explaingit

jiuwovo-ai/xiaopingguo

Analysis updated 2026-05-18

57PythonAudience · ops devopsComplexity · 4/5LicenseSetup · hard

TLDR

A self-hosted Flask and PostgreSQL tool for securely managing many email accounts through Microsoft Graph, including bulk import and verification code extraction.

Mindmap

mindmap
  root((xiaopingguo))
    What it does
      Manages email accounts
      Reads mail via Graph API
      Extracts verification codes
    Tech stack
      Flask
      PostgreSQL
      Microsoft Graph
    Use cases
      Bulk account management
      Verification code retrieval
      Self hosted email tool
    Audience
      System administrators
      Automation teams
    Setup
      Configure PostgreSQL
      Set secret keys
      Deploy with Caddy

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Bulk import and manage a large number of email accounts through one admin tool

USE CASE 2

Automatically extract verification codes from incoming emails on managed accounts

USE CASE 3

Detect and track OpenAI account verification emails sent to managed mailboxes

USE CASE 4

Self-host a mailbox management tool with encrypted credential storage instead of using a third-party service

What is it built with?

PythonFlaskPostgreSQLMicrosoft Graph APICaddyGunicorn

How does it compare?

jiuwovo-ai/xiaopingguodexmal/opendwhexsecteam/droidhunter
Stars575757
LanguagePythonPythonPython
Setup difficultyhardhardhard
Complexity4/55/54/5
Audienceops devopsresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires PostgreSQL, Microsoft OAuth setup, and generating multiple secret keys before it runs.

GPL-3.0: free to use and modify, but if you distribute a modified version you must also release its source code under the same license.

In plain English

xiaopingguo, whose name means little apple in Chinese, is a self hosted tool for managing a large number of email accounts. It is built with Flask and PostgreSQL on the backend and reads mail through Microsoft's OAuth login and Graph API rather than storing raw email passwords in plain text. The README, written in Chinese, describes it as security focused, keeping account credentials on the server rather than in the browser. The main features let an administrator bulk import, view, update, delete, and stream export a list of email accounts. Passwords and OAuth refresh tokens for those accounts are stored encrypted, and the account list shown to a user only includes non sensitive details rather than the credentials themselves. The tool can read mail from these accounts, pull out verification codes, and detect messages from OpenAI's domain related to account verification. Security measures listed include database backed sessions, strict cookie settings, same origin checks, protection against cross site request forgery, and rate limiting on failed logins. The recommended production setup runs the Caddy web server in front of the app to handle HTTPS and security headers, with the actual Flask application run through Gunicorn listening only on the local loopback address rather than being exposed directly to the internet. Mailbox credentials are encrypted with a key called Fernet before being saved to PostgreSQL. Setting it up requires Python 3.12 or 3.13, PostgreSQL 17, and Node.js for the frontend tests, plus generating several secret keys for session handling, access control, and credential encryption. The README includes detailed instructions for running it as a systemd service under a dedicated non login system user, along with a backup process using pg_dump and a warning that losing the credential encryption key means the stored mailbox credentials cannot be recovered. This is a tool for someone who needs to manage many email accounts at once, likely for automated verification code retrieval, rather than a personal single inbox client. It is released under the GNU General Public License version 3.

Copy-paste prompts

Prompt 1
Help me translate the xiaopingguo README's setup instructions from Chinese into an English checklist
Prompt 2
Explain how xiaopingguo encrypts and stores email account credentials in PostgreSQL
Prompt 3
Walk me through deploying xiaopingguo as a systemd service behind Caddy
Prompt 4
Show me how to generate the ACCESS_PASSWORD, SESSION_SECRET, and CREDENTIALS_ENCRYPTION_KEY values this project needs

Frequently asked questions

What is xiaopingguo?

A self-hosted Flask and PostgreSQL tool for securely managing many email accounts through Microsoft Graph, including bulk import and verification code extraction.

What language is xiaopingguo written in?

Mainly Python. The stack also includes Python, Flask, PostgreSQL.

What license does xiaopingguo use?

GPL-3.0: free to use and modify, but if you distribute a modified version you must also release its source code under the same license.

How hard is xiaopingguo to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is xiaopingguo for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.