r2
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
🌸Publish faster with an edge-native blog powered by Cloudflare Workers, D1, and R2
English | 简体中文
Rin is a modern, serverless blog platform built entirely on Cloudflare's developer platform: Pages for hosting, Workers for serverless functions, D1 for SQLite database, and R2 for object storage. Deploy your personal blog with just a domain name pointed to Cloudflare—no server management required.
https://yourblog.com/about using custom article aliases.#Blog #Cloudflare and have them automatically parsed and displayed.@rin/api package.# 1. Clone the repository git clone https://github.com/openRin/Rin.git && cd Rin # 2. Install dependencies bun install # 3. Configure environment variables cp .env.example .env.local # Edit .env.local with your own configuration # 4. Start the development server bun run dev
Visit http://localhost:5173 to start hacking!
Run the test suite to ensure everything works:
# Run all tests (client + server) bun run test # Run server tests only bun run test:server # Run tests with coverage bun run test:coverage
Deploy both frontend and backend to Cloudflare with a single command:
# Deploy everything (frontend + backend) bun run deploy # Deploy only backend bun run deploy:server # Deploy only frontend bun run deploy:client
Required environment variables:
CLOUDFLARE_API_TOKEN - Your Cloudflare API tokenCLOUDFLARE_ACCOUNT_ID - Your Cloudflare account IDOptional environment variables:
WORKER_NAME - Backend worker name (default: rin-server)PAGES_NAME - Frontend pages name (default: rin-client)DB_NAME - D1 database name (default: rin)R2_BUCKET_NAME - R2 bucket name. If set, deploy derives the matching S3_* values automatically. If unset, no bucket is auto-selected.The deployment script will automatically:
S3_* storage settings from R2_BUCKET_NAME only when it is explicitly setThe repository includes several automated workflows:
ci.yml - Runs type checking and formatting validation on every push/PRtest.yml - Runs comprehensive tests (server + client) with coverage reportingbuild.yml - Builds the project and triggers deploymentdeploy.yml - Deploys to Cloudflare Pages and WorkersRequired secrets (Repository Settings → Secrets and variables → Actions):
CLOUDFLARE_API_TOKEN - Your Cloudflare API token with Workers and Pages permissionsCLOUDFLARE_ACCOUNT_ID - Your Cloudflare account IDOptional configuration (Repository Settings → Secrets and variables → Variables):
WORKER_NAME, PAGES_NAME, DB_NAME - Resource namesNAME, DESCRIPTION, AVATAR - Site configurationR2_BUCKET_NAME - Specific R2 bucket to useFull documentation is available at https://docs.openrin.org.
We welcome contributions of all kinds—code, documentation, design, and ideas. Please check out our contributing guidelines and join us in building Rin together!
MIT License
Copyright (c) 2024 Xeu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
more like this
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
search projects, people, and tags