{"id":21361850,"url":"https://github.com/mxssl/wait-for-pg","last_synced_at":"2026-05-31T12:01:01.764Z","repository":{"id":40246137,"uuid":"220541477","full_name":"mxssl/wait-for-pg","owner":"mxssl","description":"Check if PostgreSQL database is ready","archived":false,"fork":false,"pushed_at":"2026-03-14T23:32:19.000Z","size":284,"stargazers_count":25,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-15T09:31:10.012Z","etag":null,"topics":["go","golang","postgres","postgresql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxssl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://www.buymeacoffee.com/ydfPU75"}},"created_at":"2019-11-08T20:20:33.000Z","updated_at":"2026-03-14T23:32:22.000Z","dependencies_parsed_at":"2024-06-18T04:10:43.607Z","dependency_job_id":"a5692526-0bf4-411c-8abd-0d7b9ac860c0","html_url":"https://github.com/mxssl/wait-for-pg","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/mxssl/wait-for-pg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxssl%2Fwait-for-pg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxssl%2Fwait-for-pg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxssl%2Fwait-for-pg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxssl%2Fwait-for-pg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxssl","download_url":"https://codeload.github.com/mxssl/wait-for-pg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxssl%2Fwait-for-pg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33730241,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["go","golang","postgres","postgresql"],"created_at":"2024-11-22T06:12:14.958Z","updated_at":"2026-05-31T12:01:01.755Z","avatar_url":"https://github.com/mxssl.png","language":"Go","funding_links":["https://www.buymeacoffee.com/ydfPU75"],"categories":[],"sub_categories":[],"readme":"# wait-for-pg\n\nSimple app that checks if PostgreSQL database is ready or not.\n\n## Install and usage\n\n### Option 1: binary\n\n```sh\nwget https://github.com/mxssl/wait-for-pg/releases/download/v1.0.6/wait-for-pg-linux-amd64.tar.gz\ntar xvzf wait-for-pg-linux-amd64.tar.gz\nmv wait-for-pg /usr/local/bin/wait-for-pg\nchmod +x /usr/local/bin/wait-for-pg\nrm wait-for-pg-linux-amd64.tar.gz\n\nwait-for-pg check \\\n  --host postgres.domain.com \\\n  --port 5432 \\\n  --user pguser \\\n  --password pgpass \\\n  --dbname dbname \\\n  --sslmode disable \\\n  --retry 10 \\\n  --sleep 2\n```\n\n### Option 2: docker container\n\n```sh\ndocker container \\\n  run \\\n  --rm \\\n  mxssl/wait-for-pg:v1.0.6 \\\n  wait-for-pg check \\\n    --host postgres.domain.com \\\n    --port 5432 \\\n    --user pguser \\\n    --password pgpass \\\n    --dbname dbname \\\n    --sslmode disable \\\n    --retry 10 \\\n    --sleep 2\n```\n\n- If PG is ready then app returns exit code 0\n- If PG isn't ready then app returns exit code 1\n\n### Option 3: Kubernetes init container\n\nUse `wait-for-pg` as an init container to delay your application startup until PostgreSQL is ready.\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: myapp\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: myapp\n  template:\n    metadata:\n      labels:\n        app: myapp\n    spec:\n      initContainers:\n        - name: wait-for-pg\n          image: mxssl/wait-for-pg:v1.0.6\n          command:\n            - wait-for-pg\n            - check\n            - --host\n            - postgres-service\n            - --port\n            - \"5432\"\n            - --user\n            - pguser\n            - --password\n            - pgpass\n            - --dbname\n            - dbname\n            - --sslmode\n            - disable\n            - --retry\n            - \"30\"\n            - --sleep\n            - \"2\"\n      containers:\n        - name: myapp\n          image: myapp:latest\n```\n\nUsing environment variables from a Secret:\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: pg-credentials\ntype: Opaque\nstringData:\n  PGHOST: postgres-service\n  PGPORT: \"5432\"\n  PGUSER: pguser\n  PGPASSWORD: pgpass\n  PGDATABASE: dbname\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: myapp\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: myapp\n  template:\n    metadata:\n      labels:\n        app: myapp\n    spec:\n      initContainers:\n        - name: wait-for-pg\n          image: mxssl/wait-for-pg:v1.0.6\n          command: [\"sh\", \"-c\"]\n          args:\n            - \u003e\n              wait-for-pg check\n              --host $(PGHOST)\n              --port $(PGPORT)\n              --user $(PGUSER)\n              --password $(PGPASSWORD)\n              --dbname $(PGDATABASE)\n              --sslmode disable\n              --retry 30\n              --sleep 2\n          envFrom:\n            - secretRef:\n                name: pg-credentials\n      containers:\n        - name: myapp\n          image: myapp:latest\n          envFrom:\n            - secretRef:\n                name: pg-credentials\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxssl%2Fwait-for-pg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxssl%2Fwait-for-pg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxssl%2Fwait-for-pg/lists"}