{"id":21037485,"url":"https://github.com/vintasoftware/django-stack","last_synced_at":"2025-03-13T20:42:39.327Z","repository":{"id":29769783,"uuid":"33313692","full_name":"vintasoftware/django-stack","owner":"vintasoftware","description":null,"archived":false,"fork":false,"pushed_at":"2015-04-02T15:13:37.000Z","size":124,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-20T16:22:14.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/vintasoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-02T14:38:13.000Z","updated_at":"2017-05-02T07:28:35.000Z","dependencies_parsed_at":"2022-09-07T00:41:30.312Z","dependency_job_id":null,"html_url":"https://github.com/vintasoftware/django-stack","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/vintasoftware%2Fdjango-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vintasoftware","download_url":"https://codeload.github.com/vintasoftware/django-stack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243482877,"owners_count":20297897,"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-11-19T13:26:32.413Z","updated_at":"2025-03-13T20:42:39.299Z","avatar_url":"https://github.com/vintasoftware.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django stack\n\nSome guidelines to configuring a new django project.\nCurrently meant for Django 1.7\n\n## Dependencies\n\n```\npip install python-decouple\npip install dj-database-url\npip install django-bower\npip install django-storages\npip install boto\npip install django-compressor\npip install Collectfast\npip install django-compressor\n\ngit+https://github.com/vintasoftware/django-naomi.git@fix-webbrowser-open#egg=django-naomi\n```\n\n## settings.py\n\n```\nimport os\n\nfrom decouple import config\nfrom dj_database_url import parse as db_url\n\n\nPRODUCTION = 'PRODUCTION_ENV' in os.environ\n\nBASE_DIR = os.path.dirname(os.path.dirname(__file__))\n\ndef base_dir_join(*args):\n    return os.path.join(BASE_DIR, *args)\n\nDEBUG = config('DEBUG', default=True, cast=bool)\nTEMPLATE_DEBUG = DEBUG\n\nSECRET_KEY = config('SECRET_KEY', default='123')\n\nINSTALLED_APPS = (\n\t...\n    'collectfast', # collectfast must come before staticfiles in Django 1.7+\n    'django.contrib.staticfiles',\n    ...\n    'storages',\n    'compressor',\n    'djangobower',\n    ...\n)\n\nDATABASES = {\n    'default': config(\n        'DATABASE_URL',\n        default='sqlite:///' + base_dir_join('db.sqlite3'),\n        # default='postgres://localhost:5432/myapp',\n        cast=db_url)\n}\n\nSTATICFILES_FINDERS = (\n    'django.contrib.staticfiles.finders.FileSystemFinder',\n    'django.contrib.staticfiles.finders.AppDirectoriesFinder',\n    'djangobower.finders.BowerFinder',\n    'compressor.finders.CompressorFinder',\n)\n\n# storages\nAWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID', default='')\nAWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY', default='')\nAWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME', default='')\nAWS_S3_SECURE_URLS = False\nAWS_QUERYSTRING_AUTH = False\nAWS_S3_CUSTOM_DOMAIN = '{0}.s3.amazonaws.com'.format(AWS_STORAGE_BUCKET_NAME)\n\nDEFAULT_FILE_STORAGE = config('DEFAULT_FILE_STORAGE',\n    default='django.core.files.storage.FileSystemStorage')\nSTATICFILES_STORAGE = config('STATICFILES_STORAGE',\n    default='django.contrib.staticfiles.storage.StaticFilesStorage')\n\nSTATIC_ROOT = base_dir_join('staticfiles')\nSTATIC_URL = '/static/'\nMEDIA_ROOT = base_dir_join('media')\nMEDIA_URL = '/media/'\n\nif PRODUCTION:\n    STATIC_URL = 'http://{0}/static/'.format(AWS_S3_CUSTOM_DOMAIN)\n    MEDIA_URL = 'http://{0}/media/'.format(AWS_S3_CUSTOM_DOMAIN)\n\n# collectfast\nAWS_PRELOAD_METADATA = True\nCOLLECTFAST_CACHE = 'collectfast'\nCOLLECTFAST_ENABLED = PRODUCTION\n\n# bower\nBOWER_COMPONENTS_ROOT = base_dir_join('components')\n\n# compressor\nCOMPRESS_ENABLED = config('COMPRESS_ENABLED', default=False)\nCOMPRESS_STORAGE = STATICFILES_STORAGE\nCOMPRESS_URL = STATIC_URL\n\n# email\nif not PRODUCTION:\n    INSTALLED_APPS += ('naomi',)\n    EMAIL_BACKEND = 'naomi.mail.backends.naomi.NaomiBackend'\n    EMAIL_FILE_PATH = base_dir_join('tmp_email')\nelse:\n    SERVER_EMAIL = config('SERVER_EMAIL')\n    EMAIL_HOST = config('EMAIL_HOST')\n    EMAIL_PORT = config('EMAIL_PORT')\n    EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool)\n    EMAIL_HOST_USER = config('EMAIL_HOST_USER')\n    EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')\n\nTEMPLATED_EMAIL_TEMPLATE_DIR = 'emails/'\nTEMPLATED_EMAIL_FILE_EXTENSION = 'email'\n\n# caches\nCACHES = {\n    'default': {\n        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',\n    },\n    'collectfast': {\n        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',\n        'LOCATION': 'django_db_cache_collectfast',\n        'TIMEOUT': 60 * 60 * 24 * 7 * 30,  # 1 month\n        'OPTIONS': {\n            'MAX_ENTRIES': 10000\n        }\n    }\n}\n\n# logging\nLOGGING = {\n    'version': 1,\n    'disable_existing_loggers': False,\n    'filters': {\n        'require_debug_false': {\n            '()': 'django.utils.log.RequireDebugFalse'\n        }\n    },\n    'handlers': {\n        'console': {\n            'level': 'INFO',\n            'class': 'logging.StreamHandler'\n        },\n        'mail_admins': {\n            'level': 'ERROR',\n            'filters': ['require_debug_false'],\n            'class': 'django.utils.log.AdminEmailHandler'\n        }\n    },\n    'loggers': {\n        '': {\n            'handlers': ['console'],\n            'level': 'INFO'\n        },\n        'segment': {\n            'handlers': ['console'],\n            'level': 'DEBUG',\n            'propagate': True,\n        },\n        'django.request': {\n            'handlers': ['mail_admins'],\n            'level': 'ERROR',\n            'propagate': True,\n        }\n    }\n}\n\n```\n\n## package.json\n```\n{\"private\": true,\"dependencies\": {\"bower\": \"*\"}}\n```\n\n## .editorconfig\n\n```\n# editorconfig.org\n\nroot = true\n\n[*]\nindent_style = space\nindent_size = 4\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.js]\nindent_size = 2\n\n[*.html]\nindent_size = 2\n\n[*.scss]\nindent_size = 2\n\n[*.md]\ntrim_trailing_whitespace = false\n\n[Makefile]\nindent_style = tab\n```\n\n# Makefile\n\n```\nclean:\n    @find . -name \"*.pyc\" -delete\n```\n\n## Heroku\n\n### Procfile\n\n```\nweb: gunicorn myapp.wsgi --log-file -\n```\n\n### .buildpack\n\n```\nhttps://github.com/heroku/heroku-buildpack-nodejs.git\nhttps://github.com/vintasoftware/heroku-buildpack-python-with-django-bower.git\n```\n\nCommands to run on first deploy:\n```\nheroku config:set BUILDPACK_URL=https://github.com/vintasoftware/heroku-buildpack-multi.git\nheroku run python manage.py createcachetable django_db_cache_collectfast\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fdjango-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvintasoftware%2Fdjango-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fdjango-stack/lists"}