46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# WireGuard Portal on Raspberry Pi
|
|
|
|
This readme only contains a detailed explanation of how to setup the WireGuard Portal service on a raspberry pi (>= 3).
|
|
|
|
## Setup
|
|
|
|
You can download prebuild binaries from the [release page](https://github.com/h44z/wg-portal/releases). 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` |