- Go (1.26)
- Git
- gomobile and Android Studio for Android (see more)
- Flutter (3.38) for Web and Android
The first step is to clone awl and awl-flutter in one parent directory.
# Example structure:
# /workspace
# ├── awl
# └── awl-flutter
git clone https://github.com/anywherelan/awl.git
git clone https://github.com/anywherelan/awl-flutter.git
cd awl
./build.sh release
ls buildSee build.sh for more details.
Note: To run the application on desktop (Linux/macOS/Windows), you need root/administrator rights. This is required to create virtual network interfaces.
The project requires a static directory containing the Flutter web UI. If you see an error like pattern static: no matching files found, you need to set this up. You have two options:
Option A: Download pre-built (No Flutter required)
If you don't want to install Flutter or build the frontend, you can download the pre-built static files.
- Download the
awl-release-static.zipartifact from a recent GitHub Action run from Manual build release workflow. - Unzip the contents into the
staticdirectory in the root of the awl project:unzip awl-release-static.zip -d static
Option B: Build locally
If you have Flutter installed, you can build the web static files yourself:
./build.sh webThis rebuilds the Flutter web frontend and places it in the static directory.
If you are developing on Windows, you must download the wintun driver dependencies before building:
./build.sh depsThe ./build.sh script provides commands for Android development:
-
Build Android Library (Go backend):
./build.sh android-lib
Builds the Go backend as an Android library (
anywherelan.aar). Use this when you are working on the Go code and want to check for compilation errors without building the full APK. -
Build Full Android APK:
./build.sh android
Builds the full Android application (requires
android-libstep implicitly, but this command runs both).