Phase 0: project scaffold and build pipeline

Go module (codeberg.org/mix/selfpost), two command skeletons (panel,
selfpost-backup) sharing internal/buildinfo for the -ldflags version stamp,
Makefile (static CGO_ENABLED=0 build), AGPL-3.0 LICENSE, README skeleton and
.gitattributes forcing LF (container scripts must not get CRLF).

Verified on the dev server: go vet clean, make build produces statically
linked binaries, version stamping works.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 14:50:51 +03:00
parent 87388b4209
commit 4e589e1080
10 changed files with 834 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# SelfPost
Self-hosted outbound SMTP relay with a web control panel, shipped as a single
Docker image. Postfix + OpenDKIM + a small Go panel run together under
`supervisord`; the panel manages multiple sending domains, per-domain DKIM keys
and SASL-authenticated applications bound to their domain.
SelfPost sends mail straight to the internet from your own IP, with DKIM
signing, and is configured once through the panel. It is **outbound only** — it
does not receive mail, provide mailboxes, or offer webmail.
> **Status: under active development.** See [docs/specification.md](docs/specification.md)
> for the full requirements and [docs/implementation-plan.md](docs/implementation-plan.md)
> for the phased build plan.
## Requirements (site prerequisites)
SelfPost assumes the host already provides the conditions for sending from your
own IP — an unblocked outbound port 25, a static IP, configurable PTR/rDNS and a
reasonable IP reputation. Providing these is the operator's job, not a feature of
SelfPost. Detailed deployment docs land in a later phase.
## Repository
- Primary: <https://codeberg.org/mix/selfpost>
- Mirror: <https://github.com/mixeme/selfpost>
## License
[AGPL-3.0](LICENSE). The AGPL closes the "SaaS loophole": if you run a modified
version as a network-accessible service, you must make the modified source
available to its users — not only when you distribute copies of the code.