wails/v3/internal/templates/_common
Lea Anthony 9a363d7be5
feat(v3): add server mode for headless HTTP deployment (#4903)
* feat(v3): add server mode for headless HTTP deployment

Server mode allows Wails applications to run as pure HTTP servers
without native GUI dependencies. Enable with `-tags server` build tag.

Features:
- HTTP server with configurable host/port via ServerOptions
- WAILS_SERVER_HOST and WAILS_SERVER_PORT env var overrides
- WebSocket event broadcasting to connected browsers
- Browser clients represented as BrowserWindow (Window interface)
- Health check endpoint at /health
- Graceful shutdown with configurable timeout
- Docker support with Dockerfile.server template and tasks

Build and run:
  wails3 task build:server
  wails3 task run:server
  wails3 task build:docker
  wails3 task run:docker

Documentation at docs/guides/server-build.mdx

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(v3): add server mode for headless HTTP deployment

Server mode allows Wails applications to run as pure HTTP servers
without native GUI dependencies. Enable with `-tags server` build tag.

Features:
- HTTP server with configurable host/port via ServerOptions
- WAILS_SERVER_HOST and WAILS_SERVER_PORT env var overrides
- WebSocket event broadcasting to connected browsers
- Browser clients represented as BrowserWindow (Window interface)
- Health check endpoint at /health
- Graceful shutdown with configurable timeout
- Docker support with Dockerfile.server template and tasks

Build and run:
  wails3 task build:server
  wails3 task run:server
  wails3 task build:docker
  wails3 task run:docker

Documentation at docs/guides/server-build.mdx

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address CodeRabbit review comments

- Fix corrupted test file with embedded terminal output
- Fix module name mismatch in gin-routing (was gin-example)
- Fix replace directive version mismatch in gin-service
- Fix placeholder module name in ios example (was changeme)
- Fix Dockerfile COPY path to work from both build contexts
- Fix bare URL in README (MD034 compliance)
- Fix comment accuracy in getScreens (returns error, not empty slice)
- Remove deprecated docker-compose version field
- Add port documentation in Taskfile template

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address CodeRabbit review comments

- Add note about healthcheck wget not being available in distroless images
- Add !server build constraint to menu_windows.go and menu_darwin.go
- Downgrade window-visibility-test go.mod from 1.25 to 1.24 to match CI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:33:44 +11:00
..
frontend Documentation updates. 2024-12-16 20:00:56 +11:00
gitignore.tmpl Documentation updates. 2024-12-16 20:00:56 +11:00
go.mod.tmpl [v3] Typed Events, revisited (#4633) 2025-11-11 20:25:57 +11:00
go.sum.tmpl [v3] Late service registration and error handling overhaul (#4066) 2025-02-19 09:27:41 +01:00
greetservice.go Vanilla template: Update to use runtime module 2023-12-29 12:50:25 +11:00
main.go.tmpl [v3] Typed Events, revisited (#4633) 2025-11-11 20:25:57 +11:00
README.md Event cancellation for standard listeners. 2025-01-27 09:29:22 +11:00
Taskfile.tmpl.yml feat(v3): add server mode for headless HTTP deployment (#4903) 2026-01-25 14:33:44 +11:00

Welcome to Your New Wails3 Project!

Congratulations on generating your Wails3 application! This README will guide you through the next steps to get your project up and running.

Getting Started

  1. Navigate to your project directory in the terminal.

  2. To run your application in development mode, use the following command:

    wails3 dev
    

    This will start your application and enable hot-reloading for both frontend and backend changes.

  3. To build your application for production, use:

    wails3 build
    

    This will create a production-ready executable in the build directory.

Exploring Wails3 Features

Now that you have your project set up, it's time to explore the features that Wails3 offers:

  1. Check out the examples: The best way to learn is by example. Visit the examples directory in the v3/examples directory to see various sample applications.

  2. Run an example: To run any of the examples, navigate to the example's directory and use:

    go run .
    

    Note: Some examples may be under development during the alpha phase.

  3. Explore the documentation: Visit the Wails3 documentation for in-depth guides and API references.

  4. Join the community: Have questions or want to share your progress? Join the Wails Discord or visit the Wails discussions on GitHub.

Project Structure

Take a moment to familiarize yourself with your project structure:

  • frontend/: Contains your frontend code (HTML, CSS, JavaScript/TypeScript)
  • main.go: The entry point of your Go backend
  • app.go: Define your application structure and methods here
  • wails.json: Configuration file for your Wails project

Next Steps

  1. Modify the frontend in the frontend/ directory to create your desired UI.
  2. Add backend functionality in main.go.
  3. Use wails3 dev to see your changes in real-time.
  4. When ready, build your application with wails3 build.

Happy coding with Wails3! If you encounter any issues or have questions, don't hesitate to consult the documentation or reach out to the Wails community.