certpost 1.0.0__py3-none-win_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -0,0 +1,142 @@
1
+ Metadata-Version: 2.1
2
+ Name: certpost
3
+ Version: 1.0.0
4
+ Summary: Let's Encrypt certificate manager with DNS-01 challenges, web admin panel, and TLS termination proxy
5
+ Home-page: https://gitlab.com/waterjuice/certpost
6
+ Author: WaterJuice
7
+ License: Unlicense
8
+ Requires-Python: >=3.7
9
+ Classifier: Programming Language :: Go
10
+ Description-Content-Type: text/markdown
11
+ # certpost
12
+
13
+ Let's Encrypt certificate manager with DNS-01 challenges, web admin panel, and TLS termination proxy. Written in Go — single static binary, no dependencies. Supports Cloudflare and Technitium DNS Server.
14
+
15
+ ## Features
16
+
17
+ - **Automatic certificate issuance** — Let's Encrypt via ACME v2, DNS-01 challenges
18
+ - **Multiple DNS providers** — Cloudflare and Technitium DNS Server, with split provider support (e.g. Cloudflare for ACME, Technitium for records)
19
+ - **Web admin panel** — manage domains, view status, download certs, view logs (protected by admin key login)
20
+ - **DNS management** — automatically creates and manages A/CNAME records for your subdomains
21
+ - **Background renewal** — proactively renews the 2 oldest certs daily, with a 30-day expiry safety net
22
+ - **Per-domain API tokens** — each domain gets its own bearer token for certificate retrieval
23
+ - **TLS termination proxy** — built-in proxy with SNI routing and automatic cert refresh
24
+ - **Certificate fetching** — download `.crt` and `.key` files via CLI or admin panel
25
+ - **Interactive setup** — `certpost-server setup` and `certpost init` wizards for easy configuration
26
+ - **Single static binary** — no runtime dependencies, no openssl required
27
+ - **Modular DNS** — protocol-based design makes it easy to add new providers
28
+
29
+ ## Requirements
30
+
31
+ - Go 1.22+ (for building)
32
+ - A supported DNS provider: Cloudflare (API token + zone ID) or Technitium DNS Server (server URL + API token)
33
+
34
+ ## Building
35
+
36
+ ```bash
37
+ make build
38
+ ```
39
+
40
+ Cross-compiles for all platforms and builds wheels. See `make help` for all targets.
41
+
42
+ ## Server
43
+
44
+ ### Initial setup
45
+
46
+ ```bash
47
+ certpost-server setup -d /path/to/data
48
+ ```
49
+
50
+ This walks you through creating a `config.json` with your DNS provider settings, base domain, and port. An admin key is generated automatically.
51
+
52
+ ### Starting the server
53
+
54
+ ```bash
55
+ certpost-server run -d /path/to/data
56
+ ```
57
+
58
+ The admin panel is available at `http://localhost:8443`. Log in with the admin key (printed on startup). From the panel you can:
59
+
60
+ - Add subdomains — enter an IP address or CNAME target, creates the DNS record via the configured provider, and issues a Let's Encrypt certificate
61
+ - View certificate status and expiry dates
62
+ - Copy or rotate per-domain API tokens
63
+ - Download certificate files
64
+ - View server logs
65
+
66
+ ### Configuration
67
+
68
+ The `config.json` in your data directory. Use a single `dns` key when one provider handles everything:
69
+
70
+ ```json
71
+ {
72
+ "base_domain": "example.com",
73
+ "admin_key": "auto-generated-admin-key",
74
+ "bind": "0.0.0.0",
75
+ "port": 8443,
76
+ "dns": {
77
+ "provider": "cloudflare",
78
+ "api_token": "your-cloudflare-api-token",
79
+ "zone_id": "your-zone-id"
80
+ }
81
+ }
82
+ ```
83
+
84
+ For split configurations, use `dns_acme` and `dns_records`:
85
+
86
+ ```json
87
+ {
88
+ "base_domain": "example.com",
89
+ "admin_key": "auto-generated-admin-key",
90
+ "bind": "0.0.0.0",
91
+ "port": 8443,
92
+ "dns_acme": {
93
+ "provider": "cloudflare",
94
+ "api_token": "your-cloudflare-api-token",
95
+ "zone_id": "your-zone-id"
96
+ },
97
+ "dns_records": {
98
+ "provider": "technitium",
99
+ "server_url": "https://dns.example.com",
100
+ "api_token": "your-technitium-api-token",
101
+ "zone": "example.com"
102
+ }
103
+ }
104
+ ```
105
+
106
+ ## Client
107
+
108
+ ### Fetch certificates
109
+
110
+ ```bash
111
+ certpost fetch -s http://certpost:8443 -t <token> -d app.example.com -o /etc/ssl/certs
112
+ ```
113
+
114
+ With automatic refresh every 24 hours:
115
+
116
+ ```bash
117
+ certpost fetch -s http://certpost:8443 -t <token> -d app.example.com --refresh 24
118
+ ```
119
+
120
+ ### TLS termination proxy
121
+
122
+ ```bash
123
+ certpost proxy -c proxy.json
124
+ ```
125
+
126
+ ### Generate a config interactively
127
+
128
+ ```bash
129
+ certpost init
130
+ ```
131
+
132
+ ## Security
133
+
134
+ - Admin panel is protected by an admin key with cookie-based auth
135
+ - Certificate API uses per-domain bearer tokens (not shared)
136
+ - Private keys are stored in JSON files — protect the data directory with filesystem permissions
137
+ - TLS proxy loads certs directly into memory via `tls.X509KeyPair` — no temp files
138
+
139
+ ## Licence
140
+
141
+ Released under the [Unlicense](https://unlicense.org/) — public domain.
142
+
@@ -0,0 +1,5 @@
1
+ certpost-1.0.0.data/scripts/certpost-server.exe,sha256=xsUycxWtmzq2Fr2PJ4VS25JRhHJJbeq86Z0oLNDHjus,6610944
2
+ certpost-1.0.0.data/scripts/certpost.exe,sha256=Tc10CWet6IDNlBcnAMQpkMwZLyFiHAY8uqyTdO5aJdQ,6180352
3
+ certpost-1.0.0.dist-info/METADATA,sha256=DoF3C7Bpww0vT-xK3Lx-bMdT8zGrZ-yTFgCQYusRNn4,4332
4
+ certpost-1.0.0.dist-info/WHEEL,sha256=wNZVzVl1pV29tNEH9u1e8IeMEQyIPKucDoXN7wnf9VE,85
5
+ certpost-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bin2whl
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_arm64