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)
| File | Size | Uploaded | |
|---|---|---|---|
| ovinnik-0.2.0.tar.gz | 828.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|