{"id":14065898,"url":"https://github.com/westurner/pgs","last_synced_at":"2025-05-01T07:31:41.672Z","repository":{"id":30307966,"uuid":"33859726","full_name":"westurner/pgs","owner":"westurner","description":"Serve a directory or a git revision over HTTP with Bottle and WSGI; and try_files $1.html https://pypi.python.org/pypi/pgs","archived":false,"fork":false,"pushed_at":"2022-12-26T19:44:00.000Z","size":81,"stargazers_count":4,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T07:20:06.530Z","etag":null,"topics":["bottlepy","github-pages","python","static-server","wsgi"],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/pgs","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/westurner.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-13T09:29:51.000Z","updated_at":"2020-11-06T06:31:27.000Z","dependencies_parsed_at":"2023-01-14T16:43:36.602Z","dependency_job_id":null,"html_url":"https://github.com/westurner/pgs","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/westurner%2Fpgs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/westurner%2Fpgs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/westurner%2Fpgs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/westurner%2Fpgs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/westurner","download_url":"https://codeload.github.com/westurner/pgs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251840265,"owners_count":21652311,"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":["bottlepy","github-pages","python","static-server","wsgi"],"created_at":"2024-08-13T07:04:48.549Z","updated_at":"2025-05-01T07:31:41.439Z","avatar_url":"https://github.com/westurner.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"===============================\npgs\n===============================\n\n.. .. image:: https://img.shields.io/travis/westurner/pgs.svg\n..         :target: https://travis-ci.org/westurner/pgs\n\n.. .. image:: https://img.shields.io/pypi/v/pgs.svg\n..        :target: https://pypi.python.org/pypi/pgs\n\nA bottle webapp for serving static files from a git branch,\nor from the local filesystem.\n\n* Free software: MIT license\n* Source: https://github.com/westurner/pgs\n\n\nFeatures\n--------\n\n* [x] Serve static files from a filesystem directory\n* [x] Serve static files from a git branch,\n  with Last-Modified headers according to git timestamps\n* [x] Guess MIME-types from paths\n* [x] subprocess bindings to ``git cat-file`` and ``git show``\n* [ ] dulwich\n* [ ] pygit2\n\n\nUsage\n------\n\nServe ``/var/www/html`` from http://localhost:8082/\n\n.. code:: bash\n\n   pgs -p /var/www/html\n\nServe the ``gh-pages`` branch of this repo from http://localhost:8083\n\n.. code:: bash\n\n   pgs -g $VIRTUAL_ENV/src/pgs -r gh-pages -P 8083\n\n\nFurther Usage:\n\n.. code:: bash\n\n    $ pgs --help\n    Usage: pgs [-p \u003cpath\u003e] [-g \u003crepopath\u003e] [-r \u003crev/tag/branch\u003e]\n\n    Serve a directory or a git revision over HTTP with Bottle, WSGI, MIME types,\n    and Last-Modified headers\n\n    Options:\n      -h, --help            show this help message and exit\n      -p ROOT_FILEPATH, --path=ROOT_FILEPATH, --root_filepath=ROOT_FILEPATH\n      -g GIT_REPO_PATH, --git=GIT_REPO_PATH\n                            Path to git repo to serve files from\n      -r GIT_REPO_REV, --rev=GIT_REPO_REV\n                            Git repo revision (commit hash, branch, tag)\n      -H HOST, --host=HOST  \n      -P PORT, --port=PORT  \n      --debug               set bottle debug=False\n      --reload              set bottle reload=False\n      -v, --verbose         \n      -q, --quiet           \n      -t, --test\n\n\nCaveat Emptor\n---------------\n* Upstream caching would be necessary for all but the most local use\n  cases\n* True git bindings would likely do less buffering of\n  ``subprocess.check_output``\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesturner%2Fpgs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwesturner%2Fpgs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesturner%2Fpgs/lists"}