Every app is just a link.
No manual nginx. No port management. No auth setup. WineJS turns a server into an operating system where every app — Windows or web — is a URL.
+ more coming · install any of these with a single script
One pattern. Every app.
A pre-defined template makes any self-hosted app installable with a single script. Follow the format and share it as winejs_install_yourapp.sh.
- Verify WineJS platform → /opt/winejs exists, network ready
- Get domain → from existing WineJS config or user input
- Find next available port → auto-detects, no conflicts
- Create directories → consistent /opt/winejs/apps/[app], /opt/winejs/data/[app]
- Generate config.json → app metadata, port, icon, category
- Create docker-compose.yml → container definition, volume mounts, network
- Add to nginx → reverse proxy route at /appname
- Create helper script → winejs-[app] CLI tool
- Create uninstall script → clean removal
- Restart translator → app appears at https://yourdomain.com/appname
By following this guide, we translated 40 installers in under 1 hour.
Find the official Docker Compose or install docs → extract volume mounts, ports, env vars → wrap in the template with WineJS conventions → add app-specific features.
winejs_install_[app].sh→yourdomain.com/appname
Ship an app in six steps.
Copy the template script (e.g. winejs_install_forgejo.sh)
Replace app-specific values: APP_NAME, CATEGORY, DESCRIPTION
Set Docker image + version and port mapping
Configure volume mounts where data persists
Set environment variables and any custom features
Drop an icon in the icons directory — run the script
curl -o install.sh https://cdn.ofpigi.com/rtx/winejs_install_forgejo.sh && sudo bash install.sh