Add .env.example with configuration for database, Redis, security, SMTP, workers, and plugins. Add .gitignore for Python, Node.js, Next.js, Docker volumes, and IDE files. Add MIT License. Update README.md with feature overview, quick start guide, architecture description, plugin system documentation, security details, backup/restore instructions, and developer setup. Add Alembic configuration files and placeholder directories for API, web, worker, and plugin components
78 lines
1.8 KiB
TOML
78 lines
1.8 KiB
TOML
[tool.poetry]
|
|
name = "nexadash"
|
|
version = "0.1.0"
|
|
description = "Modern, self-hosted plugin-based dashboard for Homelab, server and infrastructure services"
|
|
authors = ["NexaDash Team <team@nexadash.local>"]
|
|
readme = "README.md"
|
|
packages = [
|
|
{ include = "apps/api/src", from = "." },
|
|
{ include = "apps/worker/src", from = "." },
|
|
{ include = "packages/shared/src", from = "." },
|
|
]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.12"
|
|
fastapi = "^0.115.0"
|
|
uvicorn = { extras = ["standard"], version = "^0.32.0" }
|
|
python-multipart = "^0.0.17"
|
|
pydantic = { extras = ["email"], version = "^2.9.0" }
|
|
pydantic-settings = "^2.6.0"
|
|
sqlalchemy = { extras = ["asyncio"], version = "^2.0.36" }
|
|
asyncpg = "^0.30.0"
|
|
alembic = "^1.14.0"
|
|
redis = "^5.2.0"
|
|
celery = "^5.4.0"
|
|
flower = "^2.0.1"
|
|
argon2-cffi = "^23.1.0"
|
|
cryptography = "^43.0.0"
|
|
pyjwt = "^2.9.0"
|
|
python-jose = { extras = ["cryptography"], version = "^3.3.0" }
|
|
httpx = "^0.27.0"
|
|
aiohttp = "^3.11.0"
|
|
itsdangerous = "^2.2.0"
|
|
email-validator = "^2.2.0"
|
|
jinja2 = "^3.1.4"
|
|
python-dotenv = "^1.0.1"
|
|
structlog = "^24.4.0"
|
|
slowapi = "^0.1.9"
|
|
fastapi-limiter = "^0.1.6"
|
|
fastapi-mail = "^1.4.2"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
pytest = "^8.3.3"
|
|
pytest-asyncio = "^0.24.0"
|
|
pytest-cov = "^6.0.0"
|
|
httpx = "^0.27.0"
|
|
factory-boy = "^3.3.1"
|
|
freezegun = "^1.5.1"
|
|
black = "^24.10.0"
|
|
isort = "^5.13.2"
|
|
flake8 = "^7.1.1"
|
|
mypy = "^1.13.0"
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ['py312']
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
line_length = 100
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = [
|
|
"apps/api/tests",
|
|
"apps/worker/tests",
|
|
"packages/shared/tests",
|
|
]
|