feat: 品牌升级为墨木灵思,优化 UI 并配置 Docker 部署
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# ==========================================
|
||||
# MuMuAINovel 配置文件示例
|
||||
# 墨木灵思 配置文件示例
|
||||
# ==========================================
|
||||
# 复制此文件为 .env 并修改配置值
|
||||
# cp .env.example .env
|
||||
@@ -7,7 +7,7 @@
|
||||
# ==========================================
|
||||
# 应用配置
|
||||
# ==========================================
|
||||
APP_NAME=MuMuAINovel
|
||||
APP_NAME=墨木灵思
|
||||
APP_VERSION=1.4.8
|
||||
APP_HOST=0.0.0.0
|
||||
APP_PORT=8000
|
||||
@@ -106,7 +106,7 @@ SMTP_PASSWORD=your-qq-smtp-auth-code
|
||||
SMTP_USE_TLS=false
|
||||
SMTP_USE_SSL=true
|
||||
SMTP_FROM_EMAIL=your-email@qq.com
|
||||
SMTP_FROM_NAME=MuMuAINovel
|
||||
SMTP_FROM_NAME=墨木灵思
|
||||
EMAIL_AUTH_ENABLED=true
|
||||
EMAIL_REGISTER_ENABLED=true
|
||||
EMAIL_VERIFICATION_CODE_TTL_MINUTES=10
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Alembic Database Migration Profile - PostgreSQL
|
||||
# Database version management for the MuMuAINovel project
|
||||
# Database version management for the 墨木灵思 project
|
||||
|
||||
[alembic]
|
||||
# Migration Script storage directory (PostgreSQL)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Alembic Database Migration Profile - SQLite
|
||||
# Database version management for the MuMuAINovel project
|
||||
# Database version management for the 墨木灵思 project
|
||||
|
||||
[alembic]
|
||||
# Migration Script storage directory (SQLite)
|
||||
|
||||
@@ -28,7 +28,7 @@ def upgrade() -> None:
|
||||
op.add_column('settings', sa.Column('smtp_use_tls', sa.Boolean(), server_default='0', nullable=False, comment='是否启用 TLS'))
|
||||
op.add_column('settings', sa.Column('smtp_use_ssl', sa.Boolean(), server_default='1', nullable=False, comment='是否启用 SSL'))
|
||||
op.add_column('settings', sa.Column('smtp_from_email', sa.String(length=255), nullable=True, comment='发件人邮箱'))
|
||||
op.add_column('settings', sa.Column('smtp_from_name', sa.String(length=255), server_default='MuMuAINovel', nullable=False, comment='发件人名称'))
|
||||
op.add_column('settings', sa.Column('smtp_from_name', sa.String(length=255), server_default='墨木灵思', nullable=False, comment='发件人名称'))
|
||||
op.add_column('settings', sa.Column('email_auth_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱认证'))
|
||||
op.add_column('settings', sa.Column('email_register_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱注册'))
|
||||
op.add_column('settings', sa.Column('verification_code_ttl_minutes', sa.Integer(), server_default='10', nullable=False, comment='验证码有效期(分钟)'))
|
||||
|
||||
@@ -35,7 +35,7 @@ def upgrade() -> None:
|
||||
batch_op.add_column(sa.Column('smtp_use_tls', sa.Boolean(), server_default='0', nullable=False, comment='是否启用 TLS'))
|
||||
batch_op.add_column(sa.Column('smtp_use_ssl', sa.Boolean(), server_default='1', nullable=False, comment='是否启用 SSL'))
|
||||
batch_op.add_column(sa.Column('smtp_from_email', sa.String(length=255), nullable=True, comment='发件人邮箱'))
|
||||
batch_op.add_column(sa.Column('smtp_from_name', sa.String(length=255), server_default='MuMuAINovel', nullable=False, comment='发件人名称'))
|
||||
batch_op.add_column(sa.Column('smtp_from_name', sa.String(length=255), server_default='墨木灵思', nullable=False, comment='发件人名称'))
|
||||
batch_op.add_column(sa.Column('email_auth_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱认证'))
|
||||
batch_op.add_column(sa.Column('email_register_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱注册'))
|
||||
batch_op.add_column(sa.Column('verification_code_ttl_minutes', sa.Integer(), server_default='10', nullable=False, comment='验证码有效期(分钟)'))
|
||||
|
||||
@@ -291,14 +291,14 @@ def _build_verification_mail_content(scene: str, code: str, ttl_minutes: int) ->
|
||||
"reset_password": "重置密码验证码",
|
||||
}
|
||||
scene_desc_map = {
|
||||
"register": "欢迎注册 MuMuAINovel。",
|
||||
"login": "你正在使用邮箱验证码登录 MuMuAINovel。",
|
||||
"reset_password": "你正在重置 MuMuAINovel 账号密码。",
|
||||
"register": "欢迎注册 墨木灵思。",
|
||||
"login": "你正在使用邮箱验证码登录 墨木灵思。",
|
||||
"reset_password": "你正在重置 墨木灵思 账号密码。",
|
||||
}
|
||||
|
||||
scene_title = scene_title_map.get(scene, "邮箱验证码")
|
||||
scene_desc = scene_desc_map.get(scene, "你正在进行邮箱身份验证。")
|
||||
subject = f"MuMuAINovel {scene_title}"
|
||||
subject = f"墨木灵思 {scene_title}"
|
||||
text_body = (
|
||||
f"{scene_desc}\n\n"
|
||||
f"你的验证码是:{code}\n"
|
||||
@@ -307,7 +307,7 @@ def _build_verification_mail_content(scene: str, code: str, ttl_minutes: int) ->
|
||||
)
|
||||
html_body = f"""
|
||||
<div style="font-family: Arial, PingFang SC, Microsoft YaHei, sans-serif; line-height: 1.8; color: #1f2937;">
|
||||
<h2 style="margin-bottom: 16px;">MuMuAINovel {scene_title}</h2>
|
||||
<h2 style="margin-bottom: 16px;">墨木灵思 {scene_title}</h2>
|
||||
<p>{scene_desc}</p>
|
||||
<p>你的验证码为:</p>
|
||||
<div style="display: inline-block; padding: 10px 18px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; font-size: 28px; font-weight: 700; letter-spacing: 4px; color: #2563eb;">
|
||||
|
||||
@@ -22,7 +22,7 @@ def require_login(request: Request):
|
||||
# GitHub API配置
|
||||
GITHUB_API_BASE = "https://api.github.com"
|
||||
REPO_OWNER = "xiamuceer-j"
|
||||
REPO_NAME = "MuMuAINovel"
|
||||
REPO_NAME = "墨木灵思"
|
||||
|
||||
# 缓存配置
|
||||
_cache = {
|
||||
@@ -88,7 +88,7 @@ async def fetch_github_commits(page: int = 1, per_page: int = 30) -> List[dict]:
|
||||
|
||||
headers = {
|
||||
"Accept": "application/vnd.github.v3+json",
|
||||
"User-Agent": "MuMuAINovel-App"
|
||||
"User-Agent": "墨木灵思-App"
|
||||
}
|
||||
|
||||
try:
|
||||
|
||||
@@ -384,9 +384,9 @@ async def test_system_smtp_settings(
|
||||
if not from_email:
|
||||
raise HTTPException(status_code=400, detail="请先配置发件人邮箱或 SMTP 用户名")
|
||||
|
||||
subject = "MuMuAINovel SMTP 测试邮件"
|
||||
subject = "墨木灵思 SMTP 测试邮件"
|
||||
text_body = (
|
||||
"这是一封来自 MuMuAINovel 系统设置页面的 SMTP 测试邮件。\n\n"
|
||||
"这是一封来自 墨木灵思 系统设置页面的 SMTP 测试邮件。\n\n"
|
||||
f"发送时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n"
|
||||
f"SMTP 服务商:{settings.smtp_provider}\n"
|
||||
f"SMTP 主机:{settings.smtp_host}:{settings.smtp_port}\n"
|
||||
@@ -394,7 +394,7 @@ async def test_system_smtp_settings(
|
||||
)
|
||||
html_body = f"""
|
||||
<div style=\"font-family: Arial, sans-serif; line-height: 1.7; color: #1f1f1f;\">
|
||||
<h2 style=\"margin-bottom: 12px;\">MuMuAINovel SMTP 测试邮件</h2>
|
||||
<h2 style=\"margin-bottom: 12px;\">墨木灵思 SMTP 测试邮件</h2>
|
||||
<p>这是一封来自系统设置页面的 SMTP 测试邮件。</p>
|
||||
<ul>
|
||||
<li><strong>发送时间:</strong>{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}</li>
|
||||
|
||||
@@ -25,7 +25,7 @@ class Settings(BaseSettings):
|
||||
"""应用配置"""
|
||||
|
||||
# 应用配置
|
||||
app_name: str = "MuMuAINovel"
|
||||
app_name: str = "墨木灵思"
|
||||
app_version: str = "1.0.0"
|
||||
app_host: str = "0.0.0.0"
|
||||
app_port: int = 8000
|
||||
@@ -118,7 +118,7 @@ class Settings(BaseSettings):
|
||||
SMTP_USE_TLS: bool = False
|
||||
SMTP_USE_SSL: bool = True
|
||||
SMTP_FROM_EMAIL: Optional[str] = None
|
||||
SMTP_FROM_NAME: str = "MuMuAINovel"
|
||||
SMTP_FROM_NAME: str = "墨木灵思"
|
||||
EMAIL_AUTH_ENABLED: bool = True
|
||||
EMAIL_REGISTER_ENABLED: bool = True
|
||||
EMAIL_VERIFICATION_CODE_TTL_MINUTES: int = 10
|
||||
|
||||
+1
-1
@@ -220,7 +220,7 @@ else:
|
||||
@app.get("/")
|
||||
async def root():
|
||||
return {
|
||||
"message": "欢迎使用MuMuAINovel",
|
||||
"message": "欢迎使用墨木灵思",
|
||||
"version": config_settings.app_version,
|
||||
"docs": "/docs",
|
||||
"notice": "请先构建前端: cd frontend && npm run build"
|
||||
|
||||
@@ -35,7 +35,7 @@ class Settings(Base):
|
||||
smtp_use_tls = Column(Boolean, default=False, server_default="0", nullable=False, comment="是否启用 TLS")
|
||||
smtp_use_ssl = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用 SSL")
|
||||
smtp_from_email = Column(String(255), comment="发件人邮箱")
|
||||
smtp_from_name = Column(String(255), default="MuMuAINovel", server_default="MuMuAINovel", nullable=False, comment="发件人名称")
|
||||
smtp_from_name = Column(String(255), default="墨木灵思", server_default="墨木灵思", nullable=False, comment="发件人名称")
|
||||
email_auth_enabled = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用邮箱认证")
|
||||
email_register_enabled = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用邮箱注册")
|
||||
verification_code_ttl_minutes = Column(Integer, default=10, server_default="10", nullable=False, comment="验证码有效期(分钟)")
|
||||
|
||||
@@ -55,7 +55,7 @@ class SystemSMTPSettingsBase(BaseModel):
|
||||
smtp_use_tls: bool = Field(default=False, description="是否启用 TLS")
|
||||
smtp_use_ssl: bool = Field(default=True, description="是否启用 SSL")
|
||||
smtp_from_email: Optional[str] = Field(default=None, description="发件人邮箱")
|
||||
smtp_from_name: str = Field(default="MuMuAINovel", description="发件人名称")
|
||||
smtp_from_name: str = Field(default="墨木灵思", description="发件人名称")
|
||||
email_auth_enabled: bool = Field(default=True, description="是否启用邮箱认证")
|
||||
email_register_enabled: bool = Field(default=True, description="是否启用邮箱注册")
|
||||
verification_code_ttl_minutes: int = Field(default=10, ge=1, le=120, description="验证码有效期(分钟)")
|
||||
|
||||
@@ -17,7 +17,7 @@ if [ -z "$APP_NAME" ]; then
|
||||
if [ -f "/app/.env.example" ]; then
|
||||
APP_NAME=$(grep "^APP_NAME=" /app/.env.example | cut -d '=' -f2)
|
||||
fi
|
||||
APP_NAME="${APP_NAME:-MuMuAINovel}"
|
||||
APP_NAME="${APP_NAME:-墨木灵思}"
|
||||
fi
|
||||
|
||||
BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
@@ -8,7 +8,7 @@ CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- 模糊搜索和全文检索支
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE '==================================================';
|
||||
RAISE NOTICE 'MuMuAINovel PostgreSQL 扩展安装完成';
|
||||
RAISE NOTICE '墨木灵思 PostgreSQL 扩展安装完成';
|
||||
RAISE NOTICE '已安装扩展:';
|
||||
RAISE NOTICE ' - uuid-ossp: UUID生成支持';
|
||||
RAISE NOTICE ' - pg_trgm: 模糊搜索和全文检索支持';
|
||||
|
||||
Reference in New Issue
Block a user