Skip to content

Commit f96529b

Browse files
Update README.md
1 parent c84de03 commit f96529b

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

README.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Chithi
2+
3+
**Chithi** is an end-to-end file sharing application consisting of a FastAPI backend, a Svelte frontend, and a Celery worker for background tasks. The project aims to provide secure file uploads, temporary links, and user management with a simple modern UI.
4+
5+
## Features
6+
7+
- User onboarding, authentication and JWT-based sessions
8+
- File upload and download with S3-compatible backend
9+
- Background cleanup tasks using Celery + Redis
10+
- Admin endpoints for managing users and files
11+
- Svelte frontend and a small CLI/TUI for administration and local tooling
12+
13+
## Architecture & Tech
14+
15+
- Backend: FastAPI, SQLModel (Postgres), Celery (Redis), RustFS
16+
- Storage: RustFS (S3-compatible object store)
17+
- Frontend: SvelteKit + Vite
18+
- Containerized with Docker Compose
19+
20+
## Quick start (recommended)
21+
22+
1. Make sure Docker and Docker Compose are installed.
23+
2. Start the full stack (builds containers if needed):
24+
25+
```bash
26+
docker compose up --build
27+
```
28+
29+
- Services exposed by default:
30+
- Backend: http://localhost:8000
31+
- Frontend: http://localhost:3000
32+
- RustFS console: http://localhost:9001
33+
- Postgres: 5432
34+
- Redis: 6379
35+
36+
There is a `docker-compose-dev.yml` with a minimal local development setup (Postgres, Redis, RustFS, and optional pgAdmin).
37+
38+
## Environment & Configuration
39+
40+
Important environment variables (examples come from the compose files):
41+
42+
- POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
43+
- RUSTFS_ENDPOINT_URL, RUSTFS_ACCESS_KEY, RUSTFS_SECRET_ACCESS_KEY
44+
- CELERY_BROKER_URL, CELERY_RESULT_BACKEND
45+
- PUBLIC_BACKEND_API (Frontend build-time config)
46+
47+
You can find the full example environment in `docker-compose.yml` and `docker-compose-dev.yml`.
48+
49+
## Development
50+
51+
Backend
52+
53+
- Python >= 3.14
54+
- Install dependencies and run the app (example):
55+
56+
```bash
57+
# from src/backend
58+
uv sync
59+
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 # poe run dev
60+
```
61+
62+
Frontend
63+
64+
```bash
65+
# from src/frontend
66+
npm install
67+
npm run dev
68+
```
69+
70+
CLI / TUI
71+
72+
- CLI commands are available under the `src/cli` and `src/backend` Typer apps (user management helpers).
73+
- TUI is experimental and uses Textual (see `src/tui`).
74+
75+
Testing & linting
76+
77+
- Frontend: `npm run test` (Vitest), `npm run lint`
78+
- Backend: depends on dev setup (`ruff` is configured for linting in the backend project)
79+
80+
## Contributing
81+
82+
Contributions are welcome. Please open issues for bugs or feature requests, and open pull requests for proposed fixes. Follow existing code style and tests where applicable.
83+
84+
## License
85+
86+
This project is licensed under the Mozilla Public License 2.0. See `LICENSE.md` for details.
87+
88+
## Contact
89+
90+
If you need help running the project or want to contribute, open an issue.

0 commit comments

Comments
 (0)