Skip to content

calkit/calkit-cloud

Repository files navigation

Calkit cloud

Test

The Calkit cloud system serves as an index for projects and their artifacts such as datasets, figures, publications, computational environments, etc. It also serves as a DVC remote, neatly integrated with the Calkit CLI, so users can easily back up their data and artifacts in the same repository as their code, documentation, other text files, etc.

The goal is that this can serve as a platform for working efficiently and reproducibly, collaborating, and sharing all in one. Our future vision is one where research is advanced more quickly because instead of simply producing a paper, other more reusable artifacts are created and can be easily carried forward in new projects. Additionally, all studies should be able to be reproduced by anyone else by using this framework, resulting in more reliable knowledge.

Deploying your own instance

A future goal of this project is to make it easy for teams or institutions to deploy their own Calkit cloud instances in a federated network, where users on any instance can search for projects, datasets, etc., on any other instance. This is currently not easy, but if you'd like to help make it so, please join the discussion in this issue.

Technology stack and features

This project was derived from Full Stack FastAPI Template by Sebastián Ramírez, which uses:

  • FastAPI for the Python backend API.
    • 🧰 SQLModel for the Python SQL database interactions (ORM).
    • 🔍 Pydantic, used by FastAPI, for the data validation and settings management.
    • 💾 PostgreSQL as the SQL database.
  • 🚀 React for the frontend.
    • 💃 Using TypeScript, hooks, Vite, and other parts of a modern frontend stack.
    • 🎨 Chakra UI for the frontend components.
    • 🤖 An automatically generated frontend client.
    • 🧪 Playwright for End-to-End testing.
    • 🦇 Dark mode support.
  • 🐋 Docker Compose for development and production.
  • 🔒 Secure password hashing by default.
  • 🔑 JWT (JSON Web Token) authentication.
  • 📫 Email based password recovery.
  • ✅ Tests with Pytest.
  • 📞 Traefik as a reverse proxy / load balancer.
  • 🚢 Deployment instructions using Docker Compose, including how to set up a frontend Traefik proxy to handle automatic HTTPS certificates.
  • 🏭 CI (continuous integration) and CD (continuous deployment) based on GitHub Actions.

Backend development

Backend docs: backend/README.md.

Frontend development

Frontend docs: frontend/README.md.

Deployment

Deployment docs: deployment.md.

Development

General development docs: development.md.

This includes using Docker Compose, custom local domains, .env configurations, etc.