Skip to content

Configuration

articwake is configured through environment variables. On the SD card image, these are set in /boot/articwake/config.env.

VariableRequiredDefaultDescription
ARTICWAKE_BIND_HOSTNo127.0.0.1IP address to bind the HTTP server
ARTICWAKE_PORTNo80HTTP port
ARTICWAKE_HOMELAB_MACYes-Target server’s MAC address
ARTICWAKE_HOMELAB_IPYes-Target server’s IP address
ARTICWAKE_HOMELAB_BROADCASTNo255.255.255.255Broadcast address for WOL packets
ARTICWAKE_SSH_PORTNo2222SSH port for dropbear in initrd
ARTICWAKE_SSH_KEY_PATHNo/etc/secrets/articwake-keyPath to SSH private key
ARTICWAKE_PIN_HASH_PATHNo/var/lib/articwake/pin.hashPath to Argon2 PIN hash file

The MAC address of your target server. This is used to send Wake-on-LAN magic packets.

Supported formats:

  • Colon-separated: aa:bb:cc:dd:ee:ff
  • Dash-separated: aa-bb-cc-dd-ee-ff
  • No separator: aabbccddeeff
Terminal window
export ARTICWAKE_HOMELAB_MAC="aa:bb:cc:dd:ee:ff"

The IP address of your target server. This is used for:

  • Status checks (ping and SSH port detection)
  • SSH connection for LUKS unlock

Using a Tailscale IP is recommended for reliability:

Terminal window
export ARTICWAKE_HOMELAB_IP="100.x.y.z"

By default, articwake binds to 127.0.0.1 (localhost only) for security. On the SD card image, this is set to 0.0.0.0 to allow network access.

Terminal window
# Allow connections from any interface
export ARTICWAKE_BIND_HOST="0.0.0.0"
# Or bind to a specific interface
export ARTICWAKE_BIND_HOST="192.168.1.50"

HTTP port for the web interface. Default is 80.

Terminal window
export ARTICWAKE_PORT="8080"

Broadcast address for Wake-on-LAN packets. Usually 255.255.255.255 works, but some networks require a subnet broadcast.

Terminal window
# Subnet broadcast for 192.168.1.0/24
export ARTICWAKE_HOMELAB_BROADCAST="192.168.1.255"

The SSH port for dropbear running in your server’s initrd. Most setups use port 2222 to avoid conflicting with the main SSH server.

Terminal window
export ARTICWAKE_SSH_PORT="2222"

Path to the Ed25519 private key for SSH authentication. This key must be authorized in your server’s initrd.

Terminal window
export ARTICWAKE_SSH_KEY_PATH="/path/to/your/key"

Path to the file containing the Argon2-hashed PIN. Generate with articwake hash-pin.

Terminal window
export ARTICWAKE_PIN_HASH_PATH="/path/to/pin.hash"
Terminal window
export ARTICWAKE_BIND_HOST="127.0.0.1"
export ARTICWAKE_PORT="8080"
export ARTICWAKE_HOMELAB_MAC="aa:bb:cc:dd:ee:ff"
export ARTICWAKE_HOMELAB_IP="192.168.1.100"
export ARTICWAKE_SSH_PORT="2222"
export ARTICWAKE_SSH_KEY_PATH="./articwake-key"
export ARTICWAKE_PIN_HASH_PATH="./pin.hash"

In /boot/articwake/config.env:

ARTICWAKE_BIND_HOST="0.0.0.0"
ARTICWAKE_PORT="80"
ARTICWAKE_HOMELAB_MAC="aa:bb:cc:dd:ee:ff"
ARTICWAKE_HOMELAB_IP="100.x.y.z"
ARTICWAKE_SSH_PORT="2222"