{"id":34758071,"url":"https://github.com/sourcepirate/waverider","last_synced_at":"2026-05-16T16:36:59.738Z","repository":{"id":288708144,"uuid":"968953407","full_name":"sourcepirate/waverider","owner":"sourcepirate","description":"A template for django, celery and ninja with Docker support and  CI  Settings preconfigured. ","archived":false,"fork":false,"pushed_at":"2026-03-15T15:39:58.000Z","size":160,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-16T04:09:00.453Z","etag":null,"topics":["celery","cookiecutter-django","cookiecutter-django-docker","django","github-workflows","pytest","scaffold"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcepirate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-19T04:05:42.000Z","updated_at":"2026-03-15T15:40:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"f11e1664-1b7c-4eeb-a73e-49f1b83de901","html_url":"https://github.com/sourcepirate/waverider","commit_stats":null,"previous_names":["sourcepirate/waverider"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sourcepirate/waverider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcepirate%2Fwaverider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcepirate%2Fwaverider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcepirate%2Fwaverider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcepirate%2Fwaverider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcepirate","download_url":"https://codeload.github.com/sourcepirate/waverider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcepirate%2Fwaverider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33109672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["celery","cookiecutter-django","cookiecutter-django-docker","django","github-workflows","pytest","scaffold"],"created_at":"2025-12-25T05:48:02.153Z","updated_at":"2026-05-16T16:36:59.732Z","avatar_url":"https://github.com/sourcepirate.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cookiecutter Django Celery Ninja\n\n[![Build Status](https://github.com/sourcepirate/waverider/workflows/Test%20Cookiecutter%20Template/badge.svg)](https://github.com/sourcepirate/waverider/actions)\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)\n[![License](https://img.shields.io/github/license/sourcepirate/waverider.svg)](https://github.com/sourcepirate/waverider/blob/main/LICENSE)\n[![Cookiecutter](https://img.shields.io/badge/cookiecutter-template-green.svg)](https://github.com/cookiecutter/cookiecutter)\n\nA Cookiecutter template for creating Django projects with Celery, Celery Beat, Django Ninja for APIs, and Docker support.\n\n## Features\n\n*   **Django {{ django_version | default('5.0') }}**: The core web framework.\n*   **Django Ninja**: Fast, async-ready API framework with type hints.\n*   **Celery \u0026 Celery Beat**: Asynchronous task processing and periodic tasks.\n*   **PostgreSQL**: Default database.\n*   **Redis**: Default Celery broker and result backend.\n*   **Docker \u0026 Docker Compose**: For containerized development and deployment setup.\n*   **Environment Variables**: Settings managed via `.env` file using `python-decouple`.\n*   **Basic Settings Structure**: Separate settings for `local` and `production`.\n*   **Gunicorn**: Production WSGI server.\n*   **Whitenoise**: Simplified static file serving for production (optional).\n\n## Prerequisites\n\n*   Python 3.8+\n*   Cookiecutter: `pip install cookiecutter`\n*   Docker \u0026 Docker Compose (if using the Docker setup `use_docker=y`)\n\n## Usage\n\nGenerate your project using Cookiecutter:\n\n```bash\ncookiecutter gh:your-github-username/cookiecutter-django-celery-ninja\n```\n\nOr from a local clone:\n\n```bash\ncookiecutter /path/to/cookiecutter-django-celery-ninja\n```\n\nYou will be prompted for configuration values (like project name, author, database settings, etc.). See `cookiecutter.json` for details.\n\n## Testing the Template\n\nThis template includes comprehensive testing using tox to ensure all functionality works correctly.\n\n### Prerequisites for Testing\n\nInstall test dependencies:\n\n```bash\npip install -r test-requirements.txt\n```\n\n### Running Tests\n\n#### Using Tox (Recommended)\n\nRun all tests across multiple Python versions:\n\n```bash\n# Run basic validation\ntox -e validate\n\n# Run quick tests  \ntox -e quick-test\n\n# Run template tests\ntox -e template-test\n\n# Run all validation tests\ntox -e all-tests\n\n# Run tests for specific Python version\ntox -e py311\n\n# Run all environments\ntox\n```\n\n#### Using Makefile\n\n```bash\n# Traditional test methods\nmake test          # Run all tests\nmake test-basic    # Basic validation only\nmake test-gen      # Test cookiecutter generation\nmake test-full     # Full test suite\n\n# Tox-based tests\nmake tox-test      # Run tox tests\nmake tox-validate  # Run tox validation\nmake tox-all       # Run all tox environments\n```\n\n#### Direct Script Execution\n\n```bash\n# Individual test scripts\npython validate_template.py          # Comprehensive validation\npython tests/quick_test.py           # Quick validation\npython tests/run_tests.py            # Full test suite\npython -m pytest tests/test_cookiecutter.py -v  # Pytest tests\n```\n\n### Available Tox Environments\n\n* `validate`: Template structure validation\n* `quick-test`: Quick validation checks\n* `template-test`: Full template testing\n* `py38`, `py39`, `py310`, `py311`, `py312`: Python version-specific tests\n* `lint`: Code linting with flake8, black, isort\n* `format`: Code formatting with black and isort\n* `coverage`: Test coverage reporting\n* `all-tests`: Comprehensive test suite\n\n## Generated Project Setup\n\nAfter generating the project, navigate to the project directory (`cd your_project_slug`) and follow the instructions in the generated project's `README.md`.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a pull request or open an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcepirate%2Fwaverider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcepirate%2Fwaverider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcepirate%2Fwaverider/lists"}