Skip to content

Commit 1c25a17

Browse files
committed
fix: update workflows
1 parent 1b7a426 commit 1c25a17

8 files changed

Lines changed: 176 additions & 179 deletions

File tree

.github/workflows/build-file.yml

Lines changed: 0 additions & 52 deletions
This file was deleted.

.github/workflows/docker-publish.yml

Lines changed: 67 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,20 @@ jobs:
2424

2525
steps:
2626
- name: Checkout repository
27-
uses: actions/checkout@v3
27+
uses: actions/checkout@v4
2828

2929
# Workaround: https://github.com/docker/build-push-action/issues/461
3030
- name: Setup Docker buildx
31+
uses: docker/setup-buildx-action@v3
32+
33+
- name: Install cosign
3134
uses: sigstore/cosign-installer@v3.1.1
3235
- name: Check install!
3336
run: cosign version
3437

3538
- name: Login to GitHub Container Registry ${{ env.REGISTRY }}
3639
if: github.event_name != 'pull_request'
37-
uses: docker/login-action@v1
40+
uses: docker/login-action@v3
3841
with:
3942
registry: ${{ env.REGISTRY }}
4043
username: ${{ secrets.GHCR_USERNAME }}
@@ -47,69 +50,69 @@ jobs:
4750
run: |
4851
export CURRENT_BRANCH=${GITHUB_REF#refs/heads/}
4952
export TAG=$([[ $CURRENT_BRANCH == "main" ]] && echo $CURRENT_BRANCH || echo "latest")
50-
export GITHUB_REF_IMAGE=ghcr.io/netsepio/erebrus:$GITHUB_SHA
51-
export GITHUB_BRANCH_IMAGE=ghcr.io/netsepio/erebrus:$TAG
53+
export GITHUB_REF_IMAGE=${{ env.REGISTRY }}/$REPO:$GITHUB_SHA
54+
export GITHUB_BRANCH_IMAGE=${{ env.REGISTRY }}/$REPO:$TAG
5255
docker build -t $GITHUB_REF_IMAGE -t $GITHUB_BRANCH_IMAGE .
5356
echo "Pushing Image to GitHub Container Registry"
5457
docker push $GITHUB_REF_IMAGE
5558
docker push $GITHUB_BRANCH_IMAGE
56-
- name: Deploy on US server
57-
if: github.ref == 'refs/heads/prod'
58-
uses: appleboy/ssh-action@v0.1.7
59-
with:
60-
host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_US01 }}
61-
username: ${{ secrets.DEV_SERVER_USERNAME }}
62-
key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
63-
port: ${{ secrets.DEV_SSH_PORT }}
64-
script: |
65-
pwd
66-
cd erebrus
67-
docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
68-
echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
69-
docker pull ghcr.io/netsepio/erebrus:main
70-
docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
71-
- name: Deploy on EU server
72-
if: github.ref == 'refs/heads/prod'
73-
uses: appleboy/ssh-action@v0.1.7
74-
with:
75-
host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_EU01 }}
76-
username: ${{ secrets.DEV_SERVER_USERNAME }}
77-
key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
78-
port: ${{ secrets.DEV_SSH_PORT }}
79-
script: |
80-
pwd
81-
cd erebrus
82-
docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
83-
echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
84-
docker pull ghcr.io/netsepio/erebrus:main
85-
docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
86-
- name: Deploy on CA server
87-
if: github.ref == 'refs/heads/prod'
88-
uses: appleboy/ssh-action@v0.1.7
89-
with:
90-
host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_CA01 }}
91-
username: ${{ secrets.DEV_SERVER_USERNAME }}
92-
key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
93-
port: ${{ secrets.DEV_SSH_PORT }}
94-
script: |
95-
pwd
96-
cd erebrus
97-
docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
98-
echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
99-
docker pull ghcr.io/netsepio/erebrus:main
100-
docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
101-
- name: Deploy on SG server
102-
if: github.ref == 'refs/heads/prod'
103-
uses: appleboy/ssh-action@v0.1.7
104-
with:
105-
host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_SG01 }}
106-
username: ${{ secrets.DEV_SERVER_USERNAME }}
107-
key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
108-
port: ${{ secrets.DEV_SSH_PORT }}
109-
script: |
110-
pwd
111-
cd erebrus
112-
docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
113-
echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
114-
docker pull ghcr.io/netsepio/erebrus:main
115-
docker run -d -p 9080:9080/tcp -p 9002:9002/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
59+
# - name: Deploy on US server
60+
# if: github.ref == 'refs/heads/prod'
61+
# uses: appleboy/ssh-action@v0.1.7
62+
# with:
63+
# host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_US01 }}
64+
# username: ${{ secrets.DEV_SERVER_USERNAME }}
65+
# key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
66+
# port: ${{ secrets.DEV_SSH_PORT }}
67+
# script: |
68+
# pwd
69+
# cd erebrus
70+
# docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
71+
# echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
72+
# docker pull ghcr.io/netsepio/erebrus:main
73+
# docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
74+
# - name: Deploy on EU server
75+
# if: github.ref == 'refs/heads/prod'
76+
# uses: appleboy/ssh-action@v0.1.7
77+
# with:
78+
# host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_EU01 }}
79+
# username: ${{ secrets.DEV_SERVER_USERNAME }}
80+
# key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
81+
# port: ${{ secrets.DEV_SSH_PORT }}
82+
# script: |
83+
# pwd
84+
# cd erebrus
85+
# docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
86+
# echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
87+
# docker pull ghcr.io/netsepio/erebrus:main
88+
# docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
89+
# - name: Deploy on CA server
90+
# if: github.ref == 'refs/heads/prod'
91+
# uses: appleboy/ssh-action@v0.1.7
92+
# with:
93+
# host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_CA01 }}
94+
# username: ${{ secrets.DEV_SERVER_USERNAME }}
95+
# key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
96+
# port: ${{ secrets.DEV_SSH_PORT }}
97+
# script: |
98+
# pwd
99+
# cd erebrus
100+
# docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
101+
# echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
102+
# docker pull ghcr.io/netsepio/erebrus:main
103+
# docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
104+
# - name: Deploy on SG server
105+
# if: github.ref == 'refs/heads/prod'
106+
# uses: appleboy/ssh-action@v0.1.7
107+
# with:
108+
# host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_SG01 }}
109+
# username: ${{ secrets.DEV_SERVER_USERNAME }}
110+
# key: ${{ secrets.DEV_REMOTE_SERVER_KEY }}
111+
# port: ${{ secrets.DEV_SSH_PORT }}
112+
# script: |
113+
# pwd
114+
# cd erebrus
115+
# docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main
116+
# echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
117+
# docker pull ghcr.io/netsepio/erebrus:main
118+
# docker run -d -p 9080:9080/tcp -p 9002:9002/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and Release Go Binary
1+
name: Build and Release Beacon Binary
22

