chore: rename quicproquo → quicprochat in docs, Docker, CI, and packaging
Rename all project references from quicproquo/qpq to quicprochat/qpc across documentation, Docker configuration, CI workflows, packaging scripts, operational configs, and build tooling. - Docker: crate paths, binary names, user/group, data dirs, env vars - CI: workflow crate references, binary names, artifact names - Docs: all markdown files under docs/, SDK READMEs, book.toml - Packaging: OpenWrt Makefile, init script, UCI config (file renames) - Scripts: justfile, dev-shell, screenshot, cross-compile, ai_team - Operations: Prometheus config, alert rules, Grafana dashboard - Config: .env.example (QPQ_* → QPC_*), CODEOWNERS paths - Top-level: README, CONTRIBUTING, ROADMAP, CLAUDE.md
This commit is contained in:
@@ -12,60 +12,60 @@ WORKDIR /build
|
||||
|
||||
# Copy manifests first so dependency layers are cached independently of source.
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY crates/quicproquo-core/Cargo.toml crates/quicproquo-core/Cargo.toml
|
||||
COPY crates/quicproquo-proto/Cargo.toml crates/quicproquo-proto/Cargo.toml
|
||||
COPY crates/quicproquo-server/Cargo.toml crates/quicproquo-server/Cargo.toml
|
||||
COPY crates/quicproquo-client/Cargo.toml crates/quicproquo-client/Cargo.toml
|
||||
COPY crates/quicproquo-p2p/Cargo.toml crates/quicproquo-p2p/Cargo.toml
|
||||
COPY crates/quicproquo-kt/Cargo.toml crates/quicproquo-kt/Cargo.toml
|
||||
COPY crates/quicproquo-plugin-api/Cargo.toml crates/quicproquo-plugin-api/Cargo.toml
|
||||
COPY crates/quicproquo-rpc/Cargo.toml crates/quicproquo-rpc/Cargo.toml
|
||||
COPY crates/quicproquo-sdk/Cargo.toml crates/quicproquo-sdk/Cargo.toml
|
||||
COPY crates/quicprochat-core/Cargo.toml crates/quicprochat-core/Cargo.toml
|
||||
COPY crates/quicprochat-proto/Cargo.toml crates/quicprochat-proto/Cargo.toml
|
||||
COPY crates/quicprochat-server/Cargo.toml crates/quicprochat-server/Cargo.toml
|
||||
COPY crates/quicprochat-client/Cargo.toml crates/quicprochat-client/Cargo.toml
|
||||
COPY crates/quicprochat-p2p/Cargo.toml crates/quicprochat-p2p/Cargo.toml
|
||||
COPY crates/quicprochat-kt/Cargo.toml crates/quicprochat-kt/Cargo.toml
|
||||
COPY crates/quicprochat-plugin-api/Cargo.toml crates/quicprochat-plugin-api/Cargo.toml
|
||||
COPY crates/quicprochat-rpc/Cargo.toml crates/quicprochat-rpc/Cargo.toml
|
||||
COPY crates/quicprochat-sdk/Cargo.toml crates/quicprochat-sdk/Cargo.toml
|
||||
|
||||
# Create dummy source files so `cargo build` can resolve the dependency graph
|
||||
# and cache the compiled dependencies before copying real source.
|
||||
RUN mkdir -p \
|
||||
crates/quicproquo-core/src \
|
||||
crates/quicproquo-proto/src \
|
||||
crates/quicproquo-server/src \
|
||||
crates/quicproquo-client/src \
|
||||
crates/quicproquo-p2p/src \
|
||||
crates/quicproquo-kt/src \
|
||||
crates/quicproquo-plugin-api/src \
|
||||
crates/quicproquo-rpc/src \
|
||||
crates/quicproquo-sdk/src \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-server/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \
|
||||
&& touch crates/quicproquo-core/src/lib.rs \
|
||||
&& touch crates/quicproquo-proto/src/lib.rs \
|
||||
&& touch crates/quicproquo-p2p/src/lib.rs \
|
||||
&& touch crates/quicproquo-kt/src/lib.rs \
|
||||
&& touch crates/quicproquo-plugin-api/src/lib.rs \
|
||||
&& touch crates/quicproquo-rpc/src/lib.rs \
|
||||
&& touch crates/quicproquo-sdk/src/lib.rs
|
||||
crates/quicprochat-core/src \
|
||||
crates/quicprochat-proto/src \
|
||||
crates/quicprochat-server/src \
|
||||
crates/quicprochat-client/src \
|
||||
crates/quicprochat-p2p/src \
|
||||
crates/quicprochat-kt/src \
|
||||
crates/quicprochat-plugin-api/src \
|
||||
crates/quicprochat-rpc/src \
|
||||
crates/quicprochat-sdk/src \
|
||||
&& echo 'fn main() {}' > crates/quicprochat-server/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicprochat-client/src/main.rs \
|
||||
&& touch crates/quicprochat-core/src/lib.rs \
|
||||
&& touch crates/quicprochat-proto/src/lib.rs \
|
||||
&& touch crates/quicprochat-p2p/src/lib.rs \
|
||||
&& touch crates/quicprochat-kt/src/lib.rs \
|
||||
&& touch crates/quicprochat-plugin-api/src/lib.rs \
|
||||
&& touch crates/quicprochat-rpc/src/lib.rs \
|
||||
&& touch crates/quicprochat-sdk/src/lib.rs
|
||||
|
||||
# Schemas must exist before the proto crate's build.rs runs.
|
||||
COPY schemas/ schemas/
|
||||
|
||||
# Build dependencies only (source stubs mean this layer is cache-friendly).
|
||||
RUN cargo build --release --bin qpq-server 2>/dev/null || true
|
||||
RUN cargo build --release --bin qpc-server 2>/dev/null || true
|
||||
|
||||
# Copy real source and build for real.
|
||||
COPY crates/ crates/
|
||||
|
||||
# Touch source to force re-compilation after copying real crates.
|
||||
RUN touch \
|
||||
crates/quicproquo-core/src/lib.rs \
|
||||
crates/quicproquo-proto/src/lib.rs \
|
||||
crates/quicproquo-p2p/src/lib.rs \
|
||||
crates/quicproquo-kt/src/lib.rs \
|
||||
crates/quicproquo-plugin-api/src/lib.rs \
|
||||
crates/quicproquo-rpc/src/lib.rs \
|
||||
crates/quicproquo-sdk/src/lib.rs \
|
||||
crates/quicproquo-server/src/main.rs \
|
||||
crates/quicproquo-client/src/main.rs
|
||||
crates/quicprochat-core/src/lib.rs \
|
||||
crates/quicprochat-proto/src/lib.rs \
|
||||
crates/quicprochat-p2p/src/lib.rs \
|
||||
crates/quicprochat-kt/src/lib.rs \
|
||||
crates/quicprochat-plugin-api/src/lib.rs \
|
||||
crates/quicprochat-rpc/src/lib.rs \
|
||||
crates/quicprochat-sdk/src/lib.rs \
|
||||
crates/quicprochat-server/src/main.rs \
|
||||
crates/quicprochat-client/src/main.rs
|
||||
|
||||
RUN cargo build --release --bin qpq-server
|
||||
RUN cargo build --release --bin qpc-server
|
||||
|
||||
# ── Stage 2: Runtime ──────────────────────────────────────────────────────────
|
||||
#
|
||||
@@ -78,31 +78,31 @@ RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /build/target/release/qpq-server /usr/local/bin/qpq-server
|
||||
COPY --from=builder /build/target/release/qpc-server /usr/local/bin/qpc-server
|
||||
|
||||
# Create a dedicated non-root user with a writable data directory.
|
||||
RUN groupadd --system qpq \
|
||||
&& useradd --system --gid qpq --no-create-home --shell /usr/sbin/nologin qpq \
|
||||
&& mkdir -p /var/lib/quicproquo \
|
||||
&& chown qpq:qpq /var/lib/quicproquo
|
||||
RUN groupadd --system qpc \
|
||||
&& useradd --system --gid qpc --no-create-home --shell /usr/sbin/nologin qpc \
|
||||
&& mkdir -p /var/lib/quicprochat \
|
||||
&& chown qpc:qpc /var/lib/quicprochat
|
||||
|
||||
EXPOSE 7000
|
||||
|
||||
# Persistent data volume: TLS certs, SQLCipher DB, delivery queues, KT log.
|
||||
# Mount a named volume or host path here for data persistence across restarts:
|
||||
# docker run -v qpq-data:/var/lib/quicproquo ...
|
||||
VOLUME ["/var/lib/quicproquo"]
|
||||
# docker run -v qpc-data:/var/lib/quicprochat ...
|
||||
VOLUME ["/var/lib/quicprochat"]
|
||||
|
||||
ENV RUST_LOG=info \
|
||||
QPQ_LISTEN=0.0.0.0:7000 \
|
||||
QPQ_DATA_DIR=/var/lib/quicproquo \
|
||||
QPQ_TLS_CERT=/var/lib/quicproquo/server-cert.der \
|
||||
QPQ_TLS_KEY=/var/lib/quicproquo/server-key.der \
|
||||
QPQ_PRODUCTION=true
|
||||
QPC_LISTEN=0.0.0.0:7000 \
|
||||
QPC_DATA_DIR=/var/lib/quicprochat \
|
||||
QPC_TLS_CERT=/var/lib/quicprochat/server-cert.der \
|
||||
QPC_TLS_KEY=/var/lib/quicprochat/server-key.der \
|
||||
QPC_PRODUCTION=true
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
|
||||
CMD test -f /var/lib/quicproquo/server-cert.der || exit 1
|
||||
CMD test -f /var/lib/quicprochat/server-cert.der || exit 1
|
||||
|
||||
USER qpq
|
||||
USER qpc
|
||||
|
||||
CMD ["qpq-server"]
|
||||
CMD ["qpc-server"]
|
||||
|
||||
@@ -12,45 +12,45 @@ WORKDIR /build
|
||||
|
||||
# Copy manifests first so dependency layers are cached independently of source.
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY crates/quicproquo-core/Cargo.toml crates/quicproquo-core/Cargo.toml
|
||||
COPY crates/quicproquo-proto/Cargo.toml crates/quicproquo-proto/Cargo.toml
|
||||
COPY crates/quicproquo-server/Cargo.toml crates/quicproquo-server/Cargo.toml
|
||||
COPY crates/quicproquo-client/Cargo.toml crates/quicproquo-client/Cargo.toml
|
||||
COPY crates/quicproquo-p2p/Cargo.toml crates/quicproquo-p2p/Cargo.toml
|
||||
COPY crates/quicprochat-core/Cargo.toml crates/quicprochat-core/Cargo.toml
|
||||
COPY crates/quicprochat-proto/Cargo.toml crates/quicprochat-proto/Cargo.toml
|
||||
COPY crates/quicprochat-server/Cargo.toml crates/quicprochat-server/Cargo.toml
|
||||
COPY crates/quicprochat-client/Cargo.toml crates/quicprochat-client/Cargo.toml
|
||||
COPY crates/quicprochat-p2p/Cargo.toml crates/quicprochat-p2p/Cargo.toml
|
||||
|
||||
# Create dummy source files so `cargo build` can resolve the dependency graph
|
||||
# and cache the compiled dependencies before copying real source.
|
||||
RUN mkdir -p \
|
||||
crates/quicproquo-core/src \
|
||||
crates/quicproquo-proto/src \
|
||||
crates/quicproquo-server/src \
|
||||
crates/quicproquo-client/src \
|
||||
crates/quicproquo-p2p/src \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-server/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \
|
||||
&& touch crates/quicproquo-core/src/lib.rs \
|
||||
&& touch crates/quicproquo-proto/src/lib.rs \
|
||||
&& touch crates/quicproquo-p2p/src/lib.rs
|
||||
crates/quicprochat-core/src \
|
||||
crates/quicprochat-proto/src \
|
||||
crates/quicprochat-server/src \
|
||||
crates/quicprochat-client/src \
|
||||
crates/quicprochat-p2p/src \
|
||||
&& echo 'fn main() {}' > crates/quicprochat-server/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicprochat-client/src/main.rs \
|
||||
&& touch crates/quicprochat-core/src/lib.rs \
|
||||
&& touch crates/quicprochat-proto/src/lib.rs \
|
||||
&& touch crates/quicprochat-p2p/src/lib.rs
|
||||
|
||||
# Schemas must exist before the proto crate's build.rs runs.
|
||||
COPY schemas/ schemas/
|
||||
|
||||
# Build dependencies only (source stubs mean this layer is cache-friendly).
|
||||
# The GUI crate is not included, so workspace resolution may fail — || true handles it.
|
||||
RUN cargo build --release --bin qpq-server --bin qpq 2>/dev/null || true
|
||||
RUN cargo build --release --bin qpc-server --bin qpc 2>/dev/null || true
|
||||
|
||||
# Copy real source and build for real.
|
||||
COPY crates/ crates/
|
||||
|
||||
# Touch source to force re-compilation after copying real crates.
|
||||
RUN touch \
|
||||
crates/quicproquo-core/src/lib.rs \
|
||||
crates/quicproquo-proto/src/lib.rs \
|
||||
crates/quicproquo-p2p/src/lib.rs \
|
||||
crates/quicproquo-server/src/main.rs \
|
||||
crates/quicproquo-client/src/main.rs
|
||||
crates/quicprochat-core/src/lib.rs \
|
||||
crates/quicprochat-proto/src/lib.rs \
|
||||
crates/quicprochat-p2p/src/lib.rs \
|
||||
crates/quicprochat-server/src/main.rs \
|
||||
crates/quicprochat-client/src/main.rs
|
||||
|
||||
RUN cargo build --release --bin qpq-server --bin qpq
|
||||
RUN cargo build --release --bin qpc-server --bin qpc
|
||||
|
||||
# ── Stage 2: Runtime ──────────────────────────────────────────────────────────
|
||||
#
|
||||
@@ -61,8 +61,8 @@ RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /build/target/release/qpq-server /usr/local/bin/qpq-server
|
||||
COPY --from=builder /build/target/release/qpq /usr/local/bin/qpq
|
||||
COPY --from=builder /build/target/release/qpc-server /usr/local/bin/qpc-server
|
||||
COPY --from=builder /build/target/release/qpc /usr/local/bin/qpc
|
||||
|
||||
RUN mkdir -p /chat
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile.chat-test
|
||||
command: >-
|
||||
qpq-server
|
||||
qpc-server
|
||||
--listen 0.0.0.0:7000
|
||||
--data-dir /data
|
||||
--tls-cert /data/server-cert.der
|
||||
@@ -43,10 +43,10 @@ services:
|
||||
entrypoint: ["sleep", "infinity"]
|
||||
environment:
|
||||
RUST_LOG: warn
|
||||
QPQ_ACCESS_TOKEN: devtoken
|
||||
QPQ_CA_CERT: /data/server-cert.der
|
||||
QPQ_SERVER_NAME: localhost
|
||||
QPQ_SERVER: "server:7000"
|
||||
QPC_ACCESS_TOKEN: devtoken
|
||||
QPC_CA_CERT: /data/server-cert.der
|
||||
QPC_SERVER_NAME: localhost
|
||||
QPC_SERVER: "server:7000"
|
||||
volumes:
|
||||
- server-data:/data:ro
|
||||
working_dir: /chat
|
||||
@@ -65,10 +65,10 @@ services:
|
||||
entrypoint: ["sleep", "infinity"]
|
||||
environment:
|
||||
RUST_LOG: warn
|
||||
QPQ_ACCESS_TOKEN: devtoken
|
||||
QPQ_CA_CERT: /data/server-cert.der
|
||||
QPQ_SERVER_NAME: localhost
|
||||
QPQ_SERVER: "server:7000"
|
||||
QPC_ACCESS_TOKEN: devtoken
|
||||
QPC_CA_CERT: /data/server-cert.der
|
||||
QPC_SERVER_NAME: localhost
|
||||
QPC_SERVER: "server:7000"
|
||||
volumes:
|
||||
- server-data:/data:ro
|
||||
working_dir: /chat
|
||||
|
||||
Reference in New Issue
Block a user