Installation
The requirements, the installation, the tree it leaves behind and where the license goes.
FoxServer is digitally signed
Since 0.9.19, FoxServer.Host.exe, FoxServer.Core.dll, SecurityHelper.dll, foxserver.exe and the installer carry a publisher signature in the name of Irwin Alfredo Rodriguez Gimenez, with a timestamp. To see it: right-click the file → Properties → Digital Signatures, or run Get-AuthenticodeSignature in PowerShell, which must say Valid.
- SmartScreen: the certificate is new and Windows may still warn for a while. If “Windows protected your PC” appears, click More info: it must say Publisher: Irwin Alfredo Rodriguez Gimenez. If it does, Run anyway; if it says “Unknown publisher”, that file is not ours: do not run it.
Before you install
The FoxServer installer is signed, but the certificate is new and Windows may still warn you the first time you run it. Here is what you will see, how to continue, and how to check for yourself that the file you downloaded is exactly the one we published.
The SmartScreen warning
If a blue window saying “Windows protected your PC” appears when you run it, click “More info” and look at the publisher: it must be Irwin Alfredo Rodriguez Gimenez. The warning does not mean there is anything wrong with the file: it means Windows has not yet seen enough downloads with this certificate to recognize it.
- Click More info.
- Click Run anyway.
Before that second click, check the hash: that is how you know what you are about to run is ours and not an altered copy.
If your antivirus stops it
Some antivirus products quarantine installers they rarely see. If that happens, add an exclusion for the installation folder, C:\Programas\FoxServer, and run it again.
If the antivirus belongs to your company and you cannot change its rules, give the SHA-256 below to whoever administers it: that is what they need to clear the file.
Check what you downloaded
These are the details of the current version and the day it was published. The hash is computed on the file exactly as the portal serves it:
| File | Version | Published | Size | SHA-256 |
|---|---|---|---|---|
FoxServer-Setup-0.9.38.exe | 0.9.38 | 12 Oct 2026 | 12.1 MB | 82AA0B36A4966292716245811B92787C570087BB8192DBFA8705F78346E8BF54 |
To check it, open PowerShell in your downloads folder and run:
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\FoxServer-Setup-0.9.38.exe"If the value matches the table, the file is ours and intact. If it does not match, do not run it: download it again and, if it still does not match, write to soporte@irwinrodriguez.dev.
Hashes are measured again for every published version. If you downloaded an earlier version, its hash will not necessarily match this table.
Requirements
Two things you have to provide, and both stop start-up if they are missing: the .NET 10 runtime in x86 and your license.
- .NET 10 Runtime, x86 variant. FoxServer is 32-bit, and that is not a preference: it loads the Visual FoxPro COM, which is. The x64 runtime does not work even if it is installed, and when the 32-bit one is missing the installer offers to download and install it (since 0.9.27: about 28 MB from Microsoft, with its signature checked before it runs). If you prefer to do it by hand, the direct download is dotnet-runtime-win-x86.exe. It is the plain “.NET Runtime”: neither the ASP.NET Core nor the Desktop one is needed.
- Windows 10 or later, 32 or 64 bits.
- On the machine you develop on, the Visual FoxPro 9 SP2 IDE:
init,controller-addandbuildneed it. On the machine you serve from it is not needed: the VFP 9 runtimes next to your MTDLL are enough. - Administrator to install and to register the service. And an elevated console for
build:BUILD MTDLLregisters the coclass when it finishes.
Installation
- Download the installer.
FoxServer-Setup-<version>.exe, from your license detail page in the portal. The file name carries the version, and the one the portal offers you is the one your maintenance entitles you to. - Run it as administrator. It is needed to register
SecurityHelper.comhost.dllfor COM and to install the Windows service. It writes no environment variable and does not touch the system path: the CLI and the host find their way by looking at their own feet, from the folder they sit in. - Choose the folder. By default
C:\Programas\FoxServer. Up to 0.9.34 it wasC:\Program Files (x86)\FoxServer, and an upgrade stays in the folder it already had. You can install wherever you like, but do not flatten the tree: ifconfig\stops sitting next tobin\, start-up dies at the license gate without saying that the layout was the problem. - Leave the service box ticked. It comes ticked, and on a clean machine that is what you want. If the machine already had the service and you installed into a different folder, installing does not replace it: fix it with
sc config FoxServer binPath= "<new>\bin\FoxServer.Host.exe --service". - Copy your license. To
config\foxserver.lic, inside the folder you chose. It does not travel in the installer and it cannot: a JWT carries a holder and an email, and it is issued per customer.
Unattended mode
For deploying it through a management tool. /LIC is ours and copies the license into config\; the other three are Inno Setup's. Unattended, no dialog opens and the final check is not run: do it afterwards with verify.cmd.
FoxServer-Setup-0.9.38.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART ^
/LIC="C:\ruta\foxserver.lic"The one thing that still blocks an unattended install is a missing .NET 10 x86 runtime: there it stops without asking, on purpose, because a server may have no internet access. If it has, add /DOTNET=descargar and it downloads and installs it.
If you already had FoxServer installed
With the installer there is nothing to do: it stops the service and starts it again at the end if it was running. If you unzip over the top instead, stop the service first (net stop FoxServer): while it runs it holds FoxServer.Host.exe and its DLLs open, and the copy fails on those files.
The demo (since 0.9.28)
The installer has a checkbox, ticked, that installs a demo and opens it in the browser when it finishes: http://127.0.0.1:8099/, a shop with DBF data served as a REST API and as a web page, with the VFP code that produces each result alongside it. It works without a license: without config\foxserver.lic, FoxServer serves only the demo, and only to this machine. It lives in demo\; to switch it off, set "active": false in config\servers\foxserver-demo-api.json and foxserver-demo-web.json. Unattended installs skip it unless you pass /DEMO=1.
The tree, which is part of the contract
<raiz de la instalacion>\ por defecto C:\Programas\FoxServer\
bin\ el host. LA RAIZ ES LA CARPETA PADRE DE ESTA
FoxServer.Host.exe el servidor
FoxServer.Core.dll
SecurityHelper.comhost.dll se registra con el regsvr32 de 32 bits
Interop.vfp9.dll
vfpTemplate.txt obligatorio si hay algun sitio "web"
Nexum.dll Newtonsoft.Json.dll System.Management.dll ...
config\ foxserver.lic + servers\*.json (un manifiesto por servidor)
logs\ FoxServer_<fecha>.log, uno por dia, partido a 10 MB
cli\ foxserver.exe: crear y compilar proyectos sin abrir el IDE
ide\ FoxForge.APP + providers\web\: el taller, dentro del IDE de VFP
ejemplos\ los ejemplos de la guia, ejecutables
tools\ requisitos, inventario y verificacion
foxforge.cmd abre FoxForge en el IDE de VFP 9
install.cmd comprueba, inventaria y verifica de verdad
verify.cmd la verificacion solaThe license
You download it from the portal, on the license detail page. The email you get says it is ready: it does not carry the file as an attachment. Copy it to config\foxserver.lic, inside the folder you installed into. The server looks for it next to the bin\ it starts from. Without it the host starts and stops at the gate: it serves nothing.
127.0.0.1. If you are going to call from another machine on the network, you need a Runtime one. This is the number one misunderstanding: it looks like a permissions problem and it is the license. The details are in Licensing. Checking that it works
The most thorough way is install.cmd, which checks the requirements, takes an inventory of what is declared and really verifies: it starts the server, makes an HTTP request to it and shuts it down, stopping at the first failure. By hand:
cd "C:\Programas\FoxServer\bin"
FoxServer.Host.exeYou should see something like this:
2026-09-20 09:15:02.114 INFO FoxServer 0.9.38, console mode
2026-09-20 09:15:02.201 INFO VFP pool: 2 STA threads, timeout 120 s, queue 16, admission slots 50 (defaults)
2026-09-20 09:15:02.203 INFO License: Runtime, Tu Empresa, S.L., 1 seat(s), maintenance until 2027-01-15 (active)
2026-09-20 09:15:02.350 INFO salesapi: docs at GET /openapi.json and GET /docs
2026-09-20 09:15:02.402 INFO salesapi [api] listening on http://127.0.0.1:8099/
2026-09-20 09:15:41.870 INFO GET /api/customers 200 26 ms salesapi 127.0.0.1If something goes wrong
| What you see | What it is | What to do |
|---|---|---|
| The installer stops mentioning .NET | The 32-bit .NET 10 runtime is missing and the download was declined (or it ran unattended). The x64 one does not count | Run it again and accept the download, or install the x86 runtime by hand |
| 403 from another machine, while the same call works locally | The license is a Developer one | Serving other machines needs a Runtime license |
| The host starts and serves nothing (or only the demo) | config\foxserver.lic is missing, or the tree was flattened and config\ is not next to bin\ | Copy the license into config\ and leave the tree as it came out of the ZIP |
500 on a web site | bin\vfpTemplate.txt is missing | Reinstall or restore that file: it is mandatory as soon as there is a web site |
| "No servers could be started" | No manifest in config\servers\ could come up: a missing DLL, a taken port or a wrong path | Look at logs\FoxServer_<date>.log: it says which one and why |
/docs comes up blank | Swagger loads its interface from a CDN and the machine has no internet | It is not a server failure; /openapi.json still works |
| The port is taken | Another service holds it | Change port in the server manifest, in config\servers\ |
Next: Quick Start →