{"id":21546970,"url":"https://github.com/lexxai/goit_python_web_hw_14","last_synced_at":"2026-05-04T22:34:01.908Z","repository":{"id":209063820,"uuid":"723135184","full_name":"lexxai/goit_python_web_hw_14","owner":"lexxai","description":"GoIT, Python WEB, Homework number 14. Documentation. Testing. PyTest. Unittest. PyDoc. Sphinx.  PyTest-cov. Deploy koyeb.com","archived":false,"fork":false,"pushed_at":"2023-12-07T09:10:50.000Z","size":5440,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-17T10:39:09.457Z","etag":null,"topics":["docker","docker-compose","documentation","homework","pytest","pytest-cov","python","sphinx","unittest"],"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/lexxai.png","metadata":{"files":{"readme":"README-DEPL.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}},"created_at":"2023-11-24T19:27:16.000Z","updated_at":"2023-12-06T03:32:15.000Z","dependencies_parsed_at":"2024-12-07T06:17:27.707Z","dependency_job_id":null,"html_url":"https://github.com/lexxai/goit_python_web_hw_14","commit_stats":null,"previous_names":["lexxai/goit_python_web_hw_14"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/lexxai/goit_python_web_hw_14","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexxai%2Fgoit_python_web_hw_14","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexxai%2Fgoit_python_web_hw_14/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexxai%2Fgoit_python_web_hw_14/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexxai%2Fgoit_python_web_hw_14/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lexxai","download_url":"https://codeload.github.com/lexxai/goit_python_web_hw_14/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexxai%2Fgoit_python_web_hw_14/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32628209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: 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":["docker","docker-compose","documentation","homework","pytest","pytest-cov","python","sphinx","unittest"],"created_at":"2024-11-24T06:13:48.590Z","updated_at":"2026-05-04T22:34:01.887Z","avatar_url":"https://github.com/lexxai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DEPLOY to koyeb.com\n![deploy](doc/deploy-koyeb-01.png)\n\n![deploy](doc/deploy-koyeb-02.png)\n\n![deploy](doc/deploy-koyeb-03.png)\n\n![deploy](doc/deploy-koyeb-04.png)\n\n![deploy](doc/deploy-koyeb-05.png)\n\n![deploy](doc/deploy-koyeb-06.png)\n\n![deploy](doc/deploy-koyeb-07.png)\n\n![deploy](doc/deploy-koyeb-08.png)\n\n![deploy](doc/deploy-koyeb-09.png)\n\n![deploy](doc/deploy-koyeb-10.png)\n\n![deploy](doc/deploy-koyeb-11.png)\n\n![deploy](doc/deploy-koyeb-12.png)\n\n![deploy](doc/deploy-koyeb-13.png)\n\n## JS CLIENT\n\n![deploy](doc/deploy-koyeb-14.png)\n\n## AUTOMAIC RE-DEPLOOY ON GIT COMMIT \n\n![deploy](doc/deploy-koyeb-15.png)\n\n### IF AUTOMAIC RE-DEPLOOY ERROR\n\n![deploy](doc/deploy-koyeb-16.png)\n\n## RESULT AFTER AUTH\n\n![deploy](doc/deploy-koyeb-17.png)\n\n## KOYEB CACHED STATIC\n\n![deploy](doc/deploy-koyeb-18.png)\n\n![deploy](doc/deploy-koyeb-19.png)\n\n```\nclass StaticFilesCache(StaticFiles):\n    def __init__(self, *args, cachecontrol=\"public, max-age=31536000, s-maxage=31536000, immutable\", **kwargs):\n        self.cachecontrol = cachecontrol\n        super().__init__(*args, **kwargs)\n\n    def file_response(self, *args, **kwargs) -\u003e Response:\n        resp: Response = super().file_response(*args, **kwargs)\n        resp.headers.setdefault(\"Cache-Control\", self.cachecontrol)\n        return resp\n\n\ndef add_static(_app):\n    _app.mount(\n        path=\"/static\",\n        app=StaticFilesCache(directory=settings.STATIC_DIRECTORY, cachecontrol=\"private, max-age=3600\"),\n        name=\"static\",\n    )\n    _app.mount(path=\"/sphinx\", app=StaticFilesCache(directory=settings.SPHINX_DIRECTORY, html=True), name=\"sphinx\")\n\n```\n\n![deploy](doc/deploy-koyeb-20.png)\n\n## DATABASES\n### PG KOYEB\n\n![deploy](doc/deploy-koyeb-db-01.png)\n\n![deploy](doc/deploy-koyeb-db-redis-01.png)\n\n### REDIS redislabs.com\n![deploy](doc/deploy-redis-01.png)\n\n![deploy](doc/deploy-redis-02.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexxai%2Fgoit_python_web_hw_14","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flexxai%2Fgoit_python_web_hw_14","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexxai%2Fgoit_python_web_hw_14/lists"}