Files
webmail-client/Makefile
T
lukasandClaude Opus 5.5 8a1b9979e9 Productivity features, UI translations, local email translation
- Snooze (with a Snoozed folder), keyboard shortcuts with a Settings
  section, mail templates (Compose > More > Templates), a Subscriptions
  folder with bulk unsubscribe/delete, and tracker blocking with a
  Privacy toggle (on by default)
- Own dialogs instead of browser popups; emoji picker in compose; compose
  windows survive a visit to Settings
- Sentence completion learned from the user's sent mail (no AI)
- Interface in English and Polish (one file per language, English as the
  fallback), picked from the browser on first run, then kept
- Email translation on the server via LibreTranslate: Translate button
  and "Translate to...", messages in several languages translated part
  by part, names/addresses/emoji/file names/phone numbers kept, an
  animated line while translating
- Antispam "Mark as spam" loads with the message, not when the menu opens

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 20:00:31 +02:00

43 lines
2.0 KiB
Makefile

up: ## start services
docker compose -f docker/docker-compose.yml up -d postgres redis meilisearch languagetool libretranslate
down: ## stop services (data kept)
docker compose -f docker/docker-compose.yml down
reset-db: ## DESTRUCTIVE: wipe db + search + blobs, re-migrate
docker compose -f docker/docker-compose.yml down -v
rm -rf var/blobs && mkdir -p var/blobs
docker compose -f docker/docker-compose.yml up -d --wait postgres redis meilisearch
cd backend && alembic upgrade head
api:
uvicorn app.main:create_app --factory --reload --port 8000 --app-dir backend
worker: ## run both sync + jobs in one process (dev)
cd backend && WORKER_ROLE=all python -m workers.run
worker-sync: ## run only the account-sync supervisor
cd backend && WORKER_ROLE=sync python -m workers.run
worker-jobs: ## run only the arq job consumers (interactive + bulk)
cd backend && WORKER_ROLE=jobs python -m workers.run
web:
cd frontend && npm run dev
test:
cd backend && pytest -q && cd ../frontend && npx vitest run
mail-test: ## start throwaway IMAP/SMTP server
docker compose -f docker/docker-compose.yml up -d greenmail
# --- production (NAS / single-host Docker deploy; see docs/nas-install.md) ---
prod-init: ## generate docker/.env.prod + data dirs
./deploy/webmail.sh init
prod-up: ## start the production stack
./deploy/webmail.sh up
prod-down: ## stop the production stack (data kept)
./deploy/webmail.sh down
prod-status: ## what is running, versions, disk, backups
./deploy/webmail.sh status
prod-update: ## backup -> migrate -> roll -> health-gate (auto-rollback on failure)
./deploy/webmail.sh update
prod-backup: ## take a verified database dump now
./deploy/webmail.sh backup
prod-doctor: ## pre-flight checks on a deployment
./deploy/webmail.sh doctor
prod-images: ## build production images locally (no push)
docker build -f docker/Dockerfile.backend -t webmail/backend:local .
docker build -f docker/Dockerfile.frontend -t webmail/web:local .