release 0.1.2, renamed sup-server -> sup

This commit is contained in:
Egor 2026-01-26 01:39:08 -08:00
parent bd988ec7f0
commit 40630a6dee
8 changed files with 37 additions and 20 deletions

View file

@ -7,7 +7,7 @@ on:
env: env:
REGISTRY: ghcr.io REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/sup-server IMAGE_NAME: ${{ github.repository_owner }}/sup
jobs: jobs:
build: build:

2
.gitignore vendored
View file

@ -1,4 +1,4 @@
node_modules/ node_modules/
signal-cli signal-cli
.env .env
sup-server sup

View file

@ -188,7 +188,7 @@ For API-based monitoring, call `/api/health` which returns JSON:
SUP consists of two services that **MUST run together on the same machine**: SUP consists of two services that **MUST run together on the same machine**:
- **sup-server** (Bun): Receives webhooks, sends Signal messages via signal-cli. Optional: monitors Proton Mail IMAP - **sup** (Bun): Receives webhooks, sends Signal messages via signal-cli. Optional: monitors Proton Mail IMAP
- **protonmail-bridge** (Official Proton, optional): Decrypts Proton Mail emails, runs local IMAP server - **protonmail-bridge** (Official Proton, optional): Decrypts Proton Mail emails, runs local IMAP server
All services communicate over a private Docker network with no external exposure except Signal protocol. **Separating these services across multiple machines would expose plaintext IMAP traffic and compromise security.** All services communicate over a private Docker network with no external exposure except Signal protocol. **Separating these services across multiple machines would expose plaintext IMAP traffic and compromise security.**

View file

@ -1,6 +1,6 @@
services: services:
server: server:
image: ghcr.io/lone-cloud/sup-server:latest image: ghcr.io/lone-cloud/sup:latest
ports: ports:
- '8080:8080' - '8080:8080'
environment: environment:

View file

@ -1,6 +1,6 @@
{ {
"name": "sup", "name": "sup",
"version": "0.1.2", "version": "0.1.3",
"description": "Privacy-preserving push notifications using Signal as transport", "description": "Privacy-preserving push notifications using Signal as transport",
"private": true, "private": true,
"type": "module", "type": "module",
@ -16,7 +16,7 @@
"scripts": { "scripts": {
"postinstall": "bun run scripts/install-signal-cli.ts || true", "postinstall": "bun run scripts/install-signal-cli.ts || true",
"start": "bun run server/index.ts", "start": "bun run server/index.ts",
"build": "bun build --compile server/index.ts --outfile server/sup-server", "build": "bun build --compile server/index.ts --outfile server/sup",
"check": "tsc --noEmit && biome check .", "check": "tsc --noEmit && biome check .",
"fix": "biome check --write --unsafe .", "fix": "biome check --write --unsafe .",
"release": "bun run scripts/release.ts" "release": "bun run scripts/release.ts"

View file

@ -21,19 +21,36 @@ try {
console.log(`Pushing tag to trigger CI build...`); console.log(`Pushing tag to trigger CI build...`);
await $`git push origin ${version}`; await $`git push origin ${version}`;
console.log(`\nCreating GitHub release...`);
await $`gh release create ${version} --title ${version} --notes "## Docker Images
Pull the latest version:
\`\`\`bash
docker pull ghcr.io/lone-cloud/sup:${version}
\`\`\`
Or use in your \`docker-compose.yml\`:
\`\`\`yaml
services:
server:
image: ghcr.io/lone-cloud/sup:${version}
\`\`\`
### Architectures
- linux/amd64
- linux/arm64
### Changes
See commit history for details." --generate-notes`;
console.log(` console.log(`
Release ${version} triggered! Release ${version} complete!
GitHub Actions will now: GitHub release: https://github.com/lone-cloud/sup/releases/tag/${version}
1. Build Docker images GitHub Actions: https://github.com/lone-cloud/sup/actions
2. Push to ghcr.io/lone-cloud/sup-server:${version}
3. Push to ghcr.io/lone-cloud/sup-server:latest
Watch the build: Once CI completes, images will be available:
https://github.com/lone-cloud/sup/actions docker pull ghcr.io/lone-cloud/sup:${version}
Once complete, images will be available:
docker pull ghcr.io/lone-cloud/sup-server:${version}
`); `);
} catch (error) { } catch (error) {
console.error('Release failed:', error); console.error('Release failed:', error);

View file

@ -7,7 +7,7 @@ RUN bun install --frozen-lockfile
COPY server ./server COPY server ./server
RUN bun build --compile server/index.ts --outfile sup-server RUN bun build --compile server/index.ts --outfile sup
FROM debian:13.3-slim FROM debian:13.3-slim
@ -34,7 +34,7 @@ RUN ARCH=$(uname -m) && \
rm /tmp/libsignal_jni_aarch64.so; \ rm /tmp/libsignal_jni_aarch64.so; \
fi fi
COPY --from=builder /app/sup-server /usr/local/bin/sup-server COPY --from=builder /app/sup /usr/local/bin/sup
COPY --from=builder /app/server/public /public COPY --from=builder /app/server/public /public
ENV PATH="/usr/local/signal-cli/bin:${PATH}" ENV PATH="/usr/local/signal-cli/bin:${PATH}"
@ -42,4 +42,4 @@ ENV LD_LIBRARY_PATH="/usr/local/signal-cli/lib:${LD_LIBRARY_PATH}"
EXPOSE 8080 EXPOSE 8080
CMD ["sup-server"] CMD ["sup"]

View file

@ -79,7 +79,7 @@ const handleHealthFragment = async () => {
const html = ` const html = `
<div class="status"> <div class="status">
<div class="status-item ${signalOk ? 'status-ok' : 'status-error'}"> <div class="status-item ${signalOk && linked ? 'status-ok' : 'status-error'}">
Signal: ${signalOk ? 'Connected' : 'Disconnected'} and ${linked ? 'Linked' : 'Unlinked'} Signal: ${signalOk ? 'Connected' : 'Disconnected'} and ${linked ? 'Linked' : 'Unlinked'}
${linked && accountNumber ? `<span class="tooltip">${formatPhoneNumber(accountNumber)}</span>` : ''} ${linked && accountNumber ? `<span class="tooltip">${formatPhoneNumber(accountNumber)}</span>` : ''}
</div> </div>