33
on:
44
push:
@@ -21,13 +21,13 @@ jobs:
2121
- name: Build Binary
2222
run: |
2323
go mod tidy
24-
go build -o erebrus
24+
go build -o beacon
2525
2626
- name: Upload Binary as Artifact
2727
uses: actions/upload-artifact@v4
2828
with:
29-
name: erebrus-binary
30-
path: erebrus
29+
name: beacon-binary
30+
path: beacon
3131

3232
release:
3333
needs: build
@@ -44,12 +44,12 @@ jobs:
4444
- name: Download Artifact
4545
uses: actions/download-artifact@v4
4646
with:
47-
name: erebrus-binary
47+
name: beacon-binary
4848

4949
- name: Create GitHub Release
5050
uses: softprops/action-gh-release@v2
5151
with:
5252
tag_name: ${{ env.sha }}
53-
files: erebrus
53+
files: beacon
5454
env:
5555
GITHUB_TOKEN: ${{ secrets.GHCR_TOKEN }}

.sample-env

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ DOMAIN=http://ip_addr:9080/
1818
NODE_NAME=
1919
MNEMONIC=
2020
CHAIN_NAME=
21-
NODE_TYPE=
2221
NODE_CONFIG=
23-
22+
NODE_ACCESS=public
2423
#Gateway Specifications
2524
GATEWAY_WALLET=0x0
2625
GATEWAY_DOMAIN=https://gateway.erebrus.io/
@@ -42,16 +41,9 @@ WG_POST_UP=iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACC
4241
WG_PRE_DOWN=echo WireGuard PreDown
4342
WG_POST_DOWN=iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
4443

45-
#Service Specifications
46-
SERVICE_CONF_DIR=./erebrus
47-
CADDY_CONF_DIR=/etc/caddy
48-
CADDY_INTERFACE_NAME=Caddyfile
4944

50-
# AI Agent Specifications
51-
EREBRUS_DOMAIN=
52-
DOCKER_IMAGE_AGENT="ghcr.io/netsepio/cyrene"
5345

54-
#Peaq Integration
46+
47+
#Contract Integration
5548
CONTRACT_ADDRESS=0x291eC3328b56d5ECebdF993c3712a400Cb7569c3
5649
RPC_URL=https://evm.peaq.network
57-
NODE_ACCESS=

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ENV WG_CONF_DIR=$WG_CONF_DIR WG_CLIENTS_DIR=$WG_CLIENTS_DIR WG_KEYS_DIR=$WG_KEYS
2020
ENV WG_ENDPOINT_HOST=$WG_ENDPOINT_HOST WG_ENDPOINT_PORT=$WG_ENDPOINT_PORT WG_IPv4_SUBNET=$WG_IPv4_SUBNET WG_IPv6_SUBNET=$WG_IPv6_SUBNET
2121
ENV WG_DNS=$WG_DNS WG_ALLOWED_IP_1=$WG_ALLOWED_IP_1 WG_ALLOWED_IP_2=$WG_ALLOWED_IP_2
2222
ENV WG_PRE_UP=$WG_PRE_UP WG_POST_UP=$WG_POST_UP WG_PRE_DOWN=$WG_PRE_DOWN WG_POST_DOWN=$WG_POST_DOWN
23-
ENV NODE_CONFIG=$NODE_CONFIG NODE_TYPE=$NODE_TYPE
23+
ENV NODE_CONFIG=$NODE_CONFIG NODE_ACCESS=$NODE_ACCESS
2424
RUN echo $'#!/usr/bin/env bash\n\
2525
set -eo pipefail\n\
2626
/app/erebrus &\n\

README.md

Lines changed: 81 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,94 @@
1+
# Erebrus Beacon Node
12

2-
# Erebrus
3+
The Erebrus Beacon Node acts as a decentralized VPN relay, providing censorship-resistant and secure internet access. It allows users to route their traffic privately through the Erebrus network while helping strengthen the network's resilience.
34

4-
Erebrus, a decentralized VPN, that ensures your privacy, security, and transparent data practices. It's open-source, ensuring no hidden data tracking or logging. Complementing it, our DePIN initiative lets anyone worldwide participate as a node, contributing either physical servers or virtual machines and earning incentives. With this, we pave the way for safer, decentralized Wi-Fi hotspots, making unreliable public Wi-Fi a thing of the past.
5+
## Overview
56

6-
For more details visit [here](https://erebrus.io).
7+
By operating a Beacon Node, you help expand decentralized connectivity while preventing surveillance, censorship, and cyber threats. The setup is lightweight and runs in a Docker container, requiring minimal system resources.
78

8-
## Features
9+
## Prerequisites
910

10-
- Easy Client and Server management.
11-
- LibP2P integration for peer discovery
12-
- Supports REST and gRPC (QUIC upcoming).
13-
- Email VPN configuration to clients easily.
11+
- Operating System: `Linux`
12+
- Minimum Hardware Requirements:
13+
- 2GB RAM
14+
- 1vCPU
15+
- Network Requirements:
16+
- Incoming traffic allowed on ports:
17+
- 51820 (UDP)
18+
- 9080 (TCP)
19+
- 9002 (TCP)
20+
- A computer with a reliable internet connection (preferably wired)
21+
- Basic understanding of command line interface (CLI) tools
22+
- Node Wallet (valid mnemonic on the supported chain) for on-chain registration and checkpoint
1423

15-
## Deploy Erebrus Node
24+
## Deployment Options
1625

17-
- Refer docs here [setup docs](https://github.com/NetSepio/erebrus/blob/main/docs/node.md).
26+
### Cloud Deployment (Recommended)
1827

19-
## Get Started
28+
For optimal performance and uptime, cloud deployment is recommended. Here are estimated monthly costs from different providers:
2029

21-
To deploy Erebrus, you need to follow the documentation given below,
30+
| Traffic Level | Hetzner | AWS | DigitalOcean | Vultr |
31+
|---------------|---------|-----|--------------|-------|
32+
| Low (100GB) | $5 | $10 | $12 | $8 |
33+
| Moderate (500GB) | $5 | $50 | $17 | $8 |
34+
| High (2TB) | $5 | $180| $22 | $8 |
2235

23-
- First you will need to setup Wireguard and Watcher, for that use [setup docs](https://github.com/NetSepio/erebrus/blob/main/docs/setup.md).
24-
- After setup , you will have choices for deploying Erebrus. Refer [Deploy docs](https://github.com/NetSepio/erebrus/blob/main/docs/deploy.md)
36+
### Home Lab Setup
2537

26-
## API Docs
38+
For home lab deployments:
39+
- Requires a static IP from your ISP
40+
- Ensure unlimited or high-bandwidth ISP plan
41+
- Recommended: Use a dedicated VPS or bare-metal server with static IP
2742

28-
Download Postman collection for Erebrus from [here](https://github.com/NetSepio/erebrus/blob/main/docs/Erebrus.postman_collection.json). There are two types of docs available:
43+
## Requirements
2944

30-
- You can refer docs from github [here](https://github.com/NetSepio/erebrus/blob/main/docs/docs.md)
31-
- There is a web based doc available on Erebrus route /docs.You can refer it after deployment
45+
- **License Fee:** No license required - open for community participation
46+
- **Staking Requirement:** Currently $0 USD (subject to change based on demand & supply)
47+
- **Revenue Model:** Node operators earn rewards based on:
48+
- Bandwidth contribution
49+
- Uptime
50+
- Reliability
51+
52+
## Installation
53+
54+
1. **Install Node Software**
55+
```bash
56+
# If running as regular user:
57+
sudo bash <(curl -s https://raw.githubusercontent.com/NetSepio/beacon/main/install.sh)
58+
59+
# If running as root:
60+
bash <(curl -s https://raw.githubusercontent.com/NetSepio/beacon/main/install.sh)
61+
```
62+
63+
2. **Configure Node Parameters**
64+
- Installation Directory (default: current working directory)
65+
- Public IP (must be publicly routable)
66+
- Chain selection
67+
- Valid mnemonic
68+
69+
3. **Verification Process**
70+
- Configuration verification
71+
- Public IP reachability test
72+
- Service startup
73+
74+
## Maintenance & Monitoring
75+
76+
- Regular software updates for security patches and performance improvements
77+
- Monitor node health and resource usage
78+
- Maintain stable internet connection
79+
80+
## Security Considerations
81+
82+
- Protect your Node Operator account mnemonic
83+
- Keep node software and OS updated
84+
- Implement best practices for server security
85+
- Consider DDoS protection measures
86+
87+
## Additional Resources
88+
89+
- [Erebrus Documentation](https://docs.netsepio.com/latest/erebrus/nodes/beacon-node)
90+
- [Support Discord](https://discord.gg/netsepio)
91+
92+
## License
93+
94+
This project is open-source and available for community participation.

0 commit comments

Comments
 (0)