{"id":17363109,"url":"https://github.com/tomastomecek/patchwork-container","last_synced_at":"2026-02-28T05:16:54.259Z","repository":{"id":66916732,"uuid":"118106219","full_name":"TomasTomecek/patchwork-container","owner":"TomasTomecek","description":"Containerized version of patchwork.","archived":false,"fork":false,"pushed_at":"2018-02-09T19:39:31.000Z","size":15,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-07T01:19:36.757Z","etag":null,"topics":["ansible","containers","fedora","patchwork"],"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/TomasTomecek.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":"2018-01-19T09:38:03.000Z","updated_at":"2018-02-13T15:27:39.000Z","dependencies_parsed_at":"2023-03-04T07:00:38.828Z","dependency_job_id":null,"html_url":"https://github.com/TomasTomecek/patchwork-container","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TomasTomecek/patchwork-container","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasTomecek%2Fpatchwork-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasTomecek%2Fpatchwork-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasTomecek%2Fpatchwork-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasTomecek%2Fpatchwork-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomasTomecek","download_url":"https://codeload.github.com/TomasTomecek/patchwork-container/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasTomecek%2Fpatchwork-container/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29925683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"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":["ansible","containers","fedora","patchwork"],"created_at":"2024-10-15T19:46:36.944Z","updated_at":"2026-02-28T05:16:54.222Z","avatar_url":"https://github.com/TomasTomecek.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Patchwork in a container as an Ansible role\n\nThis is a containerized version of [patchwork](https://github.com/getpatchwork/patchwork).\n\n\n## State\n\nWe are working on it. Unsuitable for production yet. Suggestions are welcome.\n\n\n## Requirements\n\n* Docker engine is running.\n* Ansible is installed.\n\n\n## Usage\n\nCreate a playbook which will utilize this Ansible role. It can be as simple as:\n```yaml\n---\n- name: run Patchwork\n  hosts: localhost\n  roles:\n  - patchwork-container\n```\n\nFor more info, see [./example/](/example/).\n\n\n## More info\n\nThe deployment utilizes Ansible playbook to deploy patchwork:\n\n1. The container image is created from the supplied Dockerfile.\n   * This is done using Ansible module `docker_image`.\n2. postgresql is used as a database, namely `centos/postgresql-96-centos7`\n\n\n### Loading custom data into postgres\n\nThere are multiple ways of doing this: ideally, the playbook would support this\n(which it does not right now).\n\nIn the meantime, you can create an interactive shell in the postgres container,\ncopy the file with sql commands in the data dir and execute from within the\ncontainer:\n\n```console\n$ sudo printf \"SELECT 1;\\n\" \u003e./db_data/load.sql\n\n$ docker exec -ti patchwork-db bash\n\nbash-4.2$ cat /var/lib/pgsql/data/load.sql | psql\n ?column?\n----------\n        1\n(1 row)\n```\n\nYou can also run `psql` interactively and check on the database:\n\n```\nbash-4.2$ psql\npsql (9.6.5)\nType \"help\" for help.\n\npostgres=# \\c patchwork\nYou are now connected to database \"patchwork\" as user \"postgres\".\npatchwork=# \\dt\n                           List of relations\n Schema |                   Name                    | Type  |   Owner\n--------+-------------------------------------------+-------+-----------\n public | auth_group                                | table | patchwork\n public | auth_group_permissions                    | table | patchwork\n public | auth_permission                           | table | patchwork\n public | auth_user                                 | table | patchwork\n public | auth_user_groups                          | table | patchwork\n public | auth_user_user_permissions                | table | patchwork\n public | authtoken_token                           | table | patchwork\n public | django_admin_log                          | table | patchwork\n public | django_content_type                       | table | patchwork\n public | django_migrations                         | table | patchwork\n public | django_session                            | table | patchwork\n public | django_site                               | table | patchwork\n public | patchwork_bundle                          | table | patchwork\n public | patchwork_bundlepatch                     | table | patchwork\n public | patchwork_check                           | table | patchwork\n public | patchwork_comment                         | table | patchwork\n public | patchwork_coverletter                     | table | patchwork\n public | patchwork_delegationrule                  | table | patchwork\n public | patchwork_emailconfirmation               | table | patchwork\n public | patchwork_emailoptout                     | table | patchwork\n public | patchwork_event                           | table | patchwork\n public | patchwork_patch                           | table | patchwork\n public | patchwork_patchchangenotification         | table | patchwork\n public | patchwork_patchtag                        | table | patchwork\n public | patchwork_person                          | table | patchwork\n public | patchwork_project                         | table | patchwork\n public | patchwork_series                          | table | patchwork\n public | patchwork_seriespatch                     | table | patchwork\n public | patchwork_seriesreference                 | table | patchwork\n public | patchwork_state                           | table | patchwork\n public | patchwork_submission                      | table | patchwork\n public | patchwork_tag                             | table | patchwork\n public | patchwork_userprofile                     | table | patchwork\n public | patchwork_userprofile_maintainer_projects | table | patchwork\n(34 rows)\n```\n\n\n## Future plans\n\n* Proper production deployment using gunicorn.\n* OpenShift deployment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomastomecek%2Fpatchwork-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomastomecek%2Fpatchwork-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomastomecek%2Fpatchwork-container/lists"}