├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── README.md ├── app.vue ├── assets └── css │ ├── main.css │ └── variables.css ├── components ├── ThemeToggle.vue └── common │ └── Toast.vue ├── composables ├── useAuth.js ├── useTheme.js └── useToast.ts ├── error.vue ├── layouts └── default.vue ├── middleware └── auth.js ├── nuxt.config.js ├── package-lock.json ├── package.json ├── pages ├── dashboard.vue ├── images.vue ├── index.vue ├── login.vue ├── profile.vue └── upload.vue ├── plugins ├── nprogress.client.js └── theme.client.js ├── public ├── favicon.ico ├── logo.png └── robots.txt ├── services └── api.js ├── tsconfig.json └── wrangler.toml /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: 部署布灵图床前端到Cloudflare Pages 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | pull_request: 7 | branches: [main] 8 | workflow_dispatch: 9 | 10 | jobs: 11 | deploy: 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: read 15 | deployments: write 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - name: 1.Setup Node 21 | uses: actions/setup-node@v4 22 | with: 23 | node-version: '20' 24 | 25 | - name: 2.Install Dependencies 26 | run: | 27 | echo "开始安装依赖..." 28 | npm install &>/dev/null || { 29 | echo "❌ 依赖安装失败" 30 | exit 1 31 | } 32 | npm install -g wrangler &>/dev/null || { 33 | echo "❌ wrangler 安装失败" 34 | exit 1 35 | } 36 | which wrangler # 显示 wrangler 的安装位置 37 | wrangler --version # 显示 wrangler 版本 38 | echo "✅ 依赖安装成功" 39 | 40 | - name: 3.Create Cloudflare Pages Project 41 | env: 42 | CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }} 43 | CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} 44 | run: | 45 | echo "检查并创建 Pages 项目..." 46 | curl -X POST "https://api.cloudflare.com/client/v4/accounts/${{ secrets.CF_ACCOUNT_ID }}/pages/projects" \ 47 | -H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \ 48 | -H "Content-Type: application/json" \ 49 | --data '{ 50 | "name": "buling-imgbed-frontend", 51 | "production_branch": "main" 52 | }' > /dev/null 2>&1 || true 53 | echo "✅ Pages 项目检查完成" 54 | 55 | - name: 4.Deploy to Cloudflare Pages 56 | env: 57 | CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }} 58 | CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} 59 | NUXT_PUBLIC_API_BASE: ${{ secrets.NUXT_PUBLIC_API_BASE }} 60 | run: | 61 | echo "开始部署到 Cloudflare Pages..." 62 | npm run pages:deploy &>/dev/null || { 63 | echo "❌ 部署失败" 64 | exit 1 65 | } 66 | echo "✅ 部署成功" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | .nuxt 4 | .nitro 5 | .cache 6 | .output 7 | .env 8 | dist 9 | # Node dependencies 10 | node_modules 11 | .wrangler 12 | 13 | 14 | # Logs 15 | logs 16 | *.log 17 | 18 | # Misc 19 | .DS_Store 20 | .fleet 21 | .idea 22 | 23 | # Local env files 24 | .env 25 | .env.* 26 | !.env.example 27 | 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🚀 布灵图床 | Buling ImgBed 2 | 3 |
布灵图床前端,基于 Vue3 + Nuxt3
6 |
7 |
8 |
9 |
10 |
11 |
![]() |
63 | ![]() |
64 |
{{ error.message }}
6 | 7 |管理您的账户信息
11 |管理您的图片列表
18 |基于Cloudflare的个人图床新选择
7 | 16 |
19 | 注册账户才能上传,有效防止资源滥用
26 |支持拖拽上传、粘贴上传图片
30 |数据安全存储,永久保存
34 |在线管理您的所有图片
38 |仅需一个域名,其他资源由 Cloudflare 提供
42 |支持Telegram机器人便捷操作上传
46 |自动图片压缩技术,节省存储空间
50 |更多实用功能正在开发中,敬请期待
54 |点击、拖拽或粘贴图片到这里上传
15 |支持 jpg、png、gif、webp、svg、bmp、tiff、ico、avif、heic/heif 格式
16 |