{"id":17003237,"url":"https://github.com/jayfk/cookiecutter-saas","last_synced_at":"2025-03-17T09:30:59.067Z","repository":{"id":10591611,"uuid":"66273462","full_name":"jayfk/cookiecutter-saas","owner":"jayfk","description":"A highly specialised project template for SaaS websites based on Django and (optionally) React + Redux","archived":false,"fork":false,"pushed_at":"2022-06-09T23:52:51.000Z","size":3855,"stargazers_count":46,"open_issues_count":75,"forks_count":16,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-27T22:00:42.201Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cookiecutter-saas.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jayfk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-22T13:06:29.000Z","updated_at":"2024-09-06T17:21:53.000Z","dependencies_parsed_at":"2022-07-25T02:34:48.463Z","dependency_job_id":null,"html_url":"https://github.com/jayfk/cookiecutter-saas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayfk%2Fcookiecutter-saas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayfk%2Fcookiecutter-saas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayfk%2Fcookiecutter-saas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayfk%2Fcookiecutter-saas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jayfk","download_url":"https://codeload.github.com/jayfk/cookiecutter-saas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243858929,"owners_count":20359260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-14T04:30:01.912Z","updated_at":"2025-03-17T09:30:58.230Z","avatar_url":"https://github.com/jayfk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Warning\n\nThis project is no longer maintained.\n\n[![Updates](https://pyup.io/repos/github/jayfk/cookiecutter-saas/shield.svg)](https://pyup.io/repos/github/jayfk/cookiecutter-saas/)\n[![Build Status](https://travis-ci.org/jayfk/cookiecutter-saas.svg?branch=master)](https://travis-ci.org/jayfk/cookiecutter-saas) \n[![codecov](https://codecov.io/gh/jayfk/cookiecutter-saas/branch/master/graph/badge.svg)](https://codecov.io/gh/jayfk/cookiecutter-saas)\n[![Documentation Status](https://readthedocs.org/projects/cookiecutter-saas/badge/?version=latest)](http://cookiecutter-saas.readthedocs.io/en/latest/?badge=latest)\n\nCookiecutter SaaS is a highly specialised project template for SaaS websites. It is based on Django with full (optional) React \u0026 Redux support. [Screenshots](https://cookiecutter-saas.readthedocs.io/en/latest/screenshots.html)\n\n# Features\n*Note: This section is incomplete, see [#47](https://github.com/jayfk/cookiecutter-saas/issues/47)*\n\n- Docker on development and production\n- 100% project test coverage\n- subscription management out of the box with stripe\n- invoicing and VAT collection\n- React and Redux integration (optional)\n- Private beta mode\n- Free subscription support (freemium \u0026 trial)\n- On production:\n    - Error log aggregation and notification\n    - Application monitoring\n    - Managed newsletter sign ups\n    - HTTPs out of the box (Let's encrypt)\n    - Zero downtime deployments\n\n*This is only a small subset of available features. [Show all Features](https://cookiecutter-saas.readthedocs.io/en/latest/write_your_app.html)*\n\n# Stack\n*Note: This section is incomplete, see [#46](https://github.com/jayfk/cookiecutter-saas/issues/45)*\n\n- Django\n- Celery task queue\n- React \u0026 Redux (optional)\n- Redis\n- Postgres\n- Caddy web server\n\n*Want to know more? Check out the [stack](https://cookiecutter-saas.readthedocs.io/en/latest/stack.html) section in the docs.*\n\n# Installation\n\nFirst, you need to install Cookiecutter:\n\n    pip install cookiecutter\n\nNow run it against this repo:\n\n\tcookiecutter https://github.com/jayfk/cookiecutter-saas\n\t\nCookiecutter will prompt you for some options on how the project should be generated for you. If you are doing this for the first time, check out the [prompts section](https://cookiecutter-saas.readthedocs.io/en/latest/prompts.html) in the docs.\n\n```\nproject_name [project_name]: Demo\nproject_slug [demo]:\nauthor_name [Jannis Gebauer]:\nemail [ja.geb@me.com]:\ninfo_mail [ja.geb@me.com]:\ndomain_name [example.com]: demo.cookiecutter-saas.com\ntimezone [UTC]:\nSelect django_long_term_support:\n1 - yes\n2 - no\nChoose from 1, 2 [1]: 2\nSelect react:\n1 - yes\n2 - no\nChoose from 1, 2 [1]: 1\nSelect blog:\n1 - yes\n2 - no\nChoose from 1, 2 [1]: 1\nSelect private_beta:\n1 - yes\n2 - no\nChoose from 1, 2 [1]: 1\nSelect free_subscription_type:\n1 - freemium\n2 - trial\n3 - None\nChoose from 1, 2, 3 [1]: 1\n```\n\nOnce Cookiecutter finishes, enter the project directory and take a look around:\n\n    cd demo/\n    ls -la\n    \n# Developing locally\n\n## Prereqiuisites\nCookiecutter SaaS uses Docker for development and production, make sure Docker and Docker Compose are installed. If you are planning to push your project to production (you should), you'll also need to install Docker Machine.\n\n### On macOS\nFollow the [Docker for Mac](https://docs.docker.com/docker-for-mac/) installation instructions. This will install Docker, Docker Compose and Docker Machine on your Mac.\n\n### Windows\nFollow the [Docker for Windows](https://docs.docker.com/docker-for-windows/) installation instructions. This will install Docker, Docker Compose and Docker Machine on your Windows machine.\n\n### Linux\nFirst, you need to install the Docker engine, follow the [Docker on Linux](https://docs.docker.com/engine/installation/#/on-linux) installation instructions. Next, you need to [install Docker Compose](https://docs.docker.com/compose/install/) and [install Docker Machine](https://docs.docker.com/machine/install-machine/).\n\nMake sure everything is installed correctly by running:\n\n\tdocker --version\n\tdocker-compose --version\n\tdocker-machine --version\n\t\t\n## Running the Project\n\nBefore running the project for the first time, you need to build it.\n\nStart the build process with: \n\n    docker-compose -f dev.yml build\n\nThis tells Docker Compose to:\n\n- pull all required base images from Docker Hub\n- install all python dependencies via pip (and npm if you are going to using react)\n- copy utility scripts into the image\n- set up all required environment variables    \n\nThis is going to take a while the first time you run it. Subsequent builds will be a lot faster because Docker caches each build step.\n\nWhile you wait, check out the [Third Party Services](https://cookiecutter-saas.readthedocs.io/en/latest/third_party_services.html) section. During development - in order to test subscriptions - we just need the Stripe and Octobat keys to be set. Create an account for both services and copy the keys to `config/settings/local.py`.\n\nOnce the build process is completed, run the project with:\n\n\tdocker-compose -f dev.yml up\n\t\nYou should see a lot of log messages flying by as each container is initializing itself. Look at the logs.\n\n\tdjango_1    | Django version 1.10, using settings 'config.settings.local'\n\tdjango_1    | Development server is running at http://0.0.0.0:8000/\n\tdjango_1    | Using the Werkzeug debugger (http://werkzeug.pocoo.org/)\n\tdjango_1    | Quit the server with CONTROL-C.\n\tdjango_1    |  * Debugger is active!\n\tdjango_1    |  * Debugger pin code: 241-491-852\n\t\nAs soon as you see a log similar to this, your project is ready. \n \nFire up your browser and go to [http://localhost:8000](http://localhost:8000).\n![hello localhost](docs/images/hello_localhost.png)\n\nIf you want, you can now create a super user. Open up a second terminal and run:\n\n\tdocker-compose -f dev.yml run django python manage.py createsuperuser\n\n## What's next?\n\n*Note: Some parts of the documentation are still incomplete. The % next to each link indicates how far the documentation for the topic is.* \n\n- [Write your app](https://cookiecutter-saas.readthedocs.io/en/latest/write_your_app.html) *40%*\n- [Things to change](https://cookiecutter-saas.readthedocs.io/en/latest/things_to_change.html) *50%*\n- **Project Specific**:\n    - [Preinstalled apps](https://cookiecutter-saas.readthedocs.io/en/latest/cookiecutter_saas_preinstalled_apps.html) *70%*\n    - [Settings](https://cookiecutter-saas.readthedocs.io/en/latest/cookiecutter_saas_settings.html) *60%*\n- [Subscriptions](https://cookiecutter-saas.readthedocs.io/en/latest/subscriptions.html) *0%*\n- [Project code overview](https://cookiecutter-saas.readthedocs.io/en/latest/code_overview.html) *0%*\n- [Third Party Services](https://cookiecutter-saas.readthedocs.io/en/latest/third_party_services.html) *80%*\n- [React](https://cookiecutter-saas.readthedocs.io/en/latest/react.html) *0%*\n- **Production**:\n    - [Get the Production Addon](https://gumroad.com/l/CgvLn)\n    - [Deploying to production](https://cookiecutter-saas.readthedocs.io/en/latest/production.html) *20%*\n    - [Scaling](https://cookiecutter-saas.readthedocs.io/en/latest/scaling.html) *0%*\n- [Dependencies](https://cookiecutter-saas.readthedocs.io/en/latest/dependencies.html) *95%*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayfk%2Fcookiecutter-saas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjayfk%2Fcookiecutter-saas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayfk%2Fcookiecutter-saas/lists"}