ItsGoin v0.3.2 — Decentralized social media network

No central server, user-owned data, reverse-chronological feed.
Rust core + Tauri desktop + Android app + plain HTML/CSS/JS frontend.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Scott Reimers 2026-03-15 20:22:08 -04:00
commit 800388cda4
146 changed files with 53227 additions and 0 deletions

13
deploy/Dockerfile Normal file
View file

@ -0,0 +1,13 @@
FROM rust:1-bookworm AS builder
WORKDIR /build
COPY Cargo.toml Cargo.lock ./
COPY crates/ crates/
COPY frontend/ frontend/
RUN cargo build --release -p itsgoin-cli
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=builder /build/target/release/itsgoin /usr/local/bin/itsgoin
EXPOSE 4433/udp
VOLUME /data
ENTRYPOINT ["itsgoin", "/data", "--bind", "0.0.0.0:4433", "--daemon"]

46
deploy/README.md Normal file
View file

@ -0,0 +1,46 @@
# ItsGoin Anchor Node Deployment
## Quick Start
```bash
# From the project root:
docker compose -f deploy/docker-compose.yml up -d
# Open UDP 4433 in firewall (AlmaLinux/RHEL):
sudo firewall-cmd --add-port=4433/udp --permanent
sudo firewall-cmd --reload
# Get the anchor's node ID:
docker logs itsgoin-anchor 2>&1 | grep "Node ID"
# Or read identity key directly:
docker exec itsgoin-anchor cat /proc/1/root/data/identity.key 2>/dev/null | xxd -p -c 32
```
## Connect String
Once you have the node ID, your connect string is:
```
<node_id_hex>@digitalservicesinternational.net:4433
```
Clients can use this in `bootstrap.json` or `anchors.json`, or paste it into the `connect` command.
## Manual Build & Run (no Docker)
```bash
cargo build --release -p itsgoin-cli
./target/release/itsgoin /var/lib/itsgoin --bind 0.0.0.0:4433 --daemon
```
## Logs
```bash
docker logs -f itsgoin-anchor
```
## Data Persistence
Node identity and database are stored in the `itsgoin-data` Docker volume.
To back up: `docker cp itsgoin-anchor:/data ./backup`

20
deploy/docker-compose.yml Normal file
View file

@ -0,0 +1,20 @@
services:
anchor:
build:
context: ..
dockerfile: deploy/Dockerfile
container_name: itsgoin-anchor
restart: unless-stopped
network_mode: host
volumes:
- itsgoin-data:/data
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
environment:
- RUST_LOG=info,iroh=warn,swarm_discovery=warn
volumes:
itsgoin-data: