Skip to content

chithi-dev/chithi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

375 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chithi

GitHub License GitHub Issues or Pull Requests GitHub repo size

Chithi is an end-to-end file sharing application consisting of a FastAPI backend, a Svelte frontend, and a Celery worker with beat scheduler for background tasks. The project aims to provide secure file uploads, temporary links, and user management with a simple modern UI.

Features

  • User onboarding, authentication and JWT-based sessions
  • File upload and download with S3-compatible backend
  • Background cleanup tasks using Celery + Beat + Redis
  • Admin endpoints for managing users and files
  • Svelte frontend and a small CLI/TUI (in near future)

Architecture & Tech

  • Backend: FastAPI, SQLModel (Postgres), Celery (Redis), RustFS
  • Storage: RustFS (S3-compatible object storage)
  • Frontend: SvelteKit + Vite
  • Containerized with Docker Compose

Screenshots

Public Version

Chithi Dev Public Instance

Development Version

Chithi Dev Localhost Instance

Quick start (recommended)

  1. Make sure Docker and Docker Compose are installed.
  2. Start the full stack (builds containers if needed):
docker compose up --build

There is a docker-compose-dev.yml with a minimal local development setup (Postgres, Redis, RustFS, and optional pgAdmin).

If you are looking for the deployed codes behind chithi.dev, please take a look at my homelab's configuration with traefik, if you are willing to host a public instance of chithi please open a PR in public.chiti.dev repo with a modified .upptimerc

Environment & Configuration

Important environment variables (examples come from the compose files):

  • POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
  • RUSTFS_ENDPOINT_URL, RUSTFS_ACCESS_KEY, RUSTFS_SECRET_ACCESS_KEY
  • CELERY_BROKER_URL, CELERY_RESULT_BACKEND
  • PUBLIC_BACKEND_API (Frontend build-time config)

You can find the full example environment in docker-compose.yml and docker-compose-dev.yml.

Development

Backend

  • Python >= 3.14
  • Install dependencies and run the app (example):
# from src/backend
uv sync
fastapi dev ./app/main.py # poe run dev

Frontend

# from src/frontend
npm install
npm run dev

Testing & linting

  • Frontend: npm run test (Vitest), npm run lint (eslint)
  • Backend: depends on dev setup (ruff is configured for linting in the backend project)

Contributing

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.

License

This project is licensed under the Mozilla Public License 2.0. See LICENSE.md for details.

Contact

If you need help running the project or want to contribute, open an issue.