# capsoftware **Repository Path**: mirrors/capsoftware ## Basic Information - **Project Name**: capsoftware - **Description**: Cap 是 Loom 的开源替代品 - **Primary Language**: Rust - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: https://www.oschina.net/p/capsoftware - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2025-05-06 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
The open source Loom alternative.
Cap.so »
Downloads for
macOS & Windows
# Self Hosting
### Quick Start (One Command)
```bash
git clone https://github.com/CapSoftware/Cap.git && cd Cap && docker compose up -d
```
Cap will be running at `http://localhost:3000`. That's it!
> **Note:** Login links appear in the logs (`docker compose logs cap-web`) since email isn't configured by default.
### Other Deployment Options
| Method | Best For |
|--------|----------|
| **Docker Compose** | VPS, home servers, any Docker host |
| **[Railway](https://railway.com/new/template/PwpGcf)** | One-click managed hosting |
| **Coolify** | Self-hosted PaaS (use `docker-compose.coolify.yml`) |
[](https://railway.com/new/template/PwpGcf)
### Production Configuration
For production, create a `.env` file:
```bash
CAP_URL=https://cap.yourdomain.com
S3_PUBLIC_URL=https://s3.yourdomain.com
```
See our [self-hosting docs](https://cap.so/docs/self-hosting) for full configuration options including email setup, AI features, and SSL.
Cap Desktop can connect to your self-hosted instance via Settings → Cap Server URL.
# Monorepo App Architecture
We use a combination of Rust, React (Next.js), TypeScript, Tauri, Drizzle (ORM), MySQL, TailwindCSS throughout this Turborepo powered monorepo.
> A note about database: The codebase is currently designed to work with MySQL only. MariaDB or other compatible databases might partially work but are not officially supported.
### Apps:
- `desktop`: A [Tauri](https://tauri.app) (Rust) app, using [SolidStart](https://start.solidjs.com) on the frontend.
- `web`: A [Next.js](https://nextjs.org) web app.
### Packages:
- `ui`: A [React](https://reactjs.org) Shared component library.
- `utils`: A [React](https://reactjs.org) Shared utility library.
- `tsconfig`: Shared `tsconfig` configurations used throughout the monorepo.
- `database`: A [React](https://reactjs.org) and [Drizzle ORM](https://orm.drizzle.team/) Shared database library.
- `config`: `eslint` configurations (includes `eslint-config-next`, `eslint-config-prettier` other configs used throughout the monorepo).
### License:
Portions of this software are licensed as follows:
- All code residing in the `cap-camera*` and `scap-*` families of crates is licensed under the MIT License (see [licenses/LICENSE-MIT](https://github.com/CapSoftware/Cap/blob/main/licenses/LICENSE-MIT)).
- All third party components are licensed under the original license provided by the owner of the applicable component
- All other content not mentioned above is available under the AGPLv3 license as defined in [LICENSE](https://github.com/CapSoftware/Cap/blob/main/LICENSE)
# Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. This guide is a work in progress, and is updated regularly as the app matures.
## Analytics (Tinybird)
Cap uses [Tinybird](https://www.tinybird.co) to ingest viewer telemetry for dashboards. The Tinybird admin token (`TINYBIRD_ADMIN_TOKEN` or `TINYBIRD_TOKEN`) must be available in your environment. Once the token is present you can:
- Provision the required data sources and materialized views via `pnpm analytics:setup`. This command installs the Tinybird CLI (if needed), runs `tb login` when a `.tinyb` credential file is missing, copies that credential into `scripts/analytics/tinybird`, and finally executes `tb deploy --allow-destructive-operations --wait` from that directory. **It synchronizes the Tinybird workspace to the resources defined in `scripts/analytics/tinybird`, removing any other datasources/pipes in that workspace.**
- Validate that the schema and materialized views match what the app expects via `pnpm analytics:check`.
Both commands target the workspace pointed to by `TINYBIRD_HOST` (defaults to `https://api.tinybird.co`). Make sure you are comfortable with the destructive nature of the deploy step before running `analytics:setup`.