wg-portal/README-RASPBERRYPI.md

2.2 KiB

WireGuard Portal on Raspberry Pi

This readme only contains a detailed explanation of how to set up the WireGuard Portal service on a raspberry pi (>= 3).

Setup

You can download prebuild binaries from the release page. If you want to build the binary yourself, use the following instructions:

Building

This section describes how to build the WireGuard Portal code. To compile the final binary, use the Makefile provided in the repository. As WireGuard Portal is written in Go, golang >= 1.16 must be installed prior to building.

make build-cross-plat

The compiled binary and all necessary assets will be located in the dist folder.

Service setup

  • Copy the contents from the dist folder (or from the downloaded zip file) to /opt/wg-portal. You can choose a different path as well, but make sure to update the systemd service file accordingly.
  • Update the provided systemd wg-portal.service file:
    • Make sure that the binary matches the system architecture.
      • There are three pre-build binaries available: wg-portal-amd64, wg-portal-arm64 and wg-portal-arm.
      • For a raspberry pi use the arm binary if you are using armv7l architecture. If armv8 is used, the arm64 version should work.
    • Make sure that the paths to the binary and the working directory are set correctly (defaults to /opt/wg-portal/wg-portal-amd64):
      • ConditionPathExists
      • WorkingDirectory
      • ExecStart
      • EnvironmentFile
    • Update environment variables in the wg-portal.env file to fit your needs
  • Make sure that the binary application file is executable
    • sudo chmod +x /opt/wg-portal/wg-portal-*
  • Link the system service file to the correct folder:
    • sudo ln -s /opt/wg-portal/wg-portal.service /etc/systemd/system/wg-portal.service
  • Reload the systemctl daemon:
    • sudo systemctl daemon-reload

Manage the service

Once the service has been setup, you can simply manage the service using systemctl:

  • Enable on startup: systemctl enable wg-portal.service
  • Start: systemctl start wg-portal.service
  • Stop: systemctl stop wg-portal.service
  • Status: systemctl status wg-portal.service