Manage a mitmproxy service on another system over a RESTful API
- Install manageritm.
pip install manageritm gunicorn
- Start manageritm server on port 8000.
gunicorn --bind 0.0.0.0:8000 --workers 1 --log-level debug "manageritm.app:main()"
- In Python, create a client, start the mitmproxy service, stop the mitmproxy service
import manageritm manageritm_addr = "localhost" manageritm_port = "8000" # create a manageritm client mc = manageritm.client.ManagerITMProxyClient(f'http://{manageritm_addr}:{manageritm_port}') proxy_details = mc.client() print(f"proxy port: {proxy_details['port']}") print(f"proxy webport: {proxy_details['webport']}") # start a proxy server mc.start() # set your application to use the proxy # host: "localhost" # port: f"{proxy_details['port']}" # do some work... # stop the proxy server mc.stop()
Or start a video client
- Create a custom configuration file named
flask_config_video.py
MANAGERITM_CLIENT_COMMAND = ['/opt/bin/video.sh']
-
Start manageritm server on port 8000.
gunicorn --bind 0.0.0.0:8000 --workers 1 --log-level debug "manageritm.app:main()"
-
In Python, create a client, start the ffmpeg service, stop the ffmpeg service
import manageritm manageritm_addr = "localhost" manageritm_port = "8000" # create a manageritm client mc = manageritm.client.ManagerITMCommandClient(f'http://{manageritm_addr}:{manageritm_port}') client_details = mc.client(additional_env={ 'DISPLAY_CONTAINER_NAME': 'hanet_chrome_1', 'DISPLAY_NUM': '99', 'SE_VIDEO_FOLDER': '/videos', 'FILE_NAME': 'blahh.mp4' }) # start a proxy server mc.start() # recording should happening # ... # stop the proxy server mc.stop()
- Check out this repository
- Create a virtual environment
make pyenv
- Install Python dependencies
make install
- Start the server
make server
- Start a client, in a Python interpreter:
import manageritm manageritm_addr = "localhost" manageritm_port = "8000" # create a manageritm client mc = manageritm.client.ManagerITMProxyClient(f'http://{manageritm_addr}:{manageritm_port}') proxy_details = mc.client() print(f"proxy port: {proxy_details['port']}") print(f"proxy webport: {proxy_details['webport']}") # start a proxy server mc.start()
- Navigate a web browser to
http://localhost:<proxy webport>
to watch the traffic - Configure a web browser to use the proxy port.
- Stop the client
# stop the proxy server mc.stop()
To build a package for the development version:
make all
To install a copy into your local python virtualenv
make install
To run the test cases:
make test
To run the development version of the service:
make run