# litestar-fullstack **Repository Path**: wangye77/litestar-fullstack ## Basic Information - **Project Name**: litestar-fullstack - **Description**: litestar-fullstack - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-06 - **Last Updated**: 2024-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Litestar Logo - Light Litestar Logo - Dark

| Project | | Status | | --------- | :-- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CI/CD | | [![Tests and Linting](https://github.com/litestar-org/litestar-fullstack/actions/workflows/ci.yaml/badge.svg)](https://github.com/litestar-org/litestar-fullstack/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/litestar-org/litestar-fullstack/actions/workflows/docs.yaml/badge.svg)](https://github.com/litestar-org/litestar-fullstack/actions/workflows/docs.yaml) | | Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar-fullstack&metric=coverage)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar-fullstack&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar-fullstack&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar-fullstack&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar-fullstack&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) | | Community | | [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/litestarapi?label=r%2FLitestar&logo=reddit&labelColor=202235&color=edb641&logoColor=edb641)](https://reddit.com/r/litestarapi) [![Discord](https://img.shields.io/discord/919193495116337154?labelColor=202235&color=edb641&label=chat%20on%20discord&logo=discord&logoColor=edb641)](https://discord.gg/litestar-919193495116337154) [![Matrix](https://img.shields.io/badge/chat%20on%20Matrix-bridged-202235?labelColor=202235&color=edb641&logo=matrix&logoColor=edb641)](https://matrix.to/#/#litestar:matrix.org) [![Medium](https://img.shields.io/badge/Medium-202235?labelColor=202235&color=edb641&logo=medium&logoColor=edb641)](https://blog.litestar.dev) [![Twitter](https://img.shields.io/twitter/follow/LitestarAPI?labelColor=202235&color=edb641&logo=twitter&logoColor=edb641&style=flat)](https://twitter.com/LitestarAPI) [![Blog](https://img.shields.io/badge/Blog-litestar.dev-202235?logo=blogger&labelColor=202235&color=edb641&logoColor=edb641)](https://blog.litestar.dev) | | Meta | | [![Litestar Project](https://img.shields.io/badge/Litestar%20Org-%E2%AD%90%20Litestar-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/litestar-org/litestar) [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![Litestar Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23edb641.svg?&logo=github&logoColor=edb641&labelColor=202235)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=202235&logoColor=edb641)](https://github.com/psf/black) [![All Contributors](https://img.shields.io/github/all-contributors/litestar-org/litestar?labelColor=202235&color=edb641&logoColor=edb641)](#contributors-) |
# Litestar Fullstack Reference Application This is a reference application that you can use to get your next Litestar application running quickly. It contains most of the boilerplate required for a production web API with features like: - Latest Litestar configured with best practices - Integration with [SQLAlchemy 2.0](https://www.sqlalchemy.org/), [SAQ (Simple Asynchronous Queue)](https://saq-py.readthedocs.io/en/latest/), and [Structlog](https://www.structlog.org/en/stable/) - Extends built-in Litestar click CLI - Frontend integrated with ViteJS and includes Jinja2 templates that integrate with Vite websocket/HMR support - Multi-stage Docker build using a minimal Python 3.11 runtime image. - Pre-configured user model that includes teams and associated team roles - Examples of using guards for superuser and team-based auth. - Examples using raw SQL for more complex queries Take what you need and adapt it to your own projects ## Quick Start To quickly get a development environment running, run the following: ```shell make install . .venv/bin/activate ```
Command Examples ## App Commands ```bash ❯ app Usage: app [OPTIONS] COMMAND [ARGS]... Litestar CLI. ╭─ Options ────────────────────────────────────────────────────────────────────╮ │ --app TEXT Module path to a Litestar application (TEXT) │ │ --app-dir DIRECTORY Look for APP in the specified directory, by adding │ │ this to the PYTHONPATH. Defaults to the current │ │ working directory. │ │ (DIRECTORY) │ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────────╯ Using Litestar app from env: 'app.asgi:create_app' ╭─ Commands ───────────────────────────────────────────────────────────────────╮ │ database Manage SQLAlchemy database components. │ │ info Show information about the detected Litestar app. │ │ routes Display information about the application's routes. │ │ run Run a Litestar app. │ │ run-all Starts the application server & worker in a single command. │ │ schema Manage server-side OpenAPI schemas. │ │ sessions Manage server-side sessions. │ │ users Manage application users. │ │ version Show the currently installed Litestar version. │ │ worker Manage application background workers. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ``` ## Database Commands ```bash ❯ app database Using Litestar app from env: 'app.asgi:create_app' Usage: app database [OPTIONS] COMMAND [ARGS]... Manage SQLAlchemy database components. ╭─ Options ────────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ │ downgrade Downgrade database to a specific revision. │ │ init Initialize migrations for the project. │ │ make-migrations Create a new migration revision. │ │ merge-migrations Merge multiple revisions into a single new revision. │ │ show-current-revision Shows the current revision for the database. │ │ stamp-migration Mark (Stamp) a specific revision as current without │ │ applying the migrations. │ │ upgrade Upgrade database to a specific revision. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ``` ### Upgrading the Database ```bash ❯ app database upgrade Using Litestar app from env: 'app.asgi:create_app' Starting database upgrade process ─────────────────────────────────────────────── Are you sure you you want migrate the database to the "head" revision? [y/n]: y 2023-10-01T19:44:13.536101Z [debug ] Using selector: EpollSelector 2023-10-01T19:44:13.623437Z [info ] Context impl PostgresqlImpl. 2023-10-01T19:44:13.623617Z [info ] Will assume transactional DDL. 2023-10-01T19:44:13.667920Z [info ] Running upgrade -> c3a9a11cc35d, init 2023-10-01T19:44:13.774932Z [debug ] new branch insert c3a9a11cc35d 2023-10-01T19:44:13.783804Z [info ] Pool disposed. Pool size: 5 Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0 2023-10-01T19:44:13.784013Z [info ] Pool recreating ``` ## Worker Commands ```bash ❯ app worker Using Litestar app from env: 'app.asgi:create_app' Usage: app worker [OPTIONS] COMMAND [ARGS]... Manage application background workers. ╭─ Options ────────────────────────────────────────────────────────────────────╮ │ --help -h Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ │ run Starts the background workers. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ``` ## Run Commands To run the application through Uvicorn using the standard Litestar CLI, you can use the following: ```bash ❯ app run --help Using Litestar app from env: 'app.asgi:create_app' Usage: app run [OPTIONS] Run a Litestar app. The app can be either passed as a module path in the form of .:, set as an environment variable LITESTAR_APP with the same format or automatically discovered from one of these canonical paths: app.py, asgi.py, application.py or app/__init__.py. When auto-discovering application factories, functions with the name ``create_app`` are considered, or functions that are annotated as returning a ``Litestar`` instance. ╭─ Options ────────────────────────────────────────────────────────────────────╮ │ --reload -r Reload server on │ │ changes │ │ --reload-dir -R TEXT Directories to watch │ │ for file changes │ │ (TEXT) │ │ --port -p INTEGER Serve under this port │ │ (INTEGER) │ │ [default: 8000] │ │ --wc,--web-concurrency -W INTEGER RANGE The number of HTTP │ │ [1<=x<=7] workers to launch │ │ (INTEGER RANGE) │ │ [default: 1; 1<=x<=7] │ │ --host -H TEXT Server under this host │ │ (TEXT) │ │ [default: 127.0.0.1] │ │ --fd,--file-descriptor -F INTEGER Bind to a socket from │ │ this file descriptor. │ │ (INTEGER) │ │ --uds,--unix-domain-so… -U TEXT Bind to a UNIX domain │ │ socket. │ │ (TEXT) │ │ --debug -d Run app in debug mode │ │ --pdb,--use-pdb -P Drop into PDB on an │ │ exception │ │ --help -h Show this message and │ │ exit. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ``` ## Installation and Configuration We have documented the process to help you get the repository up and running. Check out the [documentation][docs] for more information. [//]: # "links" [docs]: https://docs.fullstack.litestar.dev/