├── .github └── ISSUE_TEMPLATE │ ├── bug.yaml │ ├── config.yaml │ ├── documentation.yaml │ └── feature.yaml ├── .travis.yml ├── Dockerfile ├── LICENSE ├── README.md └── docker-compose.yml /.github/ISSUE_TEMPLATE/bug.yaml: -------------------------------------------------------------------------------- 1 | name: "🐛 Bug Report" 2 | description: "Submit a bug report to help us improve" 3 | title: "🐛 Bug Report: " 4 | labels: [bug] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out our bug report form 🙏 10 | - type: textarea 11 | id: steps-to-reproduce 12 | validations: 13 | required: true 14 | attributes: 15 | label: "👟 Reproduction steps" 16 | description: "How do you trigger this bug? Please walk us through it step by step." 17 | value: | 18 | 1. When I ... 19 | 2. Then when ... 20 | 3. 21 | ... 22 | - type: textarea 23 | id: expected-behavior 24 | validations: 25 | required: true 26 | attributes: 27 | label: "👍 Expected behavior" 28 | description: "What did you think would happen?" 29 | placeholder: "It should ..." 30 | - type: textarea 31 | id: actual-behavior 32 | validations: 33 | required: true 34 | attributes: 35 | label: "👎 Actual Behavior" 36 | description: "What did actually happen? Add screenshots, if applicable." 37 | placeholder: "It actually ..." 38 | - type: dropdown 39 | id: sdk-docker-version 40 | attributes: 41 | label: "🎲 RequestCatcher Docker tag" 42 | description: "What tag of RequestCatcher Docker container are you running?" 43 | options: 44 | - Tag 1.0.0 45 | - Tag 1.0.1 46 | - Different tag (specify in environment) 47 | validations: 48 | required: true 49 | - type: dropdown 50 | id: operating-system 51 | attributes: 52 | label: "💻 Operating system" 53 | description: "What OS is your server / device running on?" 54 | options: 55 | - Linux 56 | - MacOS 57 | - Windows 58 | - Something else 59 | validations: 60 | required: true 61 | - type: textarea 62 | id: enviromnemt 63 | validations: 64 | required: false 65 | attributes: 66 | label: "🧱 Your Environment" 67 | description: "Is your environment customized in any way?" 68 | placeholder: "I use Cloudflare for ..." 69 | - type: checkboxes 70 | id: no-duplicate-issues 71 | attributes: 72 | label: "👀 Have you spent some time to check if this issue has been raised before?" 73 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 74 | options: 75 | - label: "I checked and didn't find similar issue" 76 | required: true 77 | - type: checkboxes 78 | id: read-code-of-conduct 79 | attributes: 80 | label: "🏢 Have you read the Code of Conduct?" 81 | options: 82 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 83 | required: true 84 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yaml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Main Appwrite repo 4 | url: https://github.com/appwrite/appwrite 5 | about: Post issues for other appwrite parts here 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.yaml: -------------------------------------------------------------------------------- 1 | name: "📚 Documentation" 2 | description: "Report an issue related to documentation" 3 | title: "📚 Documentation: " 4 | labels: [documentation] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to make our documentation better 🙏 10 | - type: textarea 11 | id: issue-description 12 | validations: 13 | required: true 14 | attributes: 15 | label: "💭 Description" 16 | description: "A clear and concise description of what the issue is." 17 | value: "We should document how to..." 18 | - type: input 19 | id: issue-location 20 | validations: 21 | required: false 22 | attributes: 23 | label: "🗺️ Path of the documentation issue" 24 | description: "Name/Path of the relevant file" 25 | - type: checkboxes 26 | id: no-duplicate-issues 27 | attributes: 28 | label: "👀 Have you spent some time to check if this issue has been raised before?" 29 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 30 | options: 31 | - label: "I checked and didn't find similar issue" 32 | required: true 33 | - type: checkboxes 34 | id: read-code-of-conduct 35 | attributes: 36 | label: "🏢 Have you read the Code of Conduct?" 37 | options: 38 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 39 | required: true 40 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.yaml: -------------------------------------------------------------------------------- 1 | name: 🚀 Feature 2 | description: "Submit a proposal for a new feature" 3 | title: "🚀 Feature: " 4 | labels: [feature] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out our feature request form 🙏 10 | - type: textarea 11 | id: feature-description 12 | validations: 13 | required: true 14 | attributes: 15 | label: "🔖 Feature description" 16 | description: "A clear and concise description of what the feature is." 17 | placeholder: "You should add ..." 18 | - type: textarea 19 | id: pitch 20 | validations: 21 | required: true 22 | attributes: 23 | label: "🎤 Pitch" 24 | description: "Please explain why this feature should be implemented and how it would be used. Add examples, if applicable." 25 | placeholder: "In my use-case, ..." 26 | - type: checkboxes 27 | id: no-duplicate-issues 28 | attributes: 29 | label: "👀 Have you spent some time to check if this issue has been raised before?" 30 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 31 | options: 32 | - label: "I checked and didn't find similar issue" 33 | required: true 34 | - type: checkboxes 35 | id: read-code-of-conduct 36 | attributes: 37 | label: "🏢 Have you read the Code of Conduct?" 38 | options: 39 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 40 | required: true 41 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | notifications: 3 | email: 4 | - team@appwrite.io 5 | 6 | dist: xenial 7 | 8 | language: shell 9 | 10 | arch: 11 | - amd64 12 | - arm64 13 | 14 | os: linux 15 | 16 | before_install: 17 | - curl -fsSL https://get.docker.com | sh 18 | - echo '{"experimental":"enabled"}' | sudo tee /etc/docker/daemon.json 19 | - mkdir -p $HOME/.docker 20 | - echo '{"experimental":"enabled"}' | sudo tee $HOME/.docker/config.json 21 | - sudo service docker start 22 | - > 23 | if [ ! -z "${DOCKERHUB_PULL_USERNAME:-}" ]; then 24 | echo "${DOCKERHUB_PULL_PASSWORD}" | docker login --username "${DOCKERHUB_PULL_USERNAME}" --password-stdin 25 | fi 26 | - docker --version 27 | 28 | install: 29 | - docker-compose up -d 30 | 31 | script: 32 | - docker ps -a 33 | - docker-compose logs request-catcher 34 | - > 35 | if : >/dev/tcp/localhost/5000; then 36 | echo 'Connection available.' 37 | travis_terminate 0 38 | else 39 | echo 'Connection unavailable.' 40 | travis_terminate 1 41 | fi 42 | 43 | deploy: 44 | - provider: script 45 | edge: true 46 | script: docker run --rm --privileged linuxkit/binfmt:v0.8 && 47 | docker buildx create --use && 48 | docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x -t appwrite/requestcatcher:$TRAVIS_TAG ./ --push 49 | on: 50 | tags: true 51 | condition: "$TRAVIS_CPU_ARCH = amd64" 52 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Base 2 | FROM python:3.6-alpine3.15 as base 3 | LABEL maintainer="team@appwrite.io" 4 | 5 | # Build 6 | FROM base as build 7 | 8 | ENV PYTHONPATH=/root/http-request-catcher 9 | 10 | WORKDIR /root 11 | 12 | RUN apk --upgrade add --no-cache git \ 13 | && git clone https://github.com/SmarterDM/http-request-catcher.git 14 | 15 | WORKDIR /root/http-request-catcher 16 | 17 | RUN pip install --no-cache-dir flask==1.1.2 -t . 18 | 19 | # Prod 20 | FROM base as prod 21 | 22 | ENV PYTHONPATH=/home/catcher 23 | RUN adduser catcher -D 24 | USER catcher 25 | WORKDIR /home/catcher 26 | 27 | COPY --chown=catcher:catcher --from=build /root/http-request-catcher /home/catcher 28 | 29 | EXPOSE 5000 30 | 31 | STOPSIGNAL SIGINT 32 | 33 | CMD ["python", "app.py"] 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Appwrite 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker RequestCatcher 2 | 3 | [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord) 4 | [![Docker Pulls](https://img.shields.io/docker/pulls/appwrite/requestcatcher?color=f02e65&style=flat-square)](https://hub.docker.com/r/appwrite/requestcatcher) 5 | [![Build Status](https://img.shields.io/travis/com/appwrite/docker-requestcatcher?style=flat-square)](https://travis-ci.com/appwrite/docker-requestcatcher) 6 | [![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite) 7 | [![Follow Appwrite on StackShare](https://img.shields.io/badge/follow%20on-stackshare-blue?style=flat-square)](https://stackshare.io/appwrite) 8 | 9 | The RequestCatcher docker container is used for capturing and debugging HTTP requests sent during app development. This container is based on the smarterdm/http-request-catcher docker image with Appwrite specific configuration settings. For a fresh installation of smarterdm/http-request-catcher image use the [docker original image](https://github.com/SmarterDM/http-request-catcher). 10 | 11 | ## Getting Started 12 | 13 | These instructions will cover usage information to help you run the Appwrite's RequestCatcher docker container. 14 | 15 | ### Prerequisities 16 | 17 | In order to run this container you'll need docker installed on the system. 18 | 19 | * [Windows](https://docs.docker.com/docker-for-windows/install/) 20 | * [OS X](https://docs.docker.com/docker-for-mac/install/) 21 | * [Linux](https://docs.docker.com/engine/install/) 22 | 23 | Refer [docs](https://docs.docker.com/) for general documentation and guides for using docker. 24 | 25 | ### Usage 26 | 27 | ```shell 28 | docker run appwrite/requestcatcher 29 | ``` 30 | 31 | ### Environment Variables 32 | 33 | This container supports all environment variables supplied by the original smarterdm/http-request-catcher Docker image. 34 | 35 | ### Build 36 | 37 | ```bash 38 | docker build --tag appwrite/requestcatcher:1.1.0 . 39 | 40 | docker push appwrite/requestcatcher:1.1.0 41 | ``` 42 | 43 | Multi-arch build (experimental using [buildx](https://github.com/docker/buildx)): 44 | 45 | ``` 46 | docker buildx build --platform linux/amd64,linux/arm64/v8 --tag appwrite/requestcatcher:1.1.0 --push . 47 | ``` 48 | 49 | ## Find Us 50 | 51 | * [GitHub](https://github.com/appwrite) 52 | * [Discord](https://appwrite.io/discord) 53 | * [Twitter](https://twitter.com/appwrite) 54 | 55 | ## Copyright and license 56 | 57 | The MIT License (MIT) [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) 58 | 59 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: '3' 3 | 4 | services: 5 | request-catcher: 6 | build: . 7 | restart: unless-stopped 8 | ports: 9 | - "5000:5000" 10 | --------------------------------------------------------------------------------