You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.3 KiB
Markdown
91 lines
2.3 KiB
Markdown
# Vibesville
|
|
|
|
A mono-repo of self-contained HTTP web services built in Rust, targeting Cloudflare's edge platform.
|
|
|
|
- **Backend** services run on Cloudflare Workers (via workers-rs + Axum).
|
|
- **Frontend** applications compile to Wasm with Yew and deploy to Cloudflare Pages.
|
|
- **Data** is stored in Cloudflare D1 (SQLite-compatible), with Turso for local development.
|
|
- **Infrastructure** is managed with OpenTofu and the Cloudflare provider.
|
|
|
|
## Services
|
|
|
|
| Service | Description |
|
|
|---|---|
|
|
| `common` | Shared library crate — types, utilities, and definitions used across services |
|
|
|
|
_Services will be listed here as they are added._
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- [Nix](https://nixos.org/download/) with [Flakes enabled](https://nixos.wiki/wiki/Flakes)
|
|
|
|
### Setup
|
|
|
|
```sh
|
|
# Clone the repository
|
|
git clone https://gitea.elijah.run/vibesville/vibesville.git
|
|
cd vibesville
|
|
|
|
# Enter the dev shell (installs Rust, Trunk, OpenTofu, wrangler, etc.)
|
|
nix develop
|
|
```
|
|
|
|
The dev shell provides everything needed to build, test, and deploy all services.
|
|
|
|
### Running a Service
|
|
|
|
```sh
|
|
# Backend
|
|
cd <service>
|
|
cargo run
|
|
|
|
# Frontend
|
|
cd <service>
|
|
trunk serve
|
|
```
|
|
|
|
### Validation
|
|
|
|
Run from within a service directory, in order:
|
|
|
|
```sh
|
|
cargo fmt # formatting
|
|
cargo check # compilation
|
|
cargo clippy # lints
|
|
cargo test # tests
|
|
```
|
|
|
|
## Repository Layout
|
|
|
|
```
|
|
vibesville/
|
|
├── CLAUDE.md # conventions and instructions for Claude Code
|
|
├── README.md # this file
|
|
├── LICENSE-APACHE
|
|
├── LICENSE-MIT
|
|
├── flake.nix # base Nix flake
|
|
├── common/ # shared library crate
|
|
└── <service>/ # each service is an independent Rust crate
|
|
├── src/
|
|
├── tests/ # integration tests
|
|
├── docs/ # PLANNING.md, ARCHITECTURE.md
|
|
└── infra/ # OpenTofu infrastructure
|
|
```
|
|
|
|
See [CLAUDE.md](CLAUDE.md) for full conventions, code style, and project documentation requirements.
|
|
|
|
## License
|
|
|
|
Licensed under either of
|
|
|
|
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
- MIT License ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
|
|
|
|
at your option.
|
|
|
|
## Disclaimer
|
|
|
|
This software is developed with the assistance of [Claude Code](https://claude.ai/claude-code) by Anthropic.
|