{"id":13602142,"url":"https://github.com/jarvma18/app-docker-compose-template","last_synced_at":"2025-04-11T08:31:37.879Z","repository":{"id":225489407,"uuid":"766103412","full_name":"jarvma18/app-docker-compose-template","owner":"jarvma18","description":"Ready template for dockerized application","archived":false,"fork":false,"pushed_at":"2024-07-07T09:45:52.000Z","size":116,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-07T05:38:38.458Z","etag":null,"topics":["api","backend","docker","docker-compose","jest","knexjs","nodejs","nodemon","postgresql","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/jarvma18.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}},"created_at":"2024-03-02T10:52:27.000Z","updated_at":"2024-07-07T09:45:55.000Z","dependencies_parsed_at":"2024-03-19T23:30:14.541Z","dependency_job_id":"97bd5d04-c767-4933-902f-11e5e0cd449f","html_url":"https://github.com/jarvma18/app-docker-compose-template","commit_stats":null,"previous_names":["jarvma18/docker-templates"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvma18%2Fapp-docker-compose-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvma18%2Fapp-docker-compose-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvma18%2Fapp-docker-compose-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvma18%2Fapp-docker-compose-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jarvma18","download_url":"https://codeload.github.com/jarvma18/app-docker-compose-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361556,"owners_count":21090931,"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":["api","backend","docker","docker-compose","jest","knexjs","nodejs","nodemon","postgresql","typescript"],"created_at":"2024-08-01T18:01:15.110Z","updated_at":"2025-04-11T08:31:37.433Z","avatar_url":"https://github.com/jarvma18.png","language":"TypeScript","funding_links":[],"categories":["backend"],"sub_categories":[],"readme":"# app-docker-compose-template\n\nPurpose of this project is to offer ready template for dockerized application.\nSome key elemets in this template is Node.js application with typescript and automatic build with nodemon.\nData storage is PostgreSQL container with persistent volume for data storage.\nSome ready libraries are included for example knex for the database actions.\n\nI may implement frontend part to this project as well.\n\n## Initial preparations\n\n* Install Docker\n* Install Docker compose\n* Run migrations to latest level if you want that the test api works (see the \"Helpful commands\" section)\n\nDocker \u0026 Docker compose versions that have been tested with this:\n```\ndocker -v\nDocker version 24.0.7, build afdd53b\n\ndocker compose version\nDocker Compose version v2.23.0-desktop.1\n```\n\n## How to run\n\n```\ndocker compose build \u0026\u0026 docker compose up\n```\n\nYou can test the initial app by opening your browser and typing in localhost:3000\n\n![](localhost3000.png)\n\n## Frontend\n\nI suggest that you create frontend without docker.\nIt could be for example react + next.js project in the root that makes requests to app container.\nI see that the docker environment for frontend would not be important because in prod it would be served differently,\nso without docker there is lesser amount of complexities to handle in dev environment.\n\n## Helpful commands\n```\n// Run psql\ndocker compose exec app-db psql -h localhost -U postgres\n\n// Run knex init for ts\ndocker compose exec app knex init -x ts\n\n// Create migration file\ndocker compose exec -w /usr/src/data app knex migrate:make migration_name -x ts\n\n// Run migrations\ndocker compose exec -w /usr/src/data app knex migrate:latest\ndocker compose exec -w /usr/src/data app knex migrate:rollback --all\ndocker compose exec -w /usr/src/data app knex migrate:up\ndocker compose exec -w /usr/src/data app knex migrate:down\n\n// Create seed file\ndocker compose exec -w /usr/src/data app knex seed:make seed_name\n\n// Run seeds\ndocker compose exec -w /usr/src/data app knex seed:run\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarvma18%2Fapp-docker-compose-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjarvma18%2Fapp-docker-compose-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarvma18%2Fapp-docker-compose-template/lists"}