【开源】手把手教你搭建本地IT求职面经分享平台 | Next.js + Supabase + Vercel + Cloudflare 全栈项目,国内访问友好,零成本上线
【开源】手把手教你搭建本地IT求职面经分享平台 | Next.js Supabase Vercel Cloudflare 全栈项目国内访问友好零成本上线本项目完全开源今天把完整部署教程整理出来包含Cloudflare免费CDN加速方案使用dpdns.org免费域名真正零成本解决国内访问问题大家可以照着搭一个自己城市的版本。 项目预览线上地址https://ncbyteinterview.dpdns.org Cloudflare CDN加速国内访问友好GitHub地址https://github.com/longzhu0725/nanchang-it-interview目标城市南昌可自行替换成任意城市核心功能模块功能说明企业库本地IT企业名录30家南昌企业含行业、规模、标签、简介面经分享面试/笔试经验支持Markdown、匿名发布、难度评级❓问答社区求职提问、回答、采纳最佳答案邀请码注册保证社区质量避免垃圾账号互动功能点赞、收藏、评论、举报管理后台内容审核、邀请码生成、企业管理技术栈前端框架Next.js 14 (App Router) TypeScriptUI组件Tailwind CSS shadcn/ui后端/数据库Supabase (PostgreSQL Auth RLS)托管平台Vercel免费CDN加速Cloudflare免费域名dpdns.org免费域名零成本或自有域名 零成本快速上线20分钟准备工作全部用免费服务不需要花一分钱平台用途官网GitHub存放代码https://github.comSupabase数据库用户认证https://supabase.comVercel网站托管https://vercel.comCloudflareCDN加速DNS管理https://cloudflare.comDigitalPlat免费域名dpdns.orghttps://dash.domain.digitalplat.org 域名建议DigitalPlat提供免费dpdns.org二级域名可以托管NS到Cloudflare完美实现CDN加速零成本如果想要一级域名Namesilo买个.xyz域名一年几块钱。第一步Fork项目代码打开https://github.com/longzhu0725/nanchang-it-interview点击右上角Fork到你自己的GitHub账号第二步创建Supabase数据库2.1 新建项目登录 https://supabase.com → New Project填写项目名、数据库密码记下来区域选Northeast Asia (Tokyo)或Southeast Asia (Singapore)离国内近Create等1-2分钟初始化2.2 获取密钥Settings → API复制三个值保存到记事本Project URLhttps://xxxx.supabase.coanon public keyeyJ开头的长字符串service_role key另一个长字符串保密2.3 执行数据库初始化SQLSQL Editor → New query按顺序执行3个SQL文件0001_initial.sql- 表结构、RLS策略、初始企业数据0002_notifications_and_views.sql- 通知、视图0003_fix_admin_profile.sql- 用户触发器、管理员修复必须执行SQL文件地址https://github.com/longzhu0725/nanchang-it-interview/tree/main/supabase/migrations✅ 验证执行SELECT tablename FROM pg_tables WHERE schemaname public;能看到profiles/companies/posts等表即成功。2.4 临时配置认证回调Authentication → URL ConfigurationSite URLhttp://localhost:3000Redirect URLshttp://localhost:3000/auth/callbackSave域名配好后再改回来。第三步部署到Vercel登录 https://vercel.com → Add New → ProjectImport你Fork的仓库没看到就点Adjust GitHub App Permissions授权Environment Variables添加三个变量NameValueNEXT_PUBLIC_SUPABASE_URL你的Project URLNEXT_PUBLIC_SUPABASE_ANON_KEYanon keySUPABASE_SERVICE_ROLE_KEYservice_role keyDeploy等1-2分钟得到Vercel默认域名类似xxx.vercel.app第四步申请免费域名已有域名可跳过如果你还没有域名先申请一个免费dpdns.org域名注册DigitalPlathttps://dash.domain.digitalplat.org/signup需要GitHub账号认证KYC需要一个Gmail/Outlook邮箱地址信息可以用美国地址生成器生成登录后点Domain Registration后缀选dpdns.org推荐比qzz.io稳定输入你想要的前缀如nanchangit点Check Availability如果没被占用就注册成功了保持页面打开不要关如果你已经有ncbyteinterview.dpdns.org域名跳过这步。第五步Cloudflare配置CDNDNS核心国内访问关键这是解决国内访问Vercel慢的核心步骤免费域名也能用5.1 Cloudflare添加站点登录 https://dash.cloudflare.com点添加站点输入你的完整域名如nanchangit.dpdns.org或ncbyteinterview.dpdns.org选Free计划继续DNS记录页面直接点继续关键复制Cloudflare给的两个Nameserver地址类似xxx.ns.cloudflare.com5.2 DigitalPlat修改NS服务器回到DigitalPlat域名注册页面或My Domains → 你的域名 → 管理找到Nameservers设置选择Custom Nameservers填入Cloudflare给的两个NS地址点Register/Save保存5.3 等待NS生效回到Cloudflare点检查名称服务器等待域名状态变为活动Active通常几分钟。5.4 添加DNS记录Cloudflare → 你的域名 → DNS → 记录添加以下记录记录1CNAME指向Vercel类型名称内容代理状态TTLCNAMEcname.vercel-dns.com 已开启代理橙色云朵Auto记录2如果Vercel提示需要TXT验证如果Vercel显示Verification Needed和TXT记录要求添加类型名称内容代理状态TTLTXT_vercelVercel给你的vc-domain-verify…值⚪ 仅DNS灰色云朵Auto记录3可选www子域名类型名称内容代理状态TTLCNAMEwwwcname.vercel-dns.com 已开启代理Auto5.5 SSL配置必须做Cloudflare → SSL/TLS → 加密模式选Full不要选Flexible否则重定向循环5.6 开启优化可选Speed → Optimization开启Auto MinifyJS/CSS/HTML全勾、Brotli、HTTP/3Caching → ConfigurationBrowser Cache TTL设为4 hours第六步Vercel添加域名验证Vercel → 项目 → Settings → Domains添加你的域名如ncbyteinterview.dpdns.org等待验证通过显示绿色✓ Valid Configuration如果验证不通过确认TXT记录是灰色云朵CNAME正确等待几分钟后点Refresh第七步更新Supabase回调地址Supabase → Authentication → URL ConfigurationSite URL改为https://你的域名Redirect URLs添加https://你的域名/auth/callback保留localhost和Vercel默认域名的回调地址Save第八步创建管理员账号Supabase → Authentication → Users → Add user → Create new user填写你的邮箱和密码创建用户SQL Editor执行换成你的邮箱INSERTINTOprofiles(id,email,nickname,role)SELECTid,email,split_part(email,,1),adminFROMauth.usersWHEREemail你的邮箱example.comONCONFLICT(id)DOUPDATESETroleadmin;用管理员账号登录网站访问/admin/invite-codes生成邀请码 部署完成访问你的域名测试国内打开速度应该比Vercel默认域名快很多 本地开发gitclone https://github.com/你的用户名/nanchang-it-interview.gitcdnanchang-it-interviewcp.env.local.example .env.local# 编辑.env.local填入三个Supabase密钥npminstallnpmrun dev打开 http://localhost:3000 访问。推送更新gitadd.gitcommit-m修改说明gitpushVercel自动部署1-2分钟线上更新。如果Cloudflare缓存没更新去Cloudflare → Caching → Purge Everything清缓存。 扩充南昌企业数据项目默认6家初始企业执行 nanchang-companies-data.sql 可扩充到30家涵盖华勤、龙旗、欧菲光、华为、阿里、腾讯、科大讯飞、思创数码、泰豪等南昌本地IT企业。❓ 常见问题FAQQ1Cloudflare配置后重定向过多ERR_TOO_MANY_REDIRECTSASSL/TLS模式选了Flexible改成Full即可。Q2Vercel域名验证一直失败A确认TXT验证记录是灰色云朵DNS only橙色云朵会拦截TXT查询多等几分钟DNS传播临时把CNAME也切灰色验证通过再切回橙色Q3DigitalPlat找不到修改NS的地方AMy Domains → 点击你的域名进入详情页找Nameservers或DNS Settings。截图发给我帮你找。Q4管理员页面跳回首页A执行SQLINSERTINTOprofiles(id,email,nickname,role)SELECTid,email,split_part(email,,1),adminFROMauth.usersWHEREemail你的邮箱ONCONFLICT(id)DOUPDATESETroleadmin;退出重新登录。Q5免费域名dpdns.org靠谱吗ADigitalPlat是非营利组织运营的免费域名服务支持自定义NS可以托管到Cloudflare免费续期一年一次轻量使用完全够用。博主推荐dpdns.org而不是qzz.io证书申请更稳定。Q6更新后网站看不到变化ACloudflare缓存了旧版本去Caching → Purge Everything清缓存。开发时可以开启Development Mode。Q7国内访问还是不够快A确认CNAME是橙色云朵Proxied确认开启Auto Minify、Brotli、HTTP/3添加Page Rule*你的域名/*→ Cache Level: Cache EverythingEdge Cache TTL: 1 hour进阶用户可以尝试Cloudflare SaaS回源优选IP方案需要第二个域名绑定支付方式有封号风险✨ 技术亮点Cloudflare CDN免费加速配合dpdns.org免费域名零成本解决国内访问问题Row Level Security (RLS)数据库层面权限控制安全可靠邀请码机制注册入口把关保证社区质量匿名发布支持匿名分享保护用户隐私Next.js SSR服务端渲染首屏快SEO友好TypeScript全栈类型安全减少bug响应式设计手机/平板/PC完美适配shadcn/ui极简UI清爽专注内容 开源协议MIT License可自由使用、修改、分发、商用。欢迎Fork做其他城市版本给原仓库点个Star ⭐ 支持一下 最后如果这篇教程对你有帮助欢迎点赞、收藏、关注三连有问题评论区留言也可以去GitHub提Issue。希望这个平台能帮助更多在南昌或其他城市找IT工作的朋友们祝大家都拿到心仪的Offer相关链接项目GitHubhttps://github.com/longzhu0725/nanchang-it-interview线上地址https://ncbyteinterview.dpdns.orgDigitalPlat免费域名https://dash.domain.digitalplat.org