Saifeddine ALOUI c72eba17b4 Update run.sh
2025-09-08 09:23:47 +02:00
2025-09-04 22:05:18 +02:00
2025-09-04 22:05:18 +02:00
2025-09-04 22:05:18 +02:00
2024-01-15 23:35:19 +01:00
2025-09-05 11:56:22 +02:00
2025-09-07 12:25:32 +02:00
2025-09-08 09:23:47 +02:00

Ollama Proxy Fortress: Your Personal AI Security Gateway 🛡️

License Python Version Built with Release GitHub stars

Stop exposing your local AI to the world. Ollama Proxy Fortress is the ultimate security and management layer for your Ollama instances, designed to be set up in 60 seconds by anyone, on any operating system.

Whether you're a developer, a researcher, or just an AI enthusiast running models on your personal machine, this tool transforms your setup from a vulnerable open port into a managed, secure, and powerful AI hub.


The Threat: Why Your PC Could Be at Risk

Last year, a critical vulnerability named "Probllama" (CVE-2024-37032) was discovered in Ollama. This wasn't a minor bug; it was a Remote Code Execution (RCE) vulnerability.

What does that mean in plain English? It means an attacker from anywhere on the internet could have sent a malicious request to your Ollama server and potentially:

  • 💻 Take full control of your computer.
  • Steal your personal files, documents, and private keys.
  • 🗑️ Delete your data or install ransomware.
  • 🤫 Use your computer for malicious activities without your knowledge.

While the core Ollama team impressively patched this vulnerability, the incident highlighted a crucial need for a dedicated security layer. Running an AI model should not mean opening a backdoor to your digital life.

So, Why Do You Still Need This?

Ollama Proxy Fortress is more than just a patch. It's a permanent solution that offers layers of security and powerful features that core Ollama doesn't provide:

  • 🛡️ Ironclad Security Gateway: Enforce API key authentication for every single request. Add global rate limiting to prevent abuse and filter access by IP address.
  • 👤 Centralized User Management: Create different "users" for your different apps or family members, each with their own unique API keys.
  • 🔑 Fine-Grained Key Controls: Set optional, per-key rate limits (e.g., 100 requests every 5 minutes) that override the global settings. Temporarily disable or re-enable keys on the fly without having to revoke them permanently.
  • 🌐 Multi-Server Management & Federation: Centrally manage all your Ollama backend servers. The proxy load-balances requests and provides a unified view of all available models.
  • 📊 Graphical Usage Insights: A beautiful analytics dashboard with interactive charts shows you usage over time, peak hours, and server load distribution, with options to export data.
  • 🚀 Effortless 1-Click Setup: No Docker, no pip install, no command-line wizardry required. Just download and run a single script.

Get Started in 60 Seconds (Yes, Really!)

This is the easiest way to secure your AI setup, period.

1. Download the Project

Download the source code from the repository, either by using git or by downloading the ZIP file and extracting it.

git clone https://github.com/ParisNeo/ollama_proxy_server.git
cd ollama_proxy_server

2. Run the Installer

Based on your operating system, run the appropriate script. The first time you run it, it will guide you through a simple setup wizard. The database is created automatically when the server starts.

On Windows: Simply double-click run_windows.bat.

On macOS or Linux: Open your terminal, navigate to the project folder, and run:

chmod +x run.sh
./run.sh

That's it! The server is now running. To stop it, just close the terminal window or press Ctrl+C.


Visual Walkthrough & Features

Step 1: Secure Admin Login

Once the server is running, go to the admin panel (e.g., http://127.0.0.1:8080/admin). Log in with the secure credentials you created during setup.

Secure Admin Login Page

Step 2: Manage Users and API Keys

The main dashboard is your central hub for creating virtual users. Click "Manage" to access the user details page where you can create, view, enable/disable, and revoke keys. You can also set custom rate limits for each new key, overriding the global settings.

User Management Dashboard

Step 3: Centrally Manage Ollama Servers

The "Server Management" page lets you add and remove all your backend Ollama instances. The proxy will load-balance requests across all active servers, and the /api/tags endpoint will show a federated list of models from all of them.

Ollama Server Management

Step 4: Monitor Usage Statistics

The "Usage Stats" page features interactive charts showing requests per day, peak usage hours, and server load distribution. All data and charts can be exported for reports.

API Usage Statistics

Step 5: Make Secure API Calls

Configure your applications to use the proxy URL and provide the API key as a Bearer token in the Authorization header. Your underlying Ollama server is now completely shielded from direct access.

curl http://127.0.0.1:8080/api/generate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer op_prefix_secret" \
  -d '{
    "model": "llama3",
    "prompt": "Why is the sky blue?"
  }'

Step 6: Get Help When You Need It

The built-in "Help & Credits" page provides a quick-start guide, code examples, and acknowledges the open-source projects that make this application possible.

Help and Credits Page


For the Power Users: Docker Deployment

If you prefer a container-based workflow, we've got you covered.

1. Build the Docker image:

docker build -t ollama-proxy-server .

2. Run the container: Create a .env file on your host machine, then run:

docker run -d --name ollama-proxy \
  -p 8080:8080 \
  --env-file ./.env \
  -v ./ollama_proxy.db:/home/app/ollama_proxy.db \
  ollama-proxy-server

Resetting Your Installation (Troubleshooting)

WARNING: IRREVERSIBLE ACTION

The reset scripts are for troubleshooting or starting over completely. They will PERMANENTLY DELETE your database, configuration, and Python environment. All users, API keys, and settings will be lost. Use with extreme caution.

If you encounter critical errors or wish to perform a completely fresh installation, you can use the provided reset scripts. You will be asked for confirmation before any files are deleted.

On Windows: Simply double-click the reset.bat file and follow the on-screen instructions.

On macOS or Linux: Open your terminal and run the following commands:

chmod +x reset.sh
./reset.sh

After the reset is complete, you can run the run.sh or run_windows.bat script again to perform a new installation.


Credits and Acknowledgements

This application was developed with passion by the open-source community and stands on the shoulders of giants. A special thank you to:

  • Saifeddine ALOUI (ParisNeo) for creating and maintaining this project.
  • All the contributors who notified about bugs in previous versions and for some of them contributed with actual bug fix code (take a look at the full contributors list for details).
  • The teams behind FastAPI, SQLAlchemy, Jinja2, Chart.js, and Tailwind CSS for their incredible open-source tools.

Visit the project on GitHub to contribute, report issues, or star the repository!


License

This project is licensed under the Apache License 2.0. Feel free to use, modify, and distribute.

Description
No description provided
Readme Apache-2.0 704 KiB
Languages
Python 45.7%
HTML 40.1%
Shell 7.1%
Batchfile 6.2%
Dockerfile 0.9%