A dedicated, standalone HTTP web server written in pure C for air-gapped / offline Linux servers and local testing environments. Specifically designed to serve software updates to .NET applications using AutoUpdater.NET.
- 100% Standalone & Statically Linked: Pure C implementation compiled with
musl libc. Zero runtime dependencies onglibc, system packages, or internet connectivity (apt-get/yumnot required). - Multi-Application Subfolder Support: Dedicated directory for each software (e.g.
/Accounting/,/Warehouse/,/CRM/, or/Root/). - Modern English Web Management Dashboard (
/admin/):- Intuitive GUI to create and manage application folders.
- Auto-generation of
AutoUpdater.xmlandAutoUpdater.jsoncatalog files. - Direct file upload for update packages (
.zip,.exe,.msi). - Automatic on-the-fly checksum computation (SHA-256 and MD5).
- Built-in C# code snippet generator for client-side copy & paste.
- Real-time server statistics (uptime, request count, bandwidth).
- HTTP Resume & Partial Content: Full HTTP
Range: bytes=start-endsupport returning206 Partial ContentandAccept-Ranges: bytesfor seamless, resumable downloads. - Ultra-Fast Zero-Copy Transfer: Uses the Linux kernel
sendfile(2)system call for high-throughput, low-CPU file delivery. - Daemon & Background Ready: Included
start.sh,stop.sh,status.sh, andautoupdater.servicefor systemd integration. - Cross-Platform: Includes both Linux static x86_64 binary and Windows native
.exefor quick local testing.
Transfer autoupdate-server-linux-x64.tar.gz to your offline Linux server via USB / SCP, then extract:
tar -xzf autoupdate-server-linux-x64.tar.gz
cd autoupdate-serverchmod +x ./bin/autoupdate-server start.sh stop.sh status.sh./start.shTo customize port or password:
./start.sh -p 9000 -u admin -P myStrongPasswordNavigate to:
http://<YOUR-SERVER-IP>:8080/admin/
Default Username: admin
Default Password: admin123
Run run_windows.bat or execute directly:
cd autoupdate-server
bin\autoupdate-server.exe -p 8080 -d ./updates -w ./webrootOpen http://localhost:8080/admin/ in your browser.
In your WPF, WinForms, or Console application:
using AutoUpdaterDotNET;
public void CheckForUpdates()
{
// Point directly to your server's application catalog:
AutoUpdater.Start("http://your-server:8080/Accounting/AutoUpdater.xml");
// Or if you prefer JSON catalog:
// AutoUpdater.Start("http://your-server:8080/Accounting/AutoUpdater.json");
}├── autoupdate-server/
│ ├── src/ # Pure C cross-platform source code
│ │ ├── main.c # Entry point & CLI argument parser
│ │ ├── server.c # Multithreaded socket listener
│ │ ├── http.c # HTTP parser & Range/206 engine
│ │ ├── admin.c # Admin dashboard & REST APIs
│ │ ├── sha256.c & md5.c # Cryptographic hash routines
│ │ └── utils.c & compat.h # OS abstraction (Linux/Windows)
│ ├── bin/
│ │ ├── autoupdate-server # 100% Static Linux x86_64 ELF binary
│ │ └── autoupdate-server.exe # Native Windows x64 test executable
│ ├── webroot/admin/ # Modern English admin dashboard (HTML5/CSS3)
│ ├── updates/ # Multi-app repository (Accounting, CRM, etc.)
│ ├── start.sh / stop.sh # Background management scripts
│ └── autoupdater.service # Linux systemd service template
├── nginx-portable/ # Alternative: Static pre-compiled Nginx 1.26.2
├── autoupdate-server-linux-x64.tar.gz # Ready-to-deploy archive (420 KB)
└── autoupdate-server-linux-x64.zip # Ready-to-deploy zip archive
این پکیج به صورت اختصاصی برای سرورهای ایزوله لینوکسی که دسترسی به اینترنت ندارند و امکان نصب بسته با apt یا yum وجود ندارد طراحی شده است.
- نیازی به هیچگونه نصب یا پکیج ندارد (کاملاً پرتابل و استاتیک).
- از قابلیت ادامه دانلود (Resume / 206 Partial Content) به طور کامل پشتیبانی میکند.
- دارای پنل وب انگلیسی مدیریت و آپلود فایل، ایجاد خودکار AutoUpdater.xml و محاسبه هش SHA256 است.
- به ازای هر نرمافزار یک پوشه مجزا فراهم میکند (مانند
/Accounting/AutoUpdater.xml).