| File | Date | Author | Commit |
|---|---|---|---|
| README.md | 2026-01-18 |
|
[edd01a] Revise README.md for Software Portal project |
| Software_installer_README.md | 2026-01-18 |
|
[a2a6ba] Add complete setup guide for Software Installer |
| Web_Server.rar | 2026-01-18 |
|
[e1cae4] Add files via upload |
| software_installer(client).zip | 2026-01-18 |
|
[893518] Add files via upload |
A web-based software distribution portal built with Python Flask. Allows administrators to manage categories and upload software, while clients can browse and download software either individually or by category.
cd software_portal
python -m venv venv
# On Windows
venv\Scripts\activate
# On Linux/Mac
source venv/bin/activate
pip install -r requirements.txt
python app.py
http://localhost:5000
adminadmin123clientclient123Important: Change these default passwords in production!
software_portal/
├── app.py # Main application file
├── models.py # Database models
├── requirements.txt # Python dependencies
├── uploads/ # Uploaded software files
├── static/
│ └── css/
│ └── style.css # Custom CSS
├── templates/
│ ├── base.html # Base template
│ ├── login.html # Login page
│ ├── admin/ # Admin templates
│ │ ├── dashboard.html
│ │ ├── add_category.html
│ │ ├── edit_category.html
│ │ ├── add_software.html
│ │ ├── edit_software.html
│ │ └── list_software.html
│ └── client/ # Client templates
│ ├── index.html
│ ├── category.html
│ └── search.html
└── software_portal.db # SQLite database (created automatically)
Edit app.py to customize:
SECRET_KEY: Change for production securityUPLOAD_FOLDER: Change upload directory locationMAX_CONTENT_LENGTH: Adjust maximum file upload sizeALLOWED_EXTENSIONS: Add/remove allowed file typesBy default, the following file types are allowed:
- exe, msi, zip, rar, iso, dmg, deb, rpm, apk, tar, gz, 7z
The application uses SQLite by default. The database file software_portal.db is created automatically on first run.
For production deployment:
debug=False in app.run()pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
Create a Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
RUN mkdir -p uploads
EXPOSE 5000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]
Build and run:
docker build -t software-portal .
docker run -p 5000:5000 -v $(pwd)/uploads:/app/uploads software-portal
Change the port in app.py:
app.run(debug=True, host='0.0.0.0', port=8080)
Delete software_portal.db and restart the application to recreate the database.
This project is provided as-is for educational and commercial use.
For issues or questions, please refer to the Flask documentation:
https://flask.palletsprojects.com/