Skip to main content

Usage

⚠️ Git, Python and UV must be installed and accessible ⚠️

You can install it directly from pypi with pip.

python3 -m pip install ovinnik
python3 -m ovinnik
# or ovinnik
# Answer all the questions
# 🍪 Enjoy your new project 🍪
cd new_project
docker-compose up --build

If you want to install it from sources, try this:

python3 -m pip install uv 
python3 -m pip install .
python3 -m ovinnik

Also, you can use it with docker.

docker run --rm -it -v "$(pwd):/projects" ghcr.io/oper18/ovinnik

Features

One of the coolest features is that this project is extremely configurable. You can choose between different databases and even ORMs, or you can even generate a project without a database! Currently SQLAlchemy 2.0, TortoiseORM, Piccolo, Ormar and Beanie are supported.

This project can run as TUI or CLI and has excellent code documentation.

Generator features:

  • Pydantic V2 (Where it's possible. Some libs doesn't have support);
  • You can choose between GraphQL and REST api;
  • Uvicorn and gunicorn;
  • Different databases support;
  • Different ORMs support;
  • Optional migrations for each ORM except raw drivers;
  • Optional redis support;
  • Optional rabbitmq support;
  • different CI\CD;
  • Optional Demo routers and models (This helps you to see how project is structured);
  • Pre-commit integration;
  • Generated tests with almost 90% coverage;
  • Tests for the generator itself;
  • Optional Prometheus integration;
  • Optional Sentry integration;
  • Optional Loguru logger;
  • Optional Opentelemetry integration.
  • Optional taskiq integration.

This project can handle arguments passed through command line.

$ python -m ovinnik --help

Usage: ovinnik [OPTIONS]

Options:
  -n, --name TEXT                 Name of your awesome project
  -V, --version                   Prints current version
  --force                         Owerrite directory if it exists
  --quiet                         Do not ask for features during generation
  --api-type [rest|graphql]       Select API type for your application
  --db [none|sqlite|mysql|postgresql|mongodb]
                                  Select a database for your app
  --orm [none|ormar|sqlalchemy|tortoise|psycopg|piccolo|beanie]
                                  Choose Object–Relational Mapper lib
  --ci [none|gitlab_ci|github]    Select a CI for your app
  --redis                         Add redis support
  --add_users                     Add user registration and authentication
  --role-based                    Add role-based access control (RBAC) models
  --rabbit                        Add RabbitMQ support
  --taskiq                        Add Taskiq support
  --migrations                    Add Migrations
  --dummy                         Add dummy model
  --routers                       Add example routers
  --swagger                       Add self hosted swagger
  --prometheus                    Add prometheus compatible metrics
  --sentry                        Add sentry integration
  --loguru                        Add loguru logger
  --opentelemetry                 Add opentelemetry integration
  --traefik                       Adds traefik labels to docker container
  --kafka                         Add Kafka support
  --gunicorn                      Add gunicorn server
  --cookie-auth                   Add authentication via cookie support
  --jwt-auth                      Add JWT auth support
  --help                          Show this message and exit.

Release files for ovinnik 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovinnik 0.2.0
File Size Uploaded
ovinnik-0.2.0.tar.gz 828.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovinnik 0.2.0
File Interpreter ABI Platform
ovinnik-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / ovinnik-0.2.0.tar.gz

Download URL ovinnik-0.2.0.tar.gz
Size 828.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cc3077188e0ba382a8df9fdd1c75871a35f706802263486350e1b5024d4d7141
BLAKE2b-256 checksum
How to use checksums
59f4176cec197cf2ac4c14cc57d5d86060f29af5b889695d3159ba70d9bd0c6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ovinnik-0.2.0-py3-none-any.whl

Download URL ovinnik-0.2.0-py3-none-any.whl
Size 926.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ef2bd46384dec037121f959589683daf99312076fbc0b5d3f0c780af16ee6e4a
BLAKE2b-256 checksum
How to use checksums
53a1aec367fb2b20a3e010f7294e1989520d96b182e2221be83aee3cff6e1239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page