Skip to content

Linux Server Setup


Additionally, you can download a setup package to speed up deployment:

Download Setup Package

This includes:

  • Directory structure
  • Launch and update scripts
  • Example Nginx configuration

In a Linux environment, Portweaver is deployed as:

  • A standalone binary (portweaver-server)
  • Running locally on 0.0.0.0:8080
  • Behind nginx reverse proxy for HTTPS handling

This means that by default, it listens on all interfaces over HTTP.


Recommended layout:

~/portweaver/
├── launch.sh
├── update.sh
├── bin/
│ └── portweaver-server
├── scripts/
│ └── fetch-artifact.sh

Terminal window
sudo apt update && sudo apt upgrade
sudo apt install nginx tmux htop nano curl jq unzip

Terminal window
mkdir -p ~/portweaver
cd ~/portweaver
Terminal window
mv portweaver-server ~/portweaver/bin/
chmod +x portweaver-server

Portweaver runs on:

0.0.0.0:8080

This is intended to be internal-only.


Nginx is responsible for:

  • Serving HTTPS (:443)
  • Redirecting HTTP (:80 → 443)
  • Proxying traffic → localhost:8080
Terminal window
/etc/nginx/sites-enabled/portweaver.conf
Terminal window
sudo nginx -t
sudo systemctl restart nginx

Ensure:

  • Allow 80/tcp
  • Allow 443/tcp
  • Block 8080/tcp

Example (UFW):

Terminal window
sudo ufw allow 80
sudo ufw allow 443
sudo ufw deny 8080
sudo ufw enable

Terminal window
cd ~/portweaver
chmod +x launch.sh && ./launch.sh

GitHub Personal Access Token must be set:

Terminal window
export PAT=your_token_here
Terminal window
chmod +x update.sh && ./update.sh
Terminal window
sudo nano /etc/systemd/system/portweaver.service
[Unit]
Description=Portweaver Server
After=network.target
[Service]
Type=simple
User=<username>
WorkingDirectory=/home/<username>/portweaver
ExecStart=/home/<username>/portweaver/launch.sh
Restart=always
[Install]
WantedBy=multi-user.target

Enable and start:

Terminal window
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable portweaver
sudo systemctl start portweaver

Terminal window
systemctl status nginx
sudo nginx -t
tmux attach portweaver