🛠️ Winget-Repo Setup Guide
Set up your own custom Winget-Repo repository using one of the two installation methods below.
⚠️ Production Recommendation:
For production environments, always place a reverse proxy such as Nginx or Apache in front of the application.
This ensures proper HTTPS termination, improved security, and better performance.
Option A: Docker Installation 🐳
The fastest way to get started.
1. Pull the Docker Image
Run the following command in your terminal:
docker pull ghcr.io/dev-fynn/winget-repo:latest
2. Start the Container
Launch the container with:
docker run -d -p 127.0.0.1:5000:5000 --name winget-repo ghcr.io/dev-fynn/winget-repo:latest
3. Access the Web Interface
Once the container is running, open:
https://localhost:5000
4. Settings
Enable the "Use Reverse Proxy (X-Forwarded Headers)" option in the repository settings to ensure correct IP and domain resolution.
5. Restart the Server
Option B: Manual Installation 🐍
For users who prefer running the application directly without Docker.
Requirements
Before starting, make sure you have:
- A machine or server with Python support (tested on Windows)
- Administrator access on both server and client systems
- Python 3.10 or later
1. Download the Repository
- Download the latest source code from the official repository
- Extract it to a directory of your choice
2. Install Python
Download and install Python from the official website:
https://www.python.org/downloads/
3. Install Dependencies
Open a terminal or Command Prompt and run:
pip install -r requirements.txt
4. Configure HTTPS (Recommended)
Winget requires secure HTTPS connections.
The recommended approach is to use a reverse proxy such as:
- Nginx
- Apache
These handle SSL termination and improve security.
There are many tutorials online for configuring Nginx or Apache with Python applications.
Alternative: Flask Built-in HTTPS (Not Recommended)
If you do not want to use a reverse proxy, you can enable HTTPS directly in Flask by modifying main.py:
if __name__ == "__main__":
app.run(
ssl_context=("SSL/cert.pem", "SSL/server.pem")
)
5. Set Up an SSL Certificate
Choose one of the following options:
- Generate a self-signed certificate using OpenSSL
- Purchase a trusted SSL certificate
⚠️ If you use a self-signed certificate, it must be installed on every client machine that connects to your repository.
6. Start the Server
Start your configured web server and access your repository through your configured domain or address.
🎉 Setup complete — your private Winget repository is now ready to use.