How to Configure ReClip Port and Host: Environment Variable Guide
ReClip determines its listening port and host through environment variables PORT and HOST, falling back to 8899 and 127.0.0.1 respectively when these variables are unset.
Learning how to configure ReClip port and host settings is essential when deploying the averygan/reclip repository across different environments. The application uses standard environment variable patterns in app.py to control network binding, allowing flexible deployment on localhost, private networks, or Docker containers without modifying source code.
Where ReClip Reads Port and Host Settings
The Flask server initialization retrieves network configuration directly from environment variables using Python’s os.environ.get() method. According to the source code in app.py at lines 108-110, the application explicitly defines fallback values:
port = int(os.environ.get("PORT", 8899))
host = os.environ.get("HOST", "127.0.0.1")
app.run(host=host, port=port, debug=True)
This implementation means ReClip automatically uses port 8899 and binds to localhost (127.0.0.1) unless you override these values through environment variables.
Three Methods to Configure ReClip Port and Host
Method 1: Export Environment Variables (Local Execution)
For direct execution using reclip.sh or running app.py manually, export the variables in your shell session before launching:
export PORT=8080
export HOST=0.0.0.0
./reclip.sh
The startup script reclip.sh (lines 50-52) checks for existing PORT values using ${PORT:-8899} syntax, preserving your export if set, but does not provide a default HOST value. This means you must explicitly export HOST when requiring non-localhost binding.
Method 2: Docker Compose with .env Files
When using Docker Compose, create a .env file in the project root directory:
PORT=8080
HOST=0.0.0.0
The docker-compose.yml references these variables using ${PORT} syntax for port mapping configuration. Start the container with:
docker-compose up --build
Docker Compose automatically reads the .env file and substitutes values into the compose configuration, updating both the internal application port and the external mapping.
Method 3: Docker Run Commands
For standalone Docker containers without Compose, pass environment variables using the -e flag:
docker run -d \
-e PORT=8000 \
-e HOST=0.0.0.0 \
-p 8000:8000 \
--name reclip averygan/reclip:latest
This approach explicitly sets the runtime configuration without requiring local environment exports or .env files.
Configuration Defaults and Precedence
The configuration follows a clear precedence chain:
- Explicit environment variables override all other settings
reclip.shdefaults: The script setsPORT=8899only if the variable is undefined (lines 50-52)app.pyhardcoded defaults:PORT=8899andHOST="127.0.0.1"serve as final fallbacks at lines 108-110
Note that reclip.sh does not provide a default HOST value, so you must explicitly set this variable when requiring external network access.
Summary
- ReClip reads
PORTandHOSTfrom environment variables inapp.py(lines 108-110) - Default values are
8899for port and127.0.0.1for host binding - The
reclip.shscript sets a defaultPORTif unset, but leavesHOSTconfiguration to the user - Docker deployments can utilize
.envfiles or inline-eflags to configure these values - Setting
HOST=0.0.0.0enables access from external machines
Frequently Asked Questions
What is the default port for ReClip?
ReClip defaults to port 8899 when the PORT environment variable is not set. This default appears in both app.py (line 109) and reclip.sh (line 50), ensuring consistency across different launch methods.
How do I make ReClip accessible from other machines on my network?
Set HOST=0.0.0.0 before starting the application. The default 127.0.0.1 binds only to localhost, while 0.0.0.0 listens on all available network interfaces, allowing external connections.
Can I use a .env file with ReClip?
Yes. Docker Compose automatically detects .env files in the project root. Define PORT and HOST values there, and the docker-compose.yml will reference them using variable substitution syntax ${PORT}.
Where does ReClip read the port configuration?
ReClip reads port and host configuration in app.py at lines 108-110 using os.environ.get("PORT", 8899) and os.environ.get("HOST", "127.0.0.1"), which check for environment variables before falling back to hardcoded defaults.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →