// source mirror
Build Your Own Node
SignalForge is the public community surface for P7 Scanner operators. The public source mirror should be a clean, buildable downstream copy of the P7 Scanner stack.
The buildable node source lives at github.com/CptPlastic/signalforge-node.
Yes, include the clients. A usable node needs the Go server, React web console, recorder clients,
Dockerfiles, compose files, and safe example configuration.
What Belongs
- Go server and database migrations.
- React web console.
- Recorder clients and build scripts.
- Dockerfiles and compose files for local, Plesk, Portainer, and peer-stack deployments.
- Operator documentation, update manifest behavior, and SignalHub federation docs.
- Example environment files with safe placeholders.
What Stays Out
- Real
.envfiles. - API keys, source upload keys, mail credentials, webhook URLs, database passwords, and private deployment notes.
- Generated build output, local volumes, or machine-specific config.
- Anything that makes one operator's node look official by default.
Fastest Operator Path
Use official public images and a pinned image tag:
IMAGE_NAMESPACE=cptplastic
IMAGE_TAG=<published-short-sha>
docker-compose --env-file .env -f docker-compose.plesk.yml up -d
The latest public tag is published at /p7-scanner-update.json.
Build From Source
cd server
go test ./...
go build ./...
cd client
npm install
npm run build
docker-compose up --build -d
SignalHub Test Stack
cp .env.peer.example .env.peer
docker-compose --env-file .env.peer -f docker-compose.peer.yml up -d
Trust Model
- Anyone can run a node.
- Direct peering uses invite tokens.
- SignalForge can list known hubs.
- Verified and official status require maintainer approval.
- Remote sources stay labeled with their origin hub.