<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ibhsoftec.com/en/index.php?action=history&amp;feed=atom&amp;title=S5%2FS7_AI_for_Windows%3ACompany_Server</id>
	<title>S5/S7 AI for Windows:Company Server - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ibhsoftec.com/en/index.php?action=history&amp;feed=atom&amp;title=S5%2FS7_AI_for_Windows%3ACompany_Server"/>
	<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_AI_for_Windows:Company_Server&amp;action=history"/>
	<updated>2026-08-06T07:08:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_AI_for_Windows:Company_Server&amp;diff=2287&amp;oldid=prev</id>
		<title>Axel: Added the English Company Server guide and customer package link</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_AI_for_Windows:Company_Server&amp;diff=2287&amp;oldid=prev"/>
		<updated>2026-07-23T11:56:10Z</updated>

		<summary type="html">&lt;p&gt;Added the English Company Server guide and customer package link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A Company Server allows an organization to provide a centrally managed AI&lt;br /&gt;
connection for S5/S7 AI Copilot. End users do not need personal OpenAI or&lt;br /&gt;
Anthropic API keys.&lt;br /&gt;
&lt;br /&gt;
The customer package is self-contained. The customer does not need the&lt;br /&gt;
internal IBHsoftec server project.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&lt;br /&gt;
The reference server:&lt;br /&gt;
&lt;br /&gt;
* accepts Copilot chat requests;&lt;br /&gt;
* forwards requests to the configured upstream AI service;&lt;br /&gt;
* publishes the available model;&lt;br /&gt;
* authorizes individual PCs by fingerprint;&lt;br /&gt;
* keeps provider credentials on the server;&lt;br /&gt;
* can run as a Linux systemd service or Docker container.&lt;br /&gt;
&lt;br /&gt;
Supported upstream services include OpenAI-compatible APIs such as Ollama,&lt;br /&gt;
Open WebUI, vLLM and LiteLLM.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:S57AI-Company-Server-Kundenpaket.zip|Download the S57AI Company Server customer package]]&lt;br /&gt;
&lt;br /&gt;
The package contains the FastAPI reference server, configuration examples,&lt;br /&gt;
systemd service, Dockerfile and detailed README.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Linux server or virtual machine;&lt;br /&gt;
* Python 3.10 or newer, or Docker;&lt;br /&gt;
* network access from Copilot PCs to the server;&lt;br /&gt;
* access from the server to the selected upstream AI service;&lt;br /&gt;
* HTTPS and reverse proxy recommended for production use.&lt;br /&gt;
&lt;br /&gt;
== Quick start with Python ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 -m venv /opt/s57ai-company-server/venv&lt;br /&gt;
/opt/s57ai-company-server/venv/bin/pip install -r requirements.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy &amp;lt;code&amp;gt;company-server.env.example&amp;lt;/code&amp;gt; to a protected environment file&lt;br /&gt;
and configure at least:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UPSTREAM_BASE_URL=http://127.0.0.1:11434/v1&lt;br /&gt;
UPSTREAM_MODEL=deepseek-coder-v2:16b&lt;br /&gt;
UPSTREAM_API_KEY=your-upstream-key&lt;br /&gt;
ALLOWED_FINGERPRINTS=FINGERPRINT-OF-APPROVED-PC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/opt/s57ai-company-server/venv/bin/uvicorn server:app --host 0.0.0.0 --port 8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quick start with Docker ==&lt;br /&gt;
&lt;br /&gt;
Build and run the image from the customer package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker build -t s57ai-company-server .&lt;br /&gt;
docker run --env-file company-server.env -p 8080:8080 s57ai-company-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The container runs with a non-privileged user and includes a health check.&lt;br /&gt;
&lt;br /&gt;
== Configure Copilot ==&lt;br /&gt;
&lt;br /&gt;
# Open S5/S7 AI Copilot.&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Company Server&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Enter the externally reachable server URL.&lt;br /&gt;
# Copy the displayed fingerprint.&lt;br /&gt;
# Add the fingerprint to &amp;lt;code&amp;gt;ALLOWED_FINGERPRINTS&amp;lt;/code&amp;gt; on the server.&lt;br /&gt;
# Restart the server and test a Copilot request.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://ai.company.example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API used by Copilot ==&lt;br /&gt;
&lt;br /&gt;
The Company Server provides:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /v1/models&amp;lt;/code&amp;gt; for the model list;&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /v1/copilot/chat&amp;lt;/code&amp;gt; for Copilot text requests;&lt;br /&gt;
* a health endpoint for monitoring.&lt;br /&gt;
&lt;br /&gt;
The model list reported by the server replaces local model defaults in&lt;br /&gt;
Copilot.&lt;br /&gt;
&lt;br /&gt;
== Production recommendations ==&lt;br /&gt;
&lt;br /&gt;
* publish the service only through HTTPS;&lt;br /&gt;
* use nginx or another reverse proxy;&lt;br /&gt;
* restrict incoming network access;&lt;br /&gt;
* store environment files with limited permissions;&lt;br /&gt;
* rotate upstream API keys regularly;&lt;br /&gt;
* back up the configuration and fingerprint allowlist;&lt;br /&gt;
* monitor health, logs, storage and response times;&lt;br /&gt;
* never expose an unsecured Ollama or Open WebUI endpoint to the Internet.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If Copilot cannot connect:&lt;br /&gt;
&lt;br /&gt;
# verify the URL and port from the Copilot PC;&lt;br /&gt;
# check firewall and reverse-proxy rules;&lt;br /&gt;
# verify the approved fingerprint;&lt;br /&gt;
# check the Company Server log;&lt;br /&gt;
# test access from the Company Server to the upstream AI service;&lt;br /&gt;
# verify the exact upstream model name.&lt;br /&gt;
&lt;br /&gt;
If the model list is empty, check &amp;lt;code&amp;gt;UPSTREAM_MODEL&amp;lt;/code&amp;gt; and the upstream&lt;br /&gt;
model API. If a request exceeds the model context window, reduce the project&lt;br /&gt;
context or configure a model with a larger context size.&lt;br /&gt;
&lt;br /&gt;
== Security responsibility ==&lt;br /&gt;
&lt;br /&gt;
The customer operates and secures the Company Server. The organization is&lt;br /&gt;
responsible for upstream provider terms, network security, access control,&lt;br /&gt;
logging, retention and protection of PLC project data.&lt;br /&gt;
&lt;br /&gt;
Further information:&lt;br /&gt;
[[S5/S7 AI for Windows:Copilot access to AI|Copilot access to AI]]&lt;/div&gt;</summary>
		<author><name>Axel</name></author>
	</entry>
</feed>