T
finnandClaude Opus 5.5 39eb7431e3 JSON encode the values in the request and cross-origin log lines
User agent, referrer, URL and Origin could fake additional fields with
quotes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:55:49 +00:00
2020-04-13 08:31:44 +02:00
2020-04-13 08:31:44 +02:00
2026-10-22 19:18:50 +00:00
2026-10-21 09:06:51 +00:00
2026-10-22 19:04:56 +00:00
2020-04-13 08:31:44 +02:00

Max

A small little program to manage emails.

Setup

Requirements: Docker, Make

Start with make run-dev

Configuration

  • MAX_ORIGIN (required in production): The public origin of MAX, e.g. https://max.finn.st
  • MAX_PRODUCTION=1 is set in the Docker image and makes MAX refuse to start in debug mode (FLASK_DEBUG). Do not override it.

Reverse proxy

In production, the reverse proxy must set X-Real-IP to the client's address and overwrite any value the client sends. Max uses this address for audit logging. For nginx:

proxy_set_header X-Real-IP $remote_addr;

Dovecot

Dovecot reads the password hashes written by Max from the users table. Max stores bcrypt hashes as {BLF-CRYPT}$2b$12$…. Dovecot must therefore support BLF-CRYPT (check with doveadm pw -l).

Dependencies

Direct dependencies are listed in requirements.in (production) and requirements-dev.in (development tools). requirements.txt and requirements-dev.txt are lockfiles with exact versions and hashes

  • After changing a .in file: make lock-deps and make sync-deps
  • Update all dependencies: make update-deps and make sync-deps
  • Check for known vulnerabilities: make audit (before every release)
S
Description
No description provided
Readme MIT
1.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 70.9%
HTML 19.8%
CSS 4.4%
Dockerfile 2.9%
Shell 1%
Other 1%