{"id":18298333,"url":"https://github.com/s3rgeym/url-shortener","last_synced_at":"2026-04-05T23:04:33.924Z","repository":{"id":204221460,"uuid":"711364967","full_name":"s3rgeym/url-shortener","owner":"s3rgeym","description":"Шаблон для разработки через Docker с возможностью отладки и автоматической перезагрузкой при изменении кода. ","archived":false,"fork":false,"pushed_at":"2023-11-01T20:10:26.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T09:16:40.319Z","etag":null,"topics":["asyncio","docker","docker-compose","fastapi","postgresql","python","vscode"],"latest_commit_sha":null,"homepage":"","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/s3rgeym.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-29T02:56:57.000Z","updated_at":"2023-10-29T06:38:31.000Z","dependencies_parsed_at":"2023-11-01T20:34:42.827Z","dependency_job_id":null,"html_url":"https://github.com/s3rgeym/url-shortener","commit_stats":null,"previous_names":["s3rgeym/url-shortener"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/s3rgeym/url-shortener","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rgeym%2Furl-shortener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rgeym%2Furl-shortener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rgeym%2Furl-shortener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rgeym%2Furl-shortener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s3rgeym","download_url":"https://codeload.github.com/s3rgeym/url-shortener/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rgeym%2Furl-shortener/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265311871,"owners_count":23745161,"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":["asyncio","docker","docker-compose","fastapi","postgresql","python","vscode"],"created_at":"2024-11-05T15:05:48.599Z","updated_at":"2025-12-30T22:07:36.101Z","avatar_url":"https://github.com/s3rgeym.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URL Shortener\n\nReal-world app example and template for development in Docker.\n\nDevelopment Stack: VSCode, Docker, Postgres, Pgadmin, Python, FastAPI, Asyncpg.\n\nLaunch compose:\n\n```bash\ndocker compose up -d\n```\n\nThen `F5` \u003e `Python: Remote Attach` for Debugging. The application will start only after the debugger. This is a development template.\n\nCode changes will take effect immediately.\n\nCreate SHORT URL via Curl:\n\n```bash\n$ curl -d'url=https://www.youtube.com/watch?v=capY9GLjVk8' localhost:8000\nhttp://localhost:8000/5ZTmyEZZW0~HPJnfptY9f\n```\n\n| URL | Service |\n| --- | --- |\n| \u003chttp://localhost:8000/\u003e | URL Shortener |\n| \u003chttp://localhost:8000/docs\u003e | Documentation |\n| \u003chttp://localhost:5050/\u003e | pgAdmin. Default credentials: `pgadmin4@pgadmin.org:admin` |\n\n![image](https://user-images.githubusercontent.com/12753171/278887688-8d1a7627-5349-44a8-b314-4fbae730cf59.png)\n![image](https://user-images.githubusercontent.com/12753171/278843106-a24e55bd-5c6f-4b60-b1b9-d188e7562d3c.png)\n\nAdd new dependency:\n\n```bash\n# at host\npoetry add whatever\n\n# rebuild service\ndocker compose up -d --build --force-recreate --no-deps url_shortener\n\n# or you can enter into container and add dependency\ndocker compose exec url_shortener sh\n(inside container) poetry add whatever\n```\n\nFollow logs:\n\n```bash\ndocker compose logs -f url_shortener\n```\n\nStop:\n\n```bash\ndocker compose down\n```\n\nDelete all data:\n\n```bash\ndocker compose down -v --rmi all\n```\n\nLinks:\n\n* \u003chttps://fastapi.tiangolo.com/tutorial/first-steps/\u003e\n* \u003chttps://github.com/MagicStack/asyncpg\u003e\n* \u003chttps://code.visualstudio.com/docs/containers/debug-common\u003e\n* \u003chttps://github.com/tiangolo/full-stack-fastapi-postgresql/issues/337\u003e\n* \u003chttps://lightrun.com/answers/tiangolo-fastapi-question-how-to-setup-a-remote-debugger-with-vscode\u003e\n* \u003chttps://github.com/tiangolo/fastapi/issues/707#issuecomment-760581929\u003e\n* \u003chttps://code.visualstudio.com/docs/containers/debug-python\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs3rgeym%2Furl-shortener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs3rgeym%2Furl-shortener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs3rgeym%2Furl-shortener/lists"}