Newt can be installed as either a static binary executable or a Docker container. Configuration is passed via CLI arguments in both cases.
You must first create a site and copy the Newt config in Pangolin before running Newt.
Binary Installation
Static executable
Cross-platform support
Easy to install and run
Systemd service support
Docker Installation
Containerized deployment
Environment variables
Docker Compose support
Easy management
Binary Installation
Quick Install (Recommended)
Use this command to automatically install Newt. It detects your system architecture automatically and always pulls the latest version, adding Newt to your PATH:
curl -fsSL https://pangolin.net/get-newt.sh | bash
Manual Download
Binaries for Linux, macOS, and Windows are available in the GitHub releases for ARM and AMD64 (x86_64) architectures.
Download and install manually:
wget -O newt "https://github.com/fosrl/newt/releases/download/{version}/newt_{architecture}" && chmod +x ./newt
Replace {version} with the desired version and {architecture} with your architecture. Check the release notes for the latest information.
Running Newt
Run Newt with the configuration from Pangolin:
newt \
--id 31frd0uzbjvp721 \
--secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6 \
--endpoint https://example.com
Permanent Installation
Install to your PATH (may need to run as root):
The quick installer will do this step for you.
Systemd Service
Create a basic systemd service:
/etc/systemd/system/newt.service
[Unit]
Description =Newt
After =network.target
[Service]
ExecStart =/usr/local/bin/newt --id 31frd0uzbjvp721 --secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6 --endpoint https://example.com
Restart =always
User =root
[Install]
WantedBy =multi-user.target
Make sure to move the binary to /usr/local/bin/newt before creating the service!
Docker Installation
Pull the Image
Pull the latest Newt image from Docker Hub:
docker pull fosrl/newt:latest
Run with Docker
Run Newt with CLI arguments from Pangolin:
docker run -it fosrl/newt --id 31frd0uzbjvp721 \
--secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6 \
--endpoint https://example.com
Docker Compose
Environment Variables (Recommended)
services :
newt :
image : fosrl/newt
container_name : newt
restart : unless-stopped
environment :
- PANGOLIN_ENDPOINT=https://app.pangolin.net
- NEWT_ID=2ix2t8xk22ubpfy
- NEWT_SECRET=nnisrfsdfc7prqsp9ewo1dvtvci50j5uiqotez00dgap0ii2
Config file injected as Compose Secret
A safer but slightly more complex way is to use Compose Secrets . First, create a JSON file containing your configuration:
{
"id" : "2ix2t8xk22ubpfy" ,
"secret" : "nnisrfsdfc7prqsp9ewo1dvtvci50j5uiqotez00dgap0ii2" ,
"endpoint" : "https://example.com" ,
"tlsClientCert" : ""
}
Then register and reference the secret in your docker-compose.yml:
services :
newt :
image : fosrl/newt
container_name : newt
restart : unless-stopped
environment :
- CONFIG_FILE=/run/secrets/newt-config
secrets :
- newt-config
secrets :
newt-config :
file : ./newt-config.secret
This allows you to separate sensitive secrets from plain configuration, improving security when storing or sharing your docker-compose.yml anywhere else.
CLI Arguments
services :
newt :
image : fosrl/newt
container_name : newt
restart : unless-stopped
command :
- --id 31frd0uzbjvp721
- --secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6
- --endpoint https://example.com
Start the service:
Unraid
Newt is available in the Unraid Community Applications store. Search for “Newt” and follow the installation prompts. Enter the ID, secret, and endpoint from Pangolin in the template fields.
Newt available in Unraid Community Applications store
Portainer and Other UIs
Container management UIs like Portainer typically allow passing commands and environment variables to containers similar to Docker Compose. Look for a commands or arguments configuration section and follow the relevant guides.