- Python 97.3%
- Shell 1.3%
- Jinja 0.8%
- HCL 0.5%
- Just 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github | ||
| config | ||
| docs | ||
| infra/opentofu | ||
| packages | ||
| platform | ||
| schemas/static-publication/v1alpha1 | ||
| scripts | ||
| services | ||
| tests | ||
| tools | ||
| .ansible-lint | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .lychee.toml | ||
| .markdownlint-cli2.yaml | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| .tflint.hcl | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| justfile | ||
| LICENSE | ||
| mise.lock | ||
| mise.toml | ||
| pyproject.toml | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
| uv.lock | ||
Lower Duck Pond Hosting
Lower Duck Pond Hosting is a free, community-scale web host for participants in
the r/HaveWeMet role-playing community. It is intended for small, handmade
sites belonging to fictional residents, businesses, clubs, campaigns, and civic
departments.
The project is currently pre-alpha. Milestones 0–2 are complete: the repository and DigitalOcean foundation are reproducible, and the production Ubuntu host passes idempotence, HTTPS, backup, restore, and reboot acceptance checks. Milestone 3, the static tenant MVP, is the current implementation target.
Start here
- Install mise 2026.7.14 or newer.
- Install the pinned project tools with
mise install. - Prepare the locked development environment with
just setup. - Run the complete validation suite with
just check.
just check runs the same checks required by continuous integration. Some
pre-commit hygiene hooks apply safe whitespace or end-of-file fixes before
reporting failure; rerun the command after reviewing those changes.
Repository map
docs/architecture.mddescribes the product vision, security boundaries, and scaling path.docs/roadmap.mddefines the implementation milestones and exit criteria.docs/adr/records accepted architecture decisions.docs/threat-model/records attacker assumptions, security invariants, and required security evidence.services/control-plane/contains the public FastAPI application boundary.services/provisioner/contains the separately executable provisioner boundary.infra/opentofu/andconfig/ansible/contain infrastructure and host configuration foundations.docs/operations/infrastructure.mddescribes state bootstrap, protected plans, applies, and required secrets.docs/operations/host-configuration.mddescribes protected host convergence, backup recovery checks, and runtime credential boundaries.
Trusted platform services use lowerduckpond.net; untrusted tenant aliases and
immutable content origins use lowerduckpond.com. A future platform-owned
reference site will live in a separate repository and use the same ordinary
tenant interface as resident sites.
Contributing and security
See CONTRIBUTING.md before proposing a change. Please report
security problems privately according to SECURITY.md; do not put
credentials, tenant information, or vulnerability details in a public issue.
Original project code is licensed under the Apache License 2.0.