2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00
2026-07-14 12:10:22 +03:00

FromChat Deployment

One-click installer for a production FromChat stack on Debian-based Linux.

Quick install

curl -fsSL https://raw.githubusercontent.com/fromchat-messenger/app/main/deployment/install.sh | sudo bash

The installer:

  1. Ensures root (re-runs via sudo if needed)
  2. Verifies Debian/Ubuntu
  3. Offers to install Docker (official script)
  4. Creates ~/fromchat-server
  5. Lets you pick components: backend, frontend, caddy, updater
  6. Optionally uses custom backend/web git URLs
  7. Resolves the latest common semver tag (v1.0, v1.0.0, …)
  8. Downloads only compose.yml from each repo at that tag
  9. Merges compose files and replaces build: with image: fromchat/<service>:<tag>
  10. Opens Caddyfile in nano when caddy is selected
  11. Runs docker compose up -d --wait
  12. Optionally starts the updater service

Classic deploy (offline, build on your PC)

For developers who build images locally and transfer them to a server via SSH + docker pussh — no registry pulls on the server.

cd deployment
python3 -m venv .venv && .venv/bin/pip install -r requirements-deploy.txt
# or reuse ../backend/.venv which already has rich + dotenv

./deploy.sh user@host ~/fromchat-server linux/arm64 --tag latest

Without --components, an interactive checklist opens (backend, frontend, caddy, updater). Non-interactive:

./deploy.sh user@host ~/fromchat-server linux/arm64 \
  --components backend,frontend,caddy,updater \
  --tag latest

This:

  1. Builds all fromchat/* images from local ../backend, ../Web, ../updater, and backend/src/caddy
  2. Merges compose the same way as the installer (generate-compose.py)
  3. Pulls any third-party images from the registry on this machine, then transfers everything via pussh
  4. Syncs config to the server and restarts the fromchat systemd unit
  5. Optionally installs the updater (also built locally)

The server never pulls from a registry during deploy. Your PC needs network access to pull base images (LiveKit, Docker FROM layers, unregistry for pussh).

Override source trees with FROMCHAT_BACKEND_DIR, FROMCHAT_WEB_DIR, FROMCHAT_UPDATER_DIR.
DEPLOYMENT_SERVER in the backend (or deployment) .env still works.

The old entry point backend/scripts/deploy.sh redirects here.

Generate compose only

./install.sh --generate-config backend,frontend,caddy \
  --tag v1.0.0 \
  --output-dir ~/fromchat-server \
  --backend-repo https://github.com/fromchat-messenger/backend.git \
  --web-repo https://github.com/fromchat-messenger/web.git

Layout after install

~/fromchat-server/
  compose.yml          # merged production stack
  .fromchat-version    # current release tag
  .env                 # secrets (create via backend generate:env)
  Caddyfile            # when caddy selected
  config/livekit.yaml
  updater/             # when updater selected
    compose.yml
    .env

GitHub token (updater)

When updater is selected, create a token with read:packages and repo (works for GitHub and git.fromchat.ru):

https://github.com/settings/tokens/new?description=FromChat%20Updater&scopes=read:packages,repo

Official github.com/fromchat-messenger/* repositories automatically fall back to git.fromchat.ru/FromChat/ if GitHub is unreachable.

Environment overrides

Variable Default
FROMCHAT_BACKEND_REPO https://github.com/fromchat-messenger/backend.git
FROMCHAT_WEB_REPO https://github.com/fromchat-messenger/web.git
FROMCHAT_APP_REPO https://github.com/fromchat-messenger/app.git (deployment + updater tooling)
S
Description
No description provided
Readme 121 KiB
Languages
Python 85.3%
Shell 14.7